Probleme avec Function Match / Sheet Location
Résolu/Fermé
A voir également:
- Probleme avec Function Match / Sheet Location
- Voir match en direct gratuitement - Accueil - Guide streaming
- Retour à la ligne google sheet - Forum Excel
- Google sheet liste déroulante - Accueil - Guide bureautique
- Retour a la ligne google sheet ✓ - Forum Excel
- Paramètre de retour à la ligne automatique pour du texte dans une cellule Google - Forum Google Docs
3 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
Modifié par melanie1324 le 18/12/2013 à 09:55
Modifié par melanie1324 le 18/12/2013 à 09:55
Bonjour,
une solution :
une solution :
Private Sub CommandButton1_Click() Dim var1 As String, var2 As String var1 = ComboBox1.Value var2 = ComboBox2.Value Unload Me Dim xa As Integer, xb As Integer xa = 0 xb = 1 Do while xa <> 0 if sheets("Sheets 3").cells(1,xb) =var1 and sheets("Sheets 3").cells(2,xb) = var2 then xa = xb end if xb=xb+1 Loop End Sub
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
18 déc. 2013 à 11:00
18 déc. 2013 à 11:00
Bonjour
mon but est de trouver quel est le numero de ma colonne pour laquelle j'ai en meme temps var1 et var2.
Ici on affiche la lettre de la colonne.
Si c'est le numéro, il faut modifier la ligne 15 comme ceci
mon but est de trouver quel est le numero de ma colonne pour laquelle j'ai en meme temps var1 et var2.
Ici on affiche la lettre de la colonne.
Si c'est le numéro, il faut modifier la ligne 15 comme ceci
MsgBox i
Private Sub CommandButton1_Click() Dim var1 As String, var2 As String Dim dercol As Long Dim i As Long var1 = ComboBox1.Value var2 = ComboBox2.Value dercol = Worksheets("Sheet3").Range("A1").End(xlToRight).Column Unload Me For i = 1 To dercol If Worksheets("Sheet3").Cells(1, i).Value = var1 And Worksheets("Sheet3").Cells(2, i).Value = var2 Then '--- Affiche la colonne MsgBox IIf(i > 26, Chr(64 + i \ 26) & Chr(64 + i Mod 26), Chr(64 + i)) End If Next i End Sub
Merci beaucoup pour ton aide Polux31!
Je ne connais pas encore la fonction Chr, mais je vais me pencher dessus, et ca me fera une nouvelle chose a connaitre!
Pour ton code, sur ma ligne, en realite, elle n'est pas continue, il y a des cellules vides parfois donc avec le End(xlToRight) ca ne prendra pas toutes mes cellules contenant des info.
Melanie a souleve le probleme dans mon code, maintenant ca marche.
Par contre, concernant mon deuxieme probleme, on remarque que mes 2 lignes contenant les mois et prenoms sont dans le Sheet3. Mais si ma cellule active est dans un autre Sheet, par exemple Sheet1, j'ai une erreur: Run-time error '1004': Application-defined or object-defined error.
Sais-tu pourquoi?
Merci encore pour ton aide!
Van Hoa
Je ne connais pas encore la fonction Chr, mais je vais me pencher dessus, et ca me fera une nouvelle chose a connaitre!
Pour ton code, sur ma ligne, en realite, elle n'est pas continue, il y a des cellules vides parfois donc avec le End(xlToRight) ca ne prendra pas toutes mes cellules contenant des info.
Melanie a souleve le probleme dans mon code, maintenant ca marche.
Par contre, concernant mon deuxieme probleme, on remarque que mes 2 lignes contenant les mois et prenoms sont dans le Sheet3. Mais si ma cellule active est dans un autre Sheet, par exemple Sheet1, j'ai une erreur: Run-time error '1004': Application-defined or object-defined error.
Sais-tu pourquoi?
Merci encore pour ton aide!
Van Hoa
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
19 déc. 2013 à 03:37
19 déc. 2013 à 03:37
Remplace :
Par
dercol = Worksheets("Sheet3").Range("A1").End(xlToRight).Column
Par
dercol = Worksheets("Sheet3").Range("A" & Columns.Count).End(xlToLeft).Column
Merci,
Mais ca me donne la lettre, et j'aurais besoin de recuperer le numero de la colonne.
Le code de Melanie marche finalement. Mais je me demande vraiment pourquoi mon code avec la fonction Match n'a pas marche :-(
et encore, pour mon 2eme probleme, on remarque que mes 2 lignes contenant les mois et prenoms sont dans le Sheet3. Mais si ma cellule active est dans un autre Sheet, par exemple Sheet1, j'ai une erreur: Run-time error '1004': Application-defined or object-defined error.
Sais-tu pourquoi? Est-ce que ca vient du fait d'etre dans un Userform?
Merci encore pour ton aide!
Van Hoa
Mais ca me donne la lettre, et j'aurais besoin de recuperer le numero de la colonne.
Le code de Melanie marche finalement. Mais je me demande vraiment pourquoi mon code avec la fonction Match n'a pas marche :-(
et encore, pour mon 2eme probleme, on remarque que mes 2 lignes contenant les mois et prenoms sont dans le Sheet3. Mais si ma cellule active est dans un autre Sheet, par exemple Sheet1, j'ai une erreur: Run-time error '1004': Application-defined or object-defined error.
Sais-tu pourquoi? Est-ce que ca vient du fait d'etre dans un Userform?
Merci encore pour ton aide!
Van Hoa
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
19 déc. 2013 à 08:45
19 déc. 2013 à 08:45
Salut,
Pour la seconde question, la première étant résolue, il suffit de placer l'objet Worksheet (Sheet3) dans un bloc With-End With, et d'y référencer les objets Range qui lui appartiennent.
Comme ceci : [j'ai repris une partie du code de Mélanie]
A noter : Le point devant Range(Cells blabla...) permet de "rattacher" l'objet Range à l'objet WorkSheets("Sheet3") référencé dans le bloc With.
Pour la seconde question, la première étant résolue, il suffit de placer l'objet Worksheet (Sheet3) dans un bloc With-End With, et d'y référencer les objets Range qui lui appartiennent.
Comme ceci : [j'ai repris une partie du code de Mélanie]
Do xb = xb + 1 With Worksheets("Sheet3") xa = WorksheetFunction.Match(var1, .Range(Cells(1, xb), Cells(1, 1000)), 0) End With Loop While Cells(2, xa).Value <> var2
A noter : Le point devant Range(Cells blabla...) permet de "rattacher" l'objet Range à l'objet WorkSheets("Sheet3") référencé dans le bloc With.
18 déc. 2013 à 10:12
Cependant, dans le code, ne voudrais-tu pas dire:
Do While xa = 0 ?
Car sinon, si je mets <> la boucle ne s'execute pas non?
Saurais-tu egalement pourquoi mon code ne marche pas? J'aimerais vraiment comprendre ce qui cloche :-(
Et aussi, concernant mon deuxieme probleme, sais-tu pourquoi si je suis dans un Sheet different du Sheet3, l'erreur suivante s'affiche?
Run-time error '1004': Application-defined or object-defined error
Merci beaucoup pour ton aide Melanie!
Van Hoa
Modifié par melanie1324 le 18/12/2013 à 10:31
Pour mon code, tu as totalement raison
c'est bien do while xa = 0
Par contre, je ne connais pasla fonction Match donc peux pas dire.
Pour palier au second, tu peux faire comme ca :
sheets("Sheets 3").select
xa = WorksheetFunction.Match(var1, Worksheets("Sheet3").Range(Cells(1, xb), Cells(2, 1000)), 0)
Mon code te permet de contourner le pb.
Modifié par melanie1324 le 18/12/2013 à 10:49
j'ai trouvé le pb avec ton code, c'était le même pb qu'avec avec le mien :
19 déc. 2013 à 01:26
Comme d'habitude je n'utilisais pas Do Loop mais plutot les autres types de boucles, la je pensais que la boucle Do - Loop While ca traduisait: Faire la boucle et s'arreter quand + condition, donc en gros je pensais que le Loop While c'etait "s'arreter quand" alors que c'est "continuer quand" lol! J'avais regarder dans le dico pour traduire Loop et s'etait marque "boucler, fermer" d'ou mon erreur de conprehension!
En tout cas merci beaucoup car je pense que je serais reste longtemps dans mon erreur sans ton aide!
19 déc. 2013 à 01:41
Est ce que ca vient du fait que je suis dans un Userform?