Copier / coller des valeurs avec modifications de filtres
oliv
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je coince dans Excel pour réaliser quelque chose de certainement simple, mais mes connaissances en VBA sont un peu limitées...
C'est pourquoi je vous appelle à l'aide...
L'objectif est de copier/coller des données d'une feuille à une autre. Mais l'opération est à répéter plusieurs fois.
J'ai bien réussi à faire une fois mais pour faire la boucle... je dois m'avouer vaincu. :(
La ligne 5 de la feuille "RESULTS" contient au moins une trentaine de valeurs et je voudrais filtrer chacune des valeurs sur une colonne (dans mon code la 6ème) de la feuille "Visual" et copier le contenu de la colonne 1 sous la valeur correspondante de la feuille "RESULTS"
voici mon code:
Dim Last_line3 As Long
Sheets("RESULTS").Select
Range("C5").Select
Selection.Copy
Sheets("Visual").Select
ActiveSheet.Range("$A$3:$BF$652").AutoFilter Field:=6, Criteria1:="56"
Range("A3").Select
Last_line3 = Selection.End(xlDown).Row
Range("A3:A" & Last_line3).Select
Selection.Copy
Sheets("RESULTS").Select
Range("C6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
J'espère ne pas vous avoir perdu dans mes explications.
Merci beaucoup par avance!
Je coince dans Excel pour réaliser quelque chose de certainement simple, mais mes connaissances en VBA sont un peu limitées...
C'est pourquoi je vous appelle à l'aide...
L'objectif est de copier/coller des données d'une feuille à une autre. Mais l'opération est à répéter plusieurs fois.
J'ai bien réussi à faire une fois mais pour faire la boucle... je dois m'avouer vaincu. :(
La ligne 5 de la feuille "RESULTS" contient au moins une trentaine de valeurs et je voudrais filtrer chacune des valeurs sur une colonne (dans mon code la 6ème) de la feuille "Visual" et copier le contenu de la colonne 1 sous la valeur correspondante de la feuille "RESULTS"
voici mon code:
Dim Last_line3 As Long
Sheets("RESULTS").Select
Range("C5").Select
Selection.Copy
Sheets("Visual").Select
ActiveSheet.Range("$A$3:$BF$652").AutoFilter Field:=6, Criteria1:="56"
Range("A3").Select
Last_line3 = Selection.End(xlDown).Row
Range("A3:A" & Last_line3).Select
Selection.Copy
Sheets("RESULTS").Select
Range("C6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
J'espère ne pas vous avoir perdu dans mes explications.
Merci beaucoup par avance!
A voir également:
- Copier / coller des valeurs avec modifications de filtres
- Suivi des modifications word - Guide
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Copier-coller - Accueil - Informatique
- Style d'écriture a copier coller - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Essayons avec un exemple : pour chaque ligne de la feuille "Visual", A est la valeur en colonne 1 et B la valeur en colonne 6.
Il faut chercher dans quelle colonne de la ligne 5 de la feuille "RESULTS" se trouve la valeur B, et copier A en dessous de cette valeur.
C'est bien cela?
Tu n'expliques pas dans quelle ligne copier A : en ligne 6, ou bien dans la première ligne libre de la colonne de destination?
Moi je ne ferais pas cela avec un autofilter, mais ton approche devrait aussi fonctionner. J'ai rajouté des commentaires dans ton code pour te donner des suggestions.
Si tu as commencé en enregistrant une macro, je trouve que c'est une excellent idée. Cependant, tu as "triché" en tapant 56, ce qui rend la macro partiellement inutile. Je te suggère de refaire un essai.
Si tu es un peu dépassé, c'est sans doute préférable de commencer par un exercice plus simple.
Il faut chercher dans quelle colonne de la ligne 5 de la feuille "RESULTS" se trouve la valeur B, et copier A en dessous de cette valeur.
C'est bien cela?
Tu n'expliques pas dans quelle ligne copier A : en ligne 6, ou bien dans la première ligne libre de la colonne de destination?
Moi je ne ferais pas cela avec un autofilter, mais ton approche devrait aussi fonctionner. J'ai rajouté des commentaires dans ton code pour te donner des suggestions.
Si tu as commencé en enregistrant une macro, je trouve que c'est une excellent idée. Cependant, tu as "triché" en tapant 56, ce qui rend la macro partiellement inutile. Je te suggère de refaire un essai.
Dim Last_line3 As Long ' faire une boucle pour toutes les colonnes de la ligne 5 de RESULTS Sheets("RESULTS").Select ' dans la ligne suivante, faire évoluer C à chaque itération Range("C5").Select ' pourquoi faire ce copy, il n'est jamais utilisé? Selection.Copy Sheets("Visual").Select ' dans la ligne suivante, remplacer 56 par la valeur de la bonne colonne de la ligne 5 de RESULTS ActiveSheet.Range("$A$3:$BF$652").AutoFilter Field:=6, Criteria1:="56" Range("A3").Select Last_line3 = Selection.End(xlDown).Row Range("A3:A" & Last_line3).Select Selection.Copy Sheets("RESULTS").Select ' dans la ligne suivante, faire évoluer C à chaque itération Range("C6").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' prochaine itération de la boucle
Si tu es un peu dépassé, c'est sans doute préférable de commencer par un exercice plus simple.