Probléme de syntaxe sur vlookup
Résolu/Fermé
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
-
24 oct. 2011 à 11:39
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 26 oct. 2011 à 14:33
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 26 oct. 2011 à 14:33
A voir également:
- Probléme de syntaxe sur vlookup
- Trouver erreur de syntaxe fichier txt - Forum Windows
- Syntaxe code puk orange - Guide
- Impossible d'ouvrir un fichier txt avec Python ✓ - Forum Python
- Trouver erreur de syntaxe fichier txt pix - Forum Autoit / batch
- La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte - Forum Logiciels
6 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
24 oct. 2011 à 13:43
24 oct. 2011 à 13:43
Ce n'est pas un problème de syntaxe mais un problème d'utilisation de Vlookup :
Le fichier source doit être ouvert (et dans ce cas le nom ne comprend pas le chemin d'accès)
Le fichier source doit être ouvert (et dans ce cas le nom ne comprend pas le chemin d'accès)
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
25 oct. 2011 à 10:35
25 oct. 2011 à 10:35
Merci pour ton intervention Patrice33740, effectivement ça marche maintenant parc contre je ne parviens pas à finaliser mon code pour que ça marche. Voila ce que je veux faire:
j'ai 2 fichiers ouverts:
monfichier1ouvert depuis lequel j'apelle la macro via l'userform1
et monfichier2ouvert ou s'execute la rechercheV (vlokup)
jusqu' à là ça va.
dans l'userform "validation" 2 bouton : non= unload me et oui ou je souhaite rendre égales les valeurs de Range("b1:g131"), 5, False et Cells(4, 9).
je veux modifier la valeur en ("b1:g131"), 5 en y copiant la valeur de Cells(4, 9).
voici ce que j'ai essayé mais qui ne fonctionne pas et me renvoie:"N°1004 Erreur définie par l'application ou par l'objet"
quand clic sur bouton oui
Encore une fois, je ne suis pas expert en vba (peut-être complétement à côté de la bonne syntaxe), merci encore pour votre aide.
j'ai 2 fichiers ouverts:
monfichier1ouvert depuis lequel j'apelle la macro via l'userform1
et monfichier2ouvert ou s'execute la rechercheV (vlokup)
If Application.VLookup(userform1.TextBox2.Value, Workbooks("monfichier2ouvert.xls").Sheets("Feuil1").Range("b1:g131"), 5, False) <> Workbooks("monfichier2ouvert.xls").Sheets("Feuil1").Cells(4, 9).Value Then validation.Show
jusqu' à là ça va.
dans l'userform "validation" 2 bouton : non= unload me et oui ou je souhaite rendre égales les valeurs de Range("b1:g131"), 5, False et Cells(4, 9).
je veux modifier la valeur en ("b1:g131"), 5 en y copiant la valeur de Cells(4, 9).
voici ce que j'ai essayé mais qui ne fonctionne pas et me renvoie:"N°1004 Erreur définie par l'application ou par l'objet"
quand clic sur bouton oui
Private Sub boutonoui_Click() Application.VLookup(userform1.TextBox2.Value, Workbooks("monfichier2ouvert.xls").Sheets("Feuil1").Range("b1:g131"), 5, False) = Workbooks("monfichier2ouvert.xls").Sheets("Feuil1").Cells(4, 9).Value Unload Me End Sub
Encore une fois, je ne suis pas expert en vba (peut-être complétement à côté de la bonne syntaxe), merci encore pour votre aide.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
25 oct. 2011 à 13:54
25 oct. 2011 à 13:54
Bonjour,
Vlookup renvoi une valeur située dans une matrice, pas son emplacement !
Tu peux utiliser Find.
Par exemple :
Vlookup renvoi une valeur située dans une matrice, pas son emplacement !
Tu peux utiliser Find.
Par exemple :
Private Sub boutonoui_Click() Dim rng As Range Dim cel As Range 'définir la plage de recherche Set rng = Workbooks("monfichier2ouvert.xls").Sheets("Feuil1").Range("b1:b131") 'Rechercher l'information dans la colonne Set cel = rng.Find(userform1.TextBox2.Value, lookat:=xlWhole) 'Modifier la valeur de la 5ème colonne cel.Offset(0, 4).Value = Workbooks("monfichier2ouvert.xls").Sheets("Feuil1").Cells(4, 9).Value Unload Me End Sub
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
25 oct. 2011 à 23:01
25 oct. 2011 à 23:01
Merci beaucoup Patrice33740 pour ce retour efficasse avec les explicatifs,
ça marche nickel, même si je ne connais pas les fontionnalités de Dim rng As Range et Dim cel As Range mais je chercherais à comprendre.
puis-je mettre une ligne de code pour ouvrir un msg box au cas ou la valeur de "userform1.TextBox2.Value" ne serait pas trouvée stp?
Merci encore...
ça marche nickel, même si je ne connais pas les fontionnalités de Dim rng As Range et Dim cel As Range mais je chercherais à comprendre.
puis-je mettre une ligne de code pour ouvrir un msg box au cas ou la valeur de "userform1.TextBox2.Value" ne serait pas trouvée stp?
Merci encore...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
25 oct. 2011 à 23:19
25 oct. 2011 à 23:19
Avec le test :
Private Sub boutonoui_Click() Dim rng As Range Dim cel As Range 'définir la plage de recherche Set rng = Workbooks("monfichier2ouvert.xls").Sheets("Feuil1").Range("b1:b131") 'Rechercher l'information dans la colonne Set cel = rng.Find(userform1.TextBox2.Value, lookat:=xlWhole) 'Si la valeur n'est pas trouvée ... If cel Is Nothing Then '... afficher un message d'erreur et rendre la main MsgBox "la valeur cherchée : " & vbCr & _ userform1.TextBox2.Value & vbCr & _ "n'a pas été trouvée", vbCritical Exit Sub End If 'Modifier la valeur de la 5ème colonne cel.Offset(0, 4).Value = Workbooks("monfichier2ouvert.xls").Sheets("Feuil1").Cells(4, 9).Value Unload Me End Sub
renoncule62
Messages postés
83
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
1 juillet 2012
2
26 oct. 2011 à 09:16
26 oct. 2011 à 09:16
Bonjour,
Merci pour tout, c'est exactement ce que je cherchais à faire,
c'est sympa...
Merci pour tout, c'est exactement ce que je cherchais à faire,
c'est sympa...
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
26 oct. 2011 à 14:33
26 oct. 2011 à 14:33
De rien, au plaisir de te relire sur le Forum