Recherche selon valeur du ComboBox [Résolu]

avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 27 avril 2007 à 01:50 - Dernière réponse : avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention
- 28 avril 2007 à 17:06
Bonjour à tous,

Je rencontre un problème avec se script en rouge quand je fais plus que 2 recherches de suite:

Private Sub CommandButton4_Click()
Valeur = ComboBox45.Value
ActiveSheet.Cells.Find(What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate

                                                                                         'CODE DE PRODUIT
ComboBox3.Text = ActiveCell.Offset(0, -110).Text
ComboBox5.Text = ActiveCell.Offset(0, -105).Text
ComboBox7.Text = ActiveCell.Offset(0, -100).Text
ComboBox9.Text = ActiveCell.Offset(0, -95).Text
ComboBox11.Text = ActiveCell.Offset(0, -90).Text
ComboBox13.Text = ActiveCell.Offset(0, -85).Text
ComboBox15.Text = ActiveCell.Offset(0, -80).Text
ComboBox17.Text = ActiveCell.Offset(0, -75).Text
ComboBox19.Text = ActiveCell.Offset(0, -70).Text
ComboBox21.Text = ActiveCell.Offset(0, -65).Text
ComboBox23.Text = ActiveCell.Offset(0, -60).Text
ComboBox25.Text = ActiveCell.Offset(0, -55).Text
ComboBox27.Text = ActiveCell.Offset(0, -50).Text
ComboBox29.Text = ActiveCell.Offset(0, -45).Text
ComboBox31.Text = ActiveCell.Offset(0, -40).Text
ComboBox33.Text = ActiveCell.Offset(0, -35).Text
ComboBox35.Text = ActiveCell.Offset(0, -30).Text
ComboBox37.Text = ActiveCell.Offset(0, -25).Text
ComboBox39.Text = ActiveCell.Offset(0, -20).Text
ComboBox41.Text = ActiveCell.Offset(0, -15).Text

End Sub

Quel serait le problème vous croyez
Afficher la suite 

Votre réponse

8 réponses

cs_MPi 3866 Messages postés mardi 19 mars 2002Date d'inscription 23 mai 2018 Dernière intervention - 28 avril 2007 à 16:21
+3
Utile
Le problème, je pense, c'est que tu utilises le paramètre xlNext et aussi le .Select à la fin
Je pense donc que, si une valeur est trouvée dans les dernières lignes, le xlNext + Select empêchent de faire la recherche à partir du début. La recherche doit se faire à partir de la dernière recherche trouvée vers la fin.

Tu pourrais essayer en mettant Range("A1").select au tout début de la procédure

MPi
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_MPi
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 27 avril 2007 à 07:27
0
Utile
Bonjour,
Je ne connais pas VBA, mais : si çà marche au début et que ça dérape ensuite, c'est probablement qu'une recherche commence alors que la précédente est encore en cours...
Là aussi, je suggèrerais un bon Doevents entre deux recherches.
Commenter la réponse de jmfmarques
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 27 avril 2007 à 07:57
0
Utile
Salut,
Est ce que par hasard cela ne planterait pas lorsque find ne trouve rien.
Exemple si tu cherche TOTO et que TOTO n'existe pas dans ta plage de recherche, Find(...).ACTIVATE devient une erreur

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 27 avril 2007 à 11:53
0
Utile
Merci pour votre aide,

Et bien mon ComboBox contient les données d'une colonne dans mon fichier excel, donc en réalité, il devrait mon donner les infos mais pas tout le temps. Le premier coup, il me le donne, j'ai remarqué que si je déscent de données dans la liste de mon ComboBox, ça fonctionne mais si je remonte dans la liste du ComboBox, voilà l'erreur.
Commenter la réponse de avyrex1926
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 27 avril 2007 à 13:39
0
Utile
Salut,
Si les données ne sont pas trop grande, tu peux nous donner un échantillon de ce que tu as dans ta feuille

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 28 avril 2007 à 14:21
0
Utile
En réalité, dans ma page Excel, il y a des
données de <st1:personname productid= "la colonne A" w:st="on">la colonne A</st1:personname>
à EA.


Il me serait difficile de l'afficher ici à moin que j'envoie une copie de mon
fichier Excel.



Le scripte complet de cette recherche est :

Private Sub CommandButton4_Click()
Application.ScreenUpdating = False

Valeur = ComboBox45.Value
ActiveSheet.Cells.Find(What:=Valeur, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate

'CODE DE PRODUIT
ComboBox3.Text = ActiveCell.Offset(0, -110).Text
ComboBox5.Text = ActiveCell.Offset(0, -105).Text
ComboBox7.Text = ActiveCell.Offset(0, -100).Text
ComboBox9.Text = ActiveCell.Offset(0, -95).Text
ComboBox11.Text = ActiveCell.Offset(0, -90).Text
ComboBox13.Text = ActiveCell.Offset(0, -85).Text
ComboBox15.Text = ActiveCell.Offset(0, -80).Text
ComboBox17.Text = ActiveCell.Offset(0, -75).Text
ComboBox19.Text = ActiveCell.Offset(0, -70).Text
ComboBox21.Text = ActiveCell.Offset(0, -65).Text
ComboBox23.Text = ActiveCell.Offset(0, -60).Text
ComboBox25.Text = ActiveCell.Offset(0, -55).Text
ComboBox27.Text = ActiveCell.Offset(0, -50).Text
ComboBox29.Text = ActiveCell.Offset(0, -45).Text
ComboBox31.Text = ActiveCell.Offset(0, -40).Text
ComboBox33.Text = ActiveCell.Offset(0, -35).Text
ComboBox35.Text = ActiveCell.Offset(0, -30).Text
ComboBox37.Text = ActiveCell.Offset(0, -25).Text
ComboBox39.Text = ActiveCell.Offset(0, -20).Text
ComboBox41.Text = ActiveCell.Offset(0, -15).Text

'DESCRIPTION
ComboBox4.Text = ActiveCell.Offset(0, -109).Text
ComboBox6.Text = ActiveCell.Offset(0, -104).Text
ComboBox8.Text = ActiveCell.Offset(0, -99).Text
ComboBox10.Text = ActiveCell.Offset(0, -94).Text
ComboBox12.Text = ActiveCell.Offset(0, -89).Text
ComboBox14.Text = ActiveCell.Offset(0, -84).Text
ComboBox16.Text = ActiveCell.Offset(0, -79).Text
ComboBox18.Text = ActiveCell.Offset(0, -74).Text
ComboBox20.Text = ActiveCell.Offset(0, -69).Text
ComboBox22.Text = ActiveCell.Offset(0, -64).Text
ComboBox24.Text = ActiveCell.Offset(0, -59).Text
ComboBox26.Text = ActiveCell.Offset(0, -54).Text
ComboBox28.Text = ActiveCell.Offset(0, -49).Text
ComboBox30.Text = ActiveCell.Offset(0, -44).Text
ComboBox32.Text = ActiveCell.Offset(0, -39).Text
ComboBox34.Text = ActiveCell.Offset(0, -34).Text
ComboBox36.Text = ActiveCell.Offset(0, -29).Text
ComboBox38.Text = ActiveCell.Offset(0, -24).Text
ComboBox40.Text = ActiveCell.Offset(0, -19).Text
ComboBox42.Text = ActiveCell.Offset(0, -14).Text

'QTÉ.
TextBox22.Value = ActiveCell.Offset(0, -108).Value
TextBox42.Value = ActiveCell.Offset(0, -103).Value
TextBox27.Value = ActiveCell.Offset(0, -98).Value
TextBox47.Value = ActiveCell.Offset(0, -93).Value
TextBox32.Value = ActiveCell.Offset(0, -88).Value
TextBox52.Value = ActiveCell.Offset(0, -83).Value
TextBox37.Value = ActiveCell.Offset(0, -78).Value
TextBox57.Value = ActiveCell.Offset(0, -73).Value
TextBox62.Value = ActiveCell.Offset(0, -68).Value
TextBox67.Value = ActiveCell.Offset(0, -63).Value
TextBox81.Value = ActiveCell.Offset(0, -58).Value
TextBox87.Value = ActiveCell.Offset(0, -53).Value
TextBox92.Value = ActiveCell.Offset(0, -48).Value
TextBox97.Value = ActiveCell.Offset(0, -43).Value
TextBox102.Value = ActiveCell.Offset(0, -38).Value
TextBox107.Value = ActiveCell.Offset(0, -33).Value
TextBox112.Value = ActiveCell.Offset(0, -28).Value
TextBox117.Value = ActiveCell.Offset(0, -23).Value
TextBox122.Value = ActiveCell.Offset(0, -18).Value
TextBox127.Value = ActiveCell.Offset(0, -13).Value

'PRIX UNITAIRE
TextBox24.Value = ActiveCell.Offset(0, -107).Value
TextBox44.Value = ActiveCell.Offset(0, -102).Value
TextBox29.Value = ActiveCell.Offset(0, -97).Value
TextBox49.Value = ActiveCell.Offset(0, -92).Value
TextBox34.Value = ActiveCell.Offset(0, -87).Value
TextBox54.Value = ActiveCell.Offset(0, -82).Value
TextBox39.Value = ActiveCell.Offset(0, -77).Value
TextBox59.Value = ActiveCell.Offset(0, -72).Value
TextBox64.Value = ActiveCell.Offset(0, -67).Value
TextBox69.Value = ActiveCell.Offset(0, -62).Value
TextBox83.Value = ActiveCell.Offset(0, -57).Value
TextBox89.Value = ActiveCell.Offset(0, -52).Value
TextBox94.Value = ActiveCell.Offset(0, -47).Value
TextBox99.Value = ActiveCell.Offset(0, -42).Value
TextBox104.Value = ActiveCell.Offset(0, -37).Value
TextBox109.Value = ActiveCell.Offset(0, -32).Value
TextBox114.Value = ActiveCell.Offset(0, -27).Value
TextBox119.Value = ActiveCell.Offset(0, -22).Value
TextBox124.Value = ActiveCell.Offset(0, -17).Value
TextBox129.Value = ActiveCell.Offset(0, -12).Value

'TOTAL
TextBox25.Value = ActiveCell.Offset(0, -106).Value
TextBox45.Value = ActiveCell.Offset(0, -101).Value
TextBox30.Value = ActiveCell.Offset(0, -96).Value
TextBox50.Value = ActiveCell.Offset(0, -91).Value
TextBox35.Value = ActiveCell.Offset(0, -86).Value
TextBox55.Value = ActiveCell.Offset(0, -81).Value
TextBox85.Value = ActiveCell.Offset(0, -76).Value
TextBox60.Value = ActiveCell.Offset(0, -71).Value
TextBox65.Value = ActiveCell.Offset(0, -66).Value
TextBox70.Value = ActiveCell.Offset(0, -61).Value
TextBox84.Value = ActiveCell.Offset(0, -56).Value
TextBox90.Value = ActiveCell.Offset(0, -51).Value
TextBox95.Value = ActiveCell.Offset(0, -46).Value
TextBox100.Value = ActiveCell.Offset(0, -41).Value
TextBox105.Value = ActiveCell.Offset(0, -36).Value
TextBox110.Value = ActiveCell.Offset(0, -31).Value
TextBox115.Value = ActiveCell.Offset(0, -26).Value
TextBox120.Value = ActiveCell.Offset(0, -21).Value
TextBox125.Value = ActiveCell.Offset(0, -16).Value
TextBox130.Value = ActiveCell.Offset(0, -11).Value

'TOTAL DE TAXES
TextBox71.Value = ActiveCell.Offset(0, -10).Value
TextBox73.Value = ActiveCell.Offset(0, -7).Value
TextBox74.Value = ActiveCell.Offset(0, -5).Value
TextBox75.Value = ActiveCell.Offset(0, -4).Value
TextBox76.Value = ActiveCell.Offset(0, -3).Value
TextBox77.Value = ActiveCell.Offset(0, -2).Value
ComboBox46.Value = ("DUPLICATA")

End Sub
Commenter la réponse de avyrex1926
avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 28 avril 2007 à 15:13
0
Utile
J'ai décidé de changer la façon de faire ma recherche, avec Recherchev.

Maintenant, quand je selectionne une donnée dans mon comboBox45 la première fois ça fonctionne mais si je veux reselectionner une autre donnée dans le combobox45, il n'y a plus rien à selectionné, tout la liste est éffacé.

Voici le scripte:

Private Sub CommandButton4_Click()
Dim Ligne As LongIf ComboBox45.Text vbNullString And ComboBox45.Text vbNullString Then
ComboBox45.SetFocus
Else
Application.ScreenUpdating = False
Ligne RECHERCHE(ComboBox45.Text, 111) ' recherche du texte sélectionné du combobox1 dans la colonne DG ( columns("DG:DG") Columns(111) )

If Ligne = 0 Then Exit Sub ' valeur non trouvée

                                    'On a trouvé la valeur sur la ligne Ligne
'CODE DE PRODUIT
ComboBox3 = Range("A" & Ligne)
ComboBox5 = Range("F" & Ligne)
ComboBox7 = Range("K" & Ligne)
ComboBox9 = Range("P" & Ligne)
ComboBox11 = Range("U" & Ligne)
ComboBox13 = Range("Z" & Ligne)
ComboBox15 = Range("AE" & Ligne)
ComboBox17 = Range("AJ" & Ligne)
ComboBox19 = Range("AO" & Ligne)
ComboBox21 = Range("AT" & Ligne)
ComboBox23 = Range("AY" & Ligne)
ComboBox25 = Range("BD" & Ligne)
ComboBox27 = Range("BI" & Ligne)
ComboBox29 = Range("BN" & Ligne)
ComboBox31 = Range("BS" & Ligne)
ComboBox33 = Range("BX" & Ligne)
ComboBox35 = Range("CC" & Ligne)
ComboBox37 = Range("CH" & Ligne)
ComboBox39 = Range("CM" & Ligne)
ComboBox41 = Range("CR" & Ligne)

'DESCRIPTION
ComboBox4 = Range("B" & Ligne)
ComboBox6 = Range("G" & Ligne)
ComboBox8 = Range("L" & Ligne)
ComboBox10 = Range("Q" & Ligne)
ComboBox12 = Range("V" & Ligne)
ComboBox14 = Range("AA" & Ligne)
ComboBox16 = Range("AF" & Ligne)
ComboBox18 = Range("AK" & Ligne)
ComboBox20 = Range("AP" & Ligne)
ComboBox22 = Range("AU" & Ligne)
ComboBox24 = Range("AZ" & Ligne)
ComboBox26 = Range("BE" & Ligne)
ComboBox28 = Range("BJ" & Ligne)
ComboBox30 = Range("BO" & Ligne)
ComboBox32 = Range("BT" & Ligne)
ComboBox34 = Range("BY" & Ligne)
ComboBox36 = Range("CD" & Ligne)
ComboBox38 = Range("CI" & Ligne)
ComboBox40 = Range("CN" & Ligne)
ComboBox42 = Range("CS" & Ligne)

'QTÉ.
TextBox22 = Range("C" & Ligne)
TextBox42 = Range("H" & Ligne)
TextBox27 = Range("M" & Ligne)
TextBox47 = Range("R" & Ligne)
TextBox32 = Range("W" & Ligne)
TextBox52 = Range("AB" & Ligne)
TextBox37 = Range("AG" & Ligne)
TextBox57 = Range("AL" & Ligne)
TextBox62 = Range("AQ" & Ligne)
TextBox67 = Range("AV" & Ligne)
TextBox81 = Range("BA" & Ligne)
TextBox87 = Range("BF" & Ligne)
TextBox92 = Range("BK" & Ligne)
TextBox97 = Range("BP" & Ligne)
TextBox102 = Range("BU" & Ligne)
TextBox107 = Range("BZ" & Ligne)
TextBox112 = Range("CE" & Ligne)
TextBox117 = Range("CJ" & Ligne)
TextBox122 = Range("CO" & Ligne)
TextBox127 = Range("CT" & Ligne)

'PRIX UNITAIRE
TextBox24 = Range("D" & Ligne)
TextBox44 = Range("I" & Ligne)
TextBox29 = Range("N" & Ligne)
TextBox49 = Range("S" & Ligne)
TextBox34 = Range("X" & Ligne)
TextBox54 = Range("AC" & Ligne)
TextBox39 = Range("AH" & Ligne)
TextBox59 = Range("AM" & Ligne)
TextBox64 = Range("AR" & Ligne)
TextBox69 = Range("AW" & Ligne)
TextBox83 = Range("BB" & Ligne)
TextBox89 = Range("BG" & Ligne)
TextBox94 = Range("BL" & Ligne)
TextBox99 = Range("BQ" & Ligne)
TextBox104 = Range("BV" & Ligne)
TextBox109 = Range("CA" & Ligne)
TextBox114 = Range("CF" & Ligne)
TextBox119 = Range("CK" & Ligne)
TextBox124 = Range("CP" & Ligne)
TextBox129 = Range("CU" & Ligne)

'TOTAL
TextBox25 = Range("E" & Ligne)
TextBox45 = Range("J" & Ligne)
TextBox30 = Range("O" & Ligne)
TextBox50 = Range("T" & Ligne)
TextBox35 = Range("Y" & Ligne)
TextBox55 = Range("AD" & Ligne)
TextBox85 = Range("AI" & Ligne)
TextBox60 = Range("AN" & Ligne)
TextBox65 = Range("AS" & Ligne)
TextBox70 = Range("AX" & Ligne)
TextBox84 = Range("BC" & Ligne)
TextBox90 = Range("BH" & Ligne)
TextBox95 = Range("BM" & Ligne)
TextBox100 = Range("BR" & Ligne)
TextBox105 = Range("BW" & Ligne)
TextBox110 = Range("CB" & Ligne)
TextBox115 = Range("CG" & Ligne)
TextBox120 = Range("CL" & Ligne)
TextBox125 = Range("CQ" & Ligne)
TextBox130 = Range("CV" & Ligne)

'TOTAL DE TAXES
TextBox71 = Range("CW" & Ligne)
TextBox73 = Range("CZ" & Ligne)
TextBox74 = Range("DB" & Ligne)
TextBox75 = Range("DC" & Ligne)
TextBox76 = Range("DD" & Ligne)
TextBox77 = Range("DE" & Ligne)
ComboBox46.Value = ("DUPLICATA")

Application.ScreenUpdating = True
Exit Sub
fin:
MsgBox "AUCUNE DONNÉE POUR LE PO "

End If

End Sub
Commenter la réponse de avyrex1926
avyrex1926 360 Messages postés dimanche 3 décembre 2006Date d'inscription 3 janvier 2012 Dernière intervention - 28 avril 2007 à 17:06
0
Utile
Merci beaucoup, c'étais pas grand chose mais voilà la réponse.

Merci !
Commenter la réponse de avyrex1926

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.