VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

Le Goret

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je souhaiterais disposer d'une macro qui me permettrait de copier une serie d'onglets dans un onblet Recap.
Pour celà j'ai déjà cette macro récupérée sur le site qui fonctionne :

Sub backUpTab()

Dim ws As Worksheet
If Not ws.Name = "Recap" Then
NbLigne = ThisWorkbook.Sheets(ws.Name).Range("A" & "65535").End(xlUp).Row
NbLigneFeuil1 = ThisWorkbook.Sheets("Recap").Range("A" & "65535").End(xlUp).Row + 1
ThisWorkbook.Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "G" & NbLigneFeuil1 + NbLigne - 2).Value = ThisWorkbook.Sheets(ws.Name).Range("A" & "2" & ":" & "G" & NbLigne).Value
End If

Next


Seulement je souhaiterais que cette macro ne copie pas l'intégralité des onglets.

Ne connaissant absoluement rien au langage vba j'ai essayé bêtement de recopier la formule:
If Not ws.Name = "Recap" Then
Et la recoller à la suite avec le nom des onglets que je ne souhaite pas recopier...ce qui ne fonctionne pas:p
Le code erreur qui s'affiche est: Next sans for
Comment pourrais-je ajouter à cette macro les noms des onglets qui ne doivent pas être recopiés (en plus de l'onglet Recap qui est déjà exclu)?
Est-ce qu'il est possible de copier les onglets en gardant la mise en page?

D'avance merci!

Le Goret
 

Pièces jointes

  • Ensachage.xlsm
    28.8 KB · Affichages: 24

Dranreb

XLDnaute Barbatruc
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

Bonjour.

Moi je l'ai ouvert.

Dans ce cas vous pouvez boucler sur un N As Long au lieu de WS As Worksheet et faire soit :
VB:
For N = 1 To 7: Set WS =  ThisWorkbook.Worksheets(Format(N, "00"))
soit :
VB:
For N = 4 To ThisWorkbook.Worksheets.Count: Set WS =  ThisWorkbook.Worksheets(N)
 

Le Goret

XLDnaute Nouveau
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

Tout d'abord merci à vous 2 pour vos réponse rapodes,

Pierrot93 a raison il manquait bien le for each ws in worksheets suite à un oubli da ma part lorsque j'ai recollé la formule.

La 2ème proposition de Dranreb fonctionne: For N = 4 To ThisWorkbook.Worksheets.Count: Set WS = ThisWorkbook.Worksheets(N)

Par contre à partir de la colonne H mes données ne sont plus recopiées.

Le problème doit se trouver à ce niveau je pense:

ThisWorkbook.Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "G" & NbLigneFeuil1 + NbLigne - 2).Value = ThisWorkbook.Sheets(ws.Name).Range("A" & "2" & ":" & "G" & NbLigne).Value

Que dois-je modifier pour parvenir à recopier l'intégralité des données sur mes oglets?
Y a t il possibilité de recopier la mise en forme également?
 

Pierrot93

XLDnaute Barbatruc
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

RE,

ThisWorkbook.Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "G" & NbLigneFeuil1 + NbLigne - 2).Value = ThisWorkbook.Sheets(ws.Name).Range("A" & "2" & ":" & "G" & NbLigne).Value

bah... dans ton code remplace les G par la lettre de la dernière colonne à copier....
 

Pierrot93

XLDnaute Barbatruc
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

Re,

Pour copier également la mise en forme...

Code:
ws.Range("A" & "2" & ":" & "G" & NbLigne).Copy Destination:=Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "G" & NbLigneFeuil1 + NbLigne - 2)
 

Le Goret

XLDnaute Nouveau
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

En effet ca marche...

Au niveau de mon onglet où est-ce que je peux bouger la ligne à partir de laquelle je colle le contenu des onglets?

ThisWorkbook.Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "BA" & NbLigneFeuil1 + NbLigne - 2).Value = ThisWorkbook.Sheets(ws.Name).Range("A" & "2" & ":" & "BA" & NbLigne).Value
 

Le Goret

XLDnaute Nouveau
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

Oups je n'avais pas vu que tu avais retouché le code.

Manipulant les mécanismes de vba comme un gland je n'arrive pas à intégrer ta proposition dans l'ancien code:

ThisWorkbook.Sheets("Recap").Range("A" & "2" & ":" & "BA" & NbLigne).Copy Destination:=Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "BA" & NbLigneFeuil1 + NbLigne - 2).Value = ThisWorkbook.Sheets(ws.Name).Range("A" & "2" & ":" & "BA" & NbLigne).Value

Vois-tu ce qui pêche?
 

Pierrot93

XLDnaute Barbatruc
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

Re,

colles tout ceci en lieu et place du code post #9
Code:
ws.Range("A" & "2" & ":" & "BA" & NbLigne).Copy Destination:=Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "BA" & NbLigneFeuil1 + NbLigne - 2)
 

Le Goret

XLDnaute Nouveau
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

Impeccable!!!
Un grand merci à toi.

Si ca interesse quelqu'un voici la macro en entier à copier coller:

Sub backUpTab()


Dim ws As Worksheet
'Boucle qui parcours une à une chaque feuille du fichier
For N = 4 To ThisWorkbook.Worksheets.Count: Set ws = ThisWorkbook.Worksheets(N)

'Test qui évite de prendre la feuille 1 car c'est la feuille de récupitulation
If Not ws.Name = "Recap" Then

'Dimention du tableau
NbLigne = ThisWorkbook.Sheets(ws.Name).Range("A" & "65535").End(xlUp).Row

'Nombre de ligne tableau dans feuille1

NbLigneFeuil1 = ThisWorkbook.Sheets("Recap").Range("A" & "65535").End(xlUp).Row + 1

'Copie des données

ws.Range("A" & "1" & ":" & "BA" & NbLigne).Copy Destination:=Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "BA" & NbLigneFeuil1 + NbLigne - 2)
End If

Next

End Sub
 

Le Goret

XLDnaute Nouveau
Re : VBA_Copier le contenu d'une sélection d'onglets dans un seul onglet

Bonjour à tous,

Je souhaiterais apporter une amélioration à cette macro.
Je souhaiterais spécifier le nombre lignes à copier dans chaque onglet.

ws.Range("A" & "5" & ":" & "BA" & NbLigne).Copy Destination:=Sheets("Recap").Range("A" & NbLigneFeuil1 & " : " & "BA" & NbLigneFeuil1 + NbLigne - 2)

Au niveau de la macro je copie ici à partir de la 5ème ligne. Je voudrais par exemple que toutes les lignes jusqu'à la 15ème soient recopiées qu'elles soient vides ou non.

Voyez-vous ce qu'il faudrait modifier?

Le Goret
 

Discussions similaires

Réponses
7
Affichages
318

Statistiques des forums

Discussions
312 169
Messages
2 085 911
Membres
103 033
dernier inscrit
thazet