Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copie de plusieurs feuilles dans une nouvelle vierge.

  • Initiateur de la discussion Initiateur de la discussion clementptpf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

clementptpf

Guest
Bonjour,

J'ai fait un peu de recherche sur le forum mais je n'ai pas trouvé ce qui correspond à mon besoin alors je fais ce post.

Je souhaite copier l'intégralité de 5 feuilles (sauf la première ligne) dans une 6ème feuille vierge (sauf la première ligne).
Les colonnes des 6 feuilles sont les mêmes.

Pouvez-vous m'aider ?

Merci.
 
Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Bonjour,

Merci pour cet exemple, ça semble correspondre effectivement à ce que je souhaite.
Je vais essayer avec mon fichier et je te tiens au courant (un peu booké en ce moment 🙁 ).

Merci.
 
Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Voilà, j'ai intégré mes données avec la macro que tu as faite.
Je l'ai lancé et j'ai cherché d'où venait le problème, j'ai trouvé mais je n'ai pas réussi à le résoudre.

D'après les tests que j'ai pu faire, j'en suis arrivé au constat suivant :
- Toutes les lignes des onglets ne sont pas prises en compte (ça marche avec l'exemple que tu m'as envoyé mais pas avec mon fichier). Apparemment, la copie s'arrête lorsqu'il y a une ligne dont les colonnes C à H sont vides
- Il y a un bug lors du copier-coller de la ligne mais je ne sais pas pourquoi (sur l'onglet "Adulte")

Merci pour ton aide.
 

Pièces jointes

Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Bonsoir


Un autre possibilité de macro


Code:
Sub a()
Dim i As Long
With Sheets("Synthèse")
    For i = 1 To 5
    .Range("A65536").End(xlUp).Offset(1).Resize(Sheets(i).[A65536].End(xlUp).Row - 1, 8).Value = Sheets(i).Range(Sheets(i).[A2], Sheets(i).[A65536].End(xlUp)).Resize(, 8).Value
    Next
End With
End Sub
 
Dernière édition:
Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Ha ouais, pas mal.
J'ai fait un petit cumul des 2 et j'arrive à un résultat sympa.

Par contre, est-ce qu'il y a un moyen de récupérer en même temps les mises en forme ?
 
Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Re


Oui en modifiant le code pour utiliser le copier/coller.

Code:
Sub acc()
Dim i As Long
With Sheets("Synthèse")
    For i = 1 To 5
Sheets(i).Range(Sheets(i).[A2], Sheets(i).[A65536].End(xlUp)).Resize(,  8).Copy .Range("A65536").End(xlUp).Offset(1)
    Next
End With
End Sub
 
Dernière édition:
Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Voici le fichier et ce que ça donne. Comme je l'ai mis plus haut, j'ai fait un mixe pour arriver à mes fins mais ça marche (c'est pas pour de la grande cuisine 🙂).

Merci à vous 2.
 

Pièces jointes

Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Re



Pourquoi ne pas simplement utiliser ceci ?

Code:
Sub Creation_Synthese()
Dim i As Long
With Sheets("Synthèse")
    For i = 1 To 5
Sheets(i).Range(Sheets(i).[A2], Sheets(i).[A65536].End(xlUp)).Resize(, 8).Copy .Range("A65536").End(xlUp).Offset(1)
    Next
End With
End Sub
Le résultat est le même non ?

PS: j'ai simplifié aussi les codes de mes autres messages.
 
Dernière édition:
Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Pas tout à fait.
Si tu supprimes toutes l'intégralité des colonnes de l'onglet "Synthèse" et que tu lances la macro, le résultat est le suivant :
- la première ligne est vide (donc sans les titres)
- les filtres sont sur la seconde ligne

C'est pour palier à ce problème que j'ai un peu bidouillé et pris un peu de ton script et un peu du premier pour arriver à ce que je voulais 😀, je ne suis pas un pro en VB 😛.
 
Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Oui, effectivement.

Dans mon idée, la feuille était initialement vierge, c'est pour ça mais en laissant la première ligne, ça marche sans problème.
 
Re : Copie de plusieurs feuilles dans une nouvelle vierge.

Re

Une petite dernière pour la route

C'est cadeau 😉

Code:
Sub a_b()
Dim i As Long, r_a_z
With Sheets("Synthèse")
r_a_z = MsgBox("Voulez-vous réinitialisez la feuille Synthèse?" & Chr(13) & "avant la recopie des données.", vbQuestion + vbYesNo, "COMPILATION DES DONNEES")
    If r_a_z = vbYes Then
    .Rows("2:65536").Delete
    For i = 1 To 5
    .Range("A65536").End(xlUp).Offset(1).Resize(Sheets(i).[A65536].End(xlUp).Row - 1, 8).Value = Sheets(i).Range(Sheets(i).[A2], Sheets(i).[A65536].End(xlUp)).Resize(, 8).Value
    Next
    Else
    End
    End If
End With
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…