VBA copier/coller avec conditions spécifiques [Résolu/Fermé]

Messages postés
18
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
25 septembre 2008
- - Dernière réponse : Olive0185
Messages postés
18
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
25 septembre 2008
- 6 août 2008 à 08:45
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.
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
8713
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
27 janvier 2014
977
1
Merci
c'est obligé du VBA, sinon tu a la fonction RechercheV
    =RECHERCHEV(A2;Feuil1!A3:B29;2)

A+

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 59081 internautes nous ont dit merci ce mois-ci

Messages postés
1771
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
29 juin 2019
337
0
Merci
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
Messages postés
8713
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
27 janvier 2014
977
0
Merci
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
Messages postés
18
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
25 septembre 2008
6
0
Merci
Merci pour votre aide. Vos interventions m'ont aidées à avancer dans ma macro.
Prob résolu.
A+