VBA EXCEL-combiner fonction VLOOKUP et IF
anana49
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
anana49 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
anana49 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterais rechercher une valeur déterminée( Etape : Tour) dans ma première colonne "A" et à partir de cette valeur, copier une valeur définie (Tour) sur la 1ère cellule vide qu'il rencontre dans la même colonne. et ainsi de suite : recherche valeur déterminée(Etape : Port)=> cellule vide=>copier valeur définie (Port)...
Ci dessous mon code qui ne fonctionne pas mais je ne sais pas adapter une formule Recherchev() avec formule If.
Merci beaucoup pour votre aide.
Je souhaiterais rechercher une valeur déterminée( Etape : Tour) dans ma première colonne "A" et à partir de cette valeur, copier une valeur définie (Tour) sur la 1ère cellule vide qu'il rencontre dans la même colonne. et ainsi de suite : recherche valeur déterminée(Etape : Port)=> cellule vide=>copier valeur définie (Port)...
Ci dessous mon code qui ne fonctionne pas mais je ne sais pas adapter une formule Recherchev() avec formule If.
ActiveCell.FormulaR1C1 = _ "=IF(VLOOKUP(""Etape : Tour"",Rapports!A1,1,FALSE)<>"""",Sheets("Rapports").Range("A3").End(xlDown).Offset(1, 0) = "Tour")" End if
Merci beaucoup pour votre aide.
5 réponses
Bonjour
Cette formule
est tirée d'une macro enregistrée modifiée
donc le END IF à la fin est inutile
Mais la formule ne fonctionnera pas vu comme elle est structurée
Cette formule
ActiveCell.FormulaR1C1 = _ "=IF(VLOOKUP(""Etape : Tour"",Rapports!A1,1,FALSE)<>"""",Sheets("Rapports").Range("A3").End(xlDown).Offset(1, 0) = "Tour")"
est tirée d'une macro enregistrée modifiée
donc le END IF à la fin est inutile
Mais la formule ne fonctionnera pas vu comme elle est structurée
Bonjour M-12,
Oui je sais mais il faut que je combine 2 fonctions et je ne sais pas.. d'où mon problème..
J'ai refait un bout de code mais je souhaite que s'il trouve la valeur définie ( "Etape : Tour") dans la colonne A, il ajoute à la 1ère cellule vide une autre valeur ( "Tour") et toujours à partir de la valeur définie.
ensuite il faut rechercher une autre valeur définie ("Etape : Port") et à partir de cette valeur, récupérer la cellule vide et ajouter une autre valeur ("Port") etc....
Merci de m'aider
Oui je sais mais il faut que je combine 2 fonctions et je ne sais pas.. d'où mon problème..
J'ai refait un bout de code mais je souhaite que s'il trouve la valeur définie ( "Etape : Tour") dans la colonne A, il ajoute à la 1ère cellule vide une autre valeur ( "Tour") et toujours à partir de la valeur définie.
ensuite il faut rechercher une autre valeur définie ("Etape : Port") et à partir de cette valeur, récupérer la cellule vide et ajouter une autre valeur ("Port") etc....
Merci de m'aider
Sub test6() i = 3 With Sheets("TEST2") If Sheets("TEST2").Cells(i, 1).Value = "Etape : Tour" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Tour" End If If Sheets("TEST2").Cells(i, 1).Value = "Etape : Port" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Port" End If End With End Sub
Re,
Un p’tit classeur avec 10/15 données serait mieux pour régler le soucis :yum:
Tu vas dans https://www.cjoint.com/
Tu cliques sur "PARCOURIR" pour sélectionner ton fichier
Clic le bouton "CREER LE LIEN"
Clic droit quand le lien est créé "COPIER LE LIEN"
Sur ton message Clic droit "Coller".
Un p’tit classeur avec 10/15 données serait mieux pour régler le soucis :yum:
Tu vas dans https://www.cjoint.com/
Tu cliques sur "PARCOURIR" pour sélectionner ton fichier
Clic le bouton "CREER LE LIEN"
Clic droit quand le lien est créé "COPIER LE LIEN"
Sur ton message Clic droit "Coller".
https://www.cjoint.com/c/HIlqy3JMtJ0
Voici mon fichier, encore merci..
Voici mon fichier, encore merci..
Bonjour,
Teste ce code
Teste ce code
Sub test6() Dim i%, Dl% Dl = Range("A" & Rows.Count).End(xlUp).Row For i = 3 To Dl With Sheets("TEST2") If Sheets("TEST2").Cells(i, 1).Value = "Etape : Tour" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Tour" ElseIf Sheets("TEST2").Cells(i, 1).Value = "Etape : Port" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Port" ElseIf Sheets("TEST2").Cells(i, 1).Value = "Etape : Château" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Château" End If End With Next i End Sub
Bonjour,
Un grand merci pour ton aide M-12, le code fonctionne parfaitement.
Par contre, j'avais oublié une étape et en relançant le code, il est revenu au début "Etape : Tour" et a indiqué "Tour" dans la cellule vide or c'était une autre étape (Etape : Ecole).
Est-il possible d'indiquer une condition supplémentaire ?
Comme si : il ne trouve pas l'étape que la cellule reste vide ?
Si pas de solution, je ferais en sorte de ne pas oublier... A bientôt..
Un grand merci pour ton aide M-12, le code fonctionne parfaitement.
Par contre, j'avais oublié une étape et en relançant le code, il est revenu au début "Etape : Tour" et a indiqué "Tour" dans la cellule vide or c'était une autre étape (Etape : Ecole).
Est-il possible d'indiquer une condition supplémentaire ?
Comme si : il ne trouve pas l'étape que la cellule reste vide ?
Si pas de solution, je ferais en sorte de ne pas oublier... A bientôt..
Re,
Tu peux ajouter comme ceci
Mais si des étapes se rajoute au fur et à mesure, il faut faire autrement et créer un petit tableau contenant les différentes etapes et faire une double boucle
Tu peux ajouter comme ceci
Sub test6() Dim i%, Dl% Dl = Range("A" & Rows.Count).End(xlUp).Row For i = 3 To Dl With Sheets("TEST2") If Sheets("TEST2").Cells(i, 1).Value = "Etape : Tour" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Tour" ElseIf Sheets("TEST2").Cells(i, 1).Value = "Etape : Port" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Port" ElseIf Sheets("TEST2").Cells(i, 1).Value = "Etape : Château" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Château" ElseIf Sheets("TEST2").Cells(i, 1).Value = "Etape : Ecole" Then .Cells(i, "A").End(xlDown).Offset(1, 0).Value = "Ecole" End If End With Next i End Sub
Mais si des étapes se rajoute au fur et à mesure, il faut faire autrement et créer un petit tableau contenant les différentes etapes et faire une double boucle
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question