Copier Coller à la suite
Fermé
maevaaugereau
-
7 mai 2017 à 14:32
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 8 mai 2017 à 17:31
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 8 mai 2017 à 17:31
A voir également:
- Copier Coller à la suite
- Copier coller pdf - Guide
- Copier-coller - Accueil - Windows
- Style d'écriture a copier coller - Guide
- Historique copier-coller android - Guide
- Arobase copier coller - Forum Clavier
3 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
7 mai 2017 à 18:27
7 mai 2017 à 18:27
Bonjour Maeva, bonjour le forum,
Si l'ai bien compris, essaie comme ça :
Si l'ai bien compris, essaie comme ça :
Sub RANGER() Dim CL As Workbook 'déclare la variable CL (CLasseur) Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Dim OD As Worksheet 'déclare la variable OD (Onglet Destination) Dim DL As Long 'déclare la variable DL (Dernière Ligne) Dim I As Long 'déclare la variable I (Incrément) Dim J As Long 'déclare la variable J (incrément) Set CL = ThisWorkbook 'définit le classeur CL Set OS = CL.Worksheets("AJOUTER UN PRODUIT") 'définit l'onglet source OS Set OD = CL.Worksheets("Bordeaux") 'définit l'onglet destination OD DL = OS.Cells(Application.Rows.Count, "B").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet OS 'définit la ligne J (179 si la cellule B179 est vide, sinon la première ligne vide (en partant du bas) de la colonne B de l'onglet OD J = IIf(OD.Cells(179, "B").Value = "", 179, OD.Cells(Application.Rows.Count, "B").End(xlUp).Row + 1) For I = 2 To DL 'boucle sur toutes les lignes I de 2 à DL 'si la cellule ligne I colonne B de l'onglet OS est égal à "Bordeaux", revoie dans la cellule 'ligne J colonne B redimensionnée de l'onglet OD la valeur de la plage ligne I colonnes B à T de l'onglet OS If OS.Cells(I, "B").Value = "Bordeaux" Then OD.Cells(J, "B").Resize(1, 19).Value = OS.Range(OS.Cells(I, "B"), OS.Cells(I, "T")).Value J = J + 1 'incrémente J Next I 'prochaine ligne de la boucle End Sub
Wow ! Brillant !!!
Merci beaucoup (pour le code et pour les explications !!)
A tout hasard une astuce pour qu'il n'y ait pas de lignes vides dans la feuille de destination ?
Parce qu'il n'y a pas que des bordeaux sur la feuille d'origine :)
Si non je peux mettre en place un autre code, c'est juste au cas où
Encore merci !!
Merci beaucoup (pour le code et pour les explications !!)
A tout hasard une astuce pour qu'il n'y ait pas de lignes vides dans la feuille de destination ?
Parce qu'il n'y a pas que des bordeaux sur la feuille d'origine :)
Si non je peux mettre en place un autre code, c'est juste au cas où
Encore merci !!
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
8 mai 2017 à 17:31
8 mai 2017 à 17:31
Re,
Il suffit de mettre l'incrémentation de J dans la condition, comme d'ailleurs tu as fait dans ton code original mais je ne m'en étais pas aperçu.
Il suffit de mettre l'incrémentation de J dans la condition, comme d'ailleurs tu as fait dans ton code original mais je ne m'en étais pas aperçu.
If OS.Cells(I, "B").Value = "Bordeaux" Then OD.Cells(J, "B").Resize(1, 19).Value = OS.Range(OS.Cells(I, "B"), OS.Cells(I, "T")).Value J = J + 1 'incrémente J End If