VBA copier/coller avec conditions spécifiques
Résolu
Olive0185
Messages postés
17
Statut
Membre
-
Olive0185 Messages postés 17 Statut Membre -
Olive0185 Messages postés 17 Statut Membre -
Bonjour,
Je vais essayer d'être le plus clair possible.
Sur ma 1° feuille, j'ai un nom en colonne B et une valeur en colonne E (les autres colonnes de la ligne sont vides).
Sur ma 2° feuille, je désir regrouper ces données de la façon suivante :
A / B / C
B08 / nom / valeur feuill1
Sur la feuill2 le nom est rentré manuellement.
J'ai créé, pour cela, la macro suivante :
Dim l As Long
Dim c As Long
c = Range("B65536").End(xlUp).row
For l = c To 2 Step -1
Sheets("Feuill1").Select
If Cells(l, 2).Value = "nom" And Cells(l, 1).Value = "" Then
Sheets("Feuill2").Select
If Cells(l, 2).Value = "nom" Then
Sheets("Feuill1").Select
Cells(l, 5).Select
Selection.Copy
Sheets("Feuill2").Select
Range("C4").Select
ActiveSheet.Paste
End If
End If
Next l
La macro repère bien les noms mais ne copie pas la valeur de la Feuill1 à Feuill2.
Si vous avez besoin de plus d'explication n'hésitez pas. Merci.
Je vais essayer d'être le plus clair possible.
Sur ma 1° feuille, j'ai un nom en colonne B et une valeur en colonne E (les autres colonnes de la ligne sont vides).
Sur ma 2° feuille, je désir regrouper ces données de la façon suivante :
A / B / C
B08 / nom / valeur feuill1
Sur la feuill2 le nom est rentré manuellement.
J'ai créé, pour cela, la macro suivante :
Dim l As Long
Dim c As Long
c = Range("B65536").End(xlUp).row
For l = c To 2 Step -1
Sheets("Feuill1").Select
If Cells(l, 2).Value = "nom" And Cells(l, 1).Value = "" Then
Sheets("Feuill2").Select
If Cells(l, 2).Value = "nom" Then
Sheets("Feuill1").Select
Cells(l, 5).Select
Selection.Copy
Sheets("Feuill2").Select
Range("C4").Select
ActiveSheet.Paste
End If
End If
Next l
La macro repère bien les noms mais ne copie pas la valeur de la Feuill1 à Feuill2.
Si vous avez besoin de plus d'explication n'hésitez pas. Merci.
Configuration: Windows XP Internet Explorer 6.0
4 réponses
-
c'est obligé du VBA, sinon tu a la fonction RechercheV
=RECHERCHEV(A2;Feuil1!A3:B29;2)
A+ -
A la place de :
Sheets("Feuill2").Select
If Cells(l, 2).Value = "nom" Then
Sheets("Feuill1").Select
Cells(l, 5).Select
Selection.Copy
Sheets("Feuill2").Select
Range("C4").Select
ActiveSheet.Paste
End if
je mettrai :
If Sheets("Feuill2").Cells(l, 2).Value = "nom" Then
Sheets("Feuill2").Range("C4") = Sheets("Feuill1").Cells(l, 5)
End if -
salut thev
If Sheets("Feuill2").Cells(l, 2).Value = "nom" Then
nom serra jamais trouvé, c'est exprimé en litéral. De plus la recherche devrait se faire sur la Feuil1
Si pas trop de lignes, je maintient que ce serrait mieux avec une formule RechercheV
-
Merci pour votre aide. Vos interventions m'ont aidées à avancer dans ma macro.
Prob résolu.
A+