Coller différentes onglets dans un onglet unique
Fermé
Carole-
Messages postés
14
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
29 août 2017
-
22 mars 2017 à 12:21
Carole- Messages postés 14 Date d'inscription jeudi 2 mars 2017 Statut Membre Dernière intervention 29 août 2017 - 24 mars 2017 à 16:48
Carole- Messages postés 14 Date d'inscription jeudi 2 mars 2017 Statut Membre Dernière intervention 29 août 2017 - 24 mars 2017 à 16:48
A voir également:
- Coller différentes onglets dans un onglet unique
- Rouvrir un onglet fermé - Guide
- Onglet privé - Guide
- Onglet (informatique) - Guide
- 99 onglets ouverts android - Forum Thunderbird
- Impossible de trouver l'icône "onglets" sur le J3 2016 - Forum Samsung
3 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
22 mars 2017 à 14:47
22 mars 2017 à 14:47
Bonjour Carole, bonjour le forum,
Essaie comme ça :
Essaie comme ça :
Sub TESTCOLLERBASE() Dim B As Worksheet 'déclare la variable B (onglets base) Dim O As Worksheet 'déclare la variable O (Onglet) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Set B = Worksheets("Base") 'définit l'onglet B For Each O In Sheets 'boucle sur tous les onglets O du classeur If O.Name <> B.Name Then 'condition : si le nom de l'onglet est différent du nom de l'onglet B 'définit la cellule de destination DEST (A2 si A2 est vide, sinon, la premiere cellule vide de la colonne A de l'onglet B) Set DEST = IIf(B.Range("A2").Value = "", B.Range("A2"), B.Range("A1").End(xlDown).Offset(1, 0)) O.UsedRange.Copy 'copie les cellules éditées de l'onglet O DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST End If 'fin de la condition Next O 'prochain onglet de la boucle End Sub
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
22 mars 2017 à 17:12
22 mars 2017 à 17:12
Re,
Dans ce cas il ne faut pas boucler...
Dans ce cas il ne faut pas boucler...
Sub TESTCOLLERBASE() Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Application.ScreenUpdating = False Worksheets("xxx").Select 'définit la cellule de destination DEST (A2 si A2 est vide, sinon, la premiere cellule vide de la colonne A de l'onglet B) Set DEST = IIf(B.Range("A2").Value = "", B.Range("A2"), B.Range("A1").End(xlDown).Offset(1, 0)) ActiveSheet.UsedRange.Copy 'copie les cellules éditées de l'onglet O DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST Worksheets("yyy").Select 'définit la cellule de destination DEST (A2 si A2 est vide, sinon, la premiere cellule vide de la colonne A de l'onglet B) Set DEST = IIf(B.Range("A2").Value = "", B.Range("A2"), B.Range("A1").End(xlDown).Offset(1, 0)) ActiveSheet.UsedRange.Copy 'copie les cellules éditées de l'onglet O DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST Worksheets("zzz").Select 'définit la cellule de destination DEST (A2 si A2 est vide, sinon, la premiere cellule vide de la colonne A de l'onglet B) Set DEST = IIf(B.Range("A2").Value = "", B.Range("A2"), B.Range("A1").End(xlDown).Offset(1, 0)) ActiveSheet.UsedRange.Copy 'copie les cellules éditées de l'onglet O DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST End Sub
Carole-
Messages postés
14
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
29 août 2017
23 mars 2017 à 09:41
23 mars 2017 à 09:41
Bonjour ThauTheme,
Merci, par contre j'ai une erreur d'exécution à ce niveau : ??
==> Set DEST = IIf(B.Range("A2").Value = "", B.Range("A2"), B.Range("A1").End(xlDown).Offset(1, 0))
Merci, par contre j'ai une erreur d'exécution à ce niveau : ??
==> Set DEST = IIf(B.Range("A2").Value = "", B.Range("A2"), B.Range("A1").End(xlDown).Offset(1, 0))
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
>
Carole-
Messages postés
14
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
29 août 2017
23 mars 2017 à 09:56
23 mars 2017 à 09:56
Re,
Bien sûr, je suis un âne !...
Bien sûr, je suis un âne !...
Set DEST = IIf(ActiveSheet.Range("A2").Value = "", ActiveSheet.Range("A2"), ActiveSheet.Range("A1").End(xlDown).Offset(1, 0))
Carole-
Messages postés
14
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
29 août 2017
24 mars 2017 à 12:00
24 mars 2017 à 12:00
Bonjour,
Mais non, par contre moi j'ai du mal avec les macro.
Maintenant la macro fonctionne mais va me récupérer les données du dernier onglet (exemple le "zzz") et me les recolle à la suite de cet onglet "zzz" :(
Mais non, par contre moi j'ai du mal avec les macro.
Maintenant la macro fonctionne mais va me récupérer les données du dernier onglet (exemple le "zzz") et me les recolle à la suite de cet onglet "zzz" :(
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
24 mars 2017 à 12:23
24 mars 2017 à 12:23
Re,
Je confirme. Je suis vraiment un âne !...
Remplacer la ligne pour les trois onglets donc 3 fois dans le code...
Ou, le code complet :
Je confirme. Je suis vraiment un âne !...
Set DEST = IIf(Sheets("synthèse").Range("A2").Value = "", Sheets("synthèse").Range("A2"), Sheets("synthèse").Range("A1").End(xlDown).Offset(1, 0))
Remplacer la ligne pour les trois onglets donc 3 fois dans le code...
Ou, le code complet :
Sub TESTCOLLERBASE() Dim OS as Worksheet 'déclare la variable OS (Onglet Synthèse) Dim DEST As Range 'déclare la variable DEST (cellule de DESTination) Application.ScreenUpdating = False Set OS = Worksheets("synthèse") 'définit l'onglet OS Worksheets("xxx").Select 'définit la cellule de destination DEST (A2 si A2 est vide, sinon, la première cellule vide de la colonne A de l'onglet OS) Set DEST = IIf(OS.Range("A2").Value = "", OS.Range("A2"), OS.Range("A1").End(xlDown).Offset(1, 0)) ActiveSheet.UsedRange.Copy 'copie les cellules éditées de l'onglet O DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST Worksheets("yyy").Select 'définit la cellule de destination DEST (A2 si A2 est vide, sinon, la première cellule vide de la colonne A de l'onglet OS) Set DEST = IIf(OS.Range("A2").Value = "", OS.Range("A2"), OS.Range("A1").End(xlDown).Offset(1, 0)) ActiveSheet.UsedRange.Copy 'copie les cellules éditées de l'onglet O DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST Worksheets("zzz").Select 'définit la cellule de destination DEST (A2 si A2 est vide, sinon, la première cellule vide de la colonne A de l'onglet OS) Set DEST = IIf(OS.Range("A2").Value = "", OS.Range("A2"), OS.Range("A1").End(xlDown).Offset(1, 0)) ActiveSheet.UsedRange.Copy 'copie les cellules éditées de l'onglet O DEST.PasteSpecial (xlPasteValues) 'colle les valeurs dans DEST End Sub
Carole-
Messages postés
14
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
29 août 2017
24 mars 2017 à 16:48
24 mars 2017 à 16:48
Génial !! Ça fonctionne
Merci beaucoup pour ton aide !
A une prochaine fois
Merci beaucoup pour ton aide !
A une prochaine fois
22 mars 2017 à 16:45
Merci pour cette réponse rapide et les explications de cette macro.
Dans ce cas , la macro me récupère du 1er au dernier onglet pour copier coller dans la base.
Comment dois-je faire pour qu'il me prenne l'onglet qui se nomme "xxx", puis l'onglet "yyy", puis l'onglet "zzz" etc ?
Dans mon fichier de travail j'ai 4 onglets précis que je dois coller dans ma base.
Merci :)