Copier 2 feuilles dans une 3ème feuille

Résolu
Mischoupi -  
Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici ma problématique. J'ai 2 onglets (Calcul 5) et (Calcul 6), qui ont exactement la même structure mais pas le même nombre de lignes. Je souhaite copier ces 2 onglets les un à la suite des autres dans un autre onglet (final). Voici le code que j'ai réalisé, malheureusement, mon premier copier/coller est écrasé par le second. Pouvez-vous m'aider?
Voici le code


Private Sub CommandButton4_Click()
Sheets("Calcul 5").Activate
ActiveSheet.Range("A1:F60000").Copy

With Sheets("Final")

.Range("A1:F60000").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

End With
Sheets("Calcul 6").Activate
ActiveSheet.Range("A1:F60000").Copy
With Sheets("Final")

.Range("A1:F60000").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

End With

End Sub


Un grand merci par avance
A voir également:

3 réponses

Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Salut,
Tu colles tes 2 zones au même endroit, c'est normal que la deuxième écrase la première...

Il faudrait compter le nombre de lignes à copier dans Calcul5, sélectionner/copier/coller dans final, idem dans Calcul6, et coller sous Calcul5 dans final (avec le nombre de lignes de Calcul5 c'est possible).

Si tu as d'autres questions n'hésites pas à poster.

A+
0
mischoupi
 
Oui mais je débute sous vba et je ne vois pas comment faire.
0
Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Voilà :
Je sais pas si c'est très optimisé mais ça a le mérite de fonctionner :
Sub copie()  
Dim ligne1, ligne2 As Integer  

ligne1 = Sheets("Calcul5").Range("A65536").End(xlUp).Row  
ligne2 = Sheets("Calcul6").Range("A65536").End(xlUp).Row  

Sheets("Calcul5").Range("A1:A" & ligne1).Copy  
Sheets("final").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False  

Sheets("Calcul6").Range("A1:A" & ligne2).Copy  
Sheets("final").Range("A" & ligne1 + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False  

End Sub
Attention, les zones de copie (en gras) ne font qu'une colonne pour moi, à adapter pour toi.

A+
0
mischoupi
 
Merci Morgothal, Mais malheureusement j'ai une erreur d'execution '9', l'indice n'appartient pas à la selection. Quand je debug, cette ligne de code se met en jaune : ligne1 = Sheets("Calcul5").Range("A65536").End(xlUp).Row

Peux tu encore m'éclaircir

Merci
0
mischoupi
 
Je viens de trouver mon erreur. Ca marche parfaitement! Un énorme merci
0
Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Pas de soucis, n'oublie pas de mettre le sujet en résolu ;)
0
mischoupi
 
ou est ce que je mets sujet résolu?
0
Morgothal Messages postés 1236 Date d'inscription   Statut Membre Dernière intervention   183
 
Euh tout en haut je crois
0
thierry
 
débrouilles toi
-1
mischoupi
 
Merci!!!
0