Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier le contenu de plusieurs feuille dans une seule

2 réponses
Avatar
Neo
Bonjour,

J'ai besoin, de copier le contenu de toutes feuilles de plusieurs
fichier dans une seule feuille,
J'arrive =E0 pourcourir toutes les feuilles de tous les fichiers, et
copier le contenu mais j'arrive pas =E0 les coller l'une =E0 la suite de
l'autre...

Help me plz
Merci d'avance

Sub CopyFileInOneSheet()
On Error GoTo gesterreur
Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur
As Workbook, WkFinal As Workbook, WsFeuille As Worksheet
Dim i As Integer, wb As String
VarListeFichiers =3D
Application.GetOpenFilename(filefilter:=3D"Classeurs eXceL,*SC*.xls",
Title:=3D"Choisissez les Classeurs =E0 r=E9cup=E9rer", MultiSelect:=3DTrue)
If VarType(VarListeFichiers) =3D vbBoolean Then MsgBox "Abandon !":
Exit Sub 'pour identifier le bouton annuler
Set WkFinal =3D Workbooks.Add 'g=E9n=E9rer le classeur final

For Ctr =3D 1 To UBound(VarListeFichiers)
Set WkClasseur =3D
Workbooks.Open(Filename:=3DVarListeFichiers(Ctr))
i =3D 1
Do
Set WsFeuille =3D WkClasseur.Worksheets(i)
WsFeuille.Select
WsFeuille.Range("1:" & Range("A65536").End(xlUp).Row).Copy
WkFinal.Sheets(1).Range("A65536").End(xlUp).Offset(1,
0).Paste '<<<<<<<<<<<<<< Ca plante ici
'Passer =E0 la prochaine feuille
i =3D i + 1
Loop Until i > WkClasseur.Sheets.Count
WkClasseur.Close savechanges:=3DFalse
Next

Exit Sub

gesterreur:
'classeur vide
If Err.Number =3D -2147221080 Then
Resume Next
End If
End Sub

2 réponses

Avatar
Ange Ounis
La méthode Paste ne s'applique pas à une cellule, seulement à une feuille.
Essaye de remplacer l'instruction qui plante par :

WkFinal.Sheets(1).Paste WkFinal.Sheets(1).Range("A65536").End(xlUp).Offset(1,0)

----------
Ange Ounis
----------

Bonjour,

J'ai besoin, de copier le contenu de toutes feuilles de plusieurs
fichier dans une seule feuille,
J'arrive à pourcourir toutes les feuilles de tous les fichiers, et
copier le contenu mais j'arrive pas à les coller l'une à la suite de
l'autre...

Help me plz
Merci d'avance

Sub CopyFileInOneSheet()
On Error GoTo gesterreur
Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur
As Workbook, WkFinal As Workbook, WsFeuille As Worksheet
Dim i As Integer, wb As String
VarListeFichiers > Application.GetOpenFilename(filefilter:="Classeurs eXceL,*SC*.xls",
Title:="Choisissez les Classeurs à récupérer", MultiSelect:=True)
If VarType(VarListeFichiers) = vbBoolean Then MsgBox "Abandon !":
Exit Sub 'pour identifier le bouton annuler
Set WkFinal = Workbooks.Add 'générer le classeur final

For Ctr = 1 To UBound(VarListeFichiers)
Set WkClasseur > Workbooks.Open(Filename:=VarListeFichiers(Ctr))
i = 1
Do
Set WsFeuille = WkClasseur.Worksheets(i)
WsFeuille.Select
WsFeuille.Range("1:" & Range("A65536").End(xlUp).Row).Copy
WkFinal.Sheets(1).Range("A65536").End(xlUp).Offset(1,
0).Paste '<<<<<<<<<<<<<< Ca plante ici
'Passer à la prochaine feuille
i = i + 1
Loop Until i > WkClasseur.Sheets.Count
WkClasseur.Close savechanges:úlse
Next

Exit Sub

gesterreur:
'classeur vide
If Err.Number = -2147221080 Then
Resume Next
End If
End Sub



Avatar
Neo
Bonjour,

Merci Ange, je vient de la tester ça marche
J'ai aussi trouver cette solution,
WsFeuille.Range("1:" & Range("A65536").End(xlUp).Row).Copy
Destination:=WkFinal.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1,
0)

Merci.



La méthode Paste ne s'applique pas à une cellule, seulement à une f euille.
Essaye de remplacer l'instruction qui plante par :

WkFinal.Sheets(1).Paste WkFinal.Sheets(1).Range("A65536").End(xlUp).Offse t(1,0)

----------
Ange Ounis
----------

Bonjour,

J'ai besoin, de copier le contenu de toutes feuilles de plusieurs
fichier dans une seule feuille,
J'arrive à pourcourir toutes les feuilles de tous les fichiers, et
copier le contenu mais j'arrive pas à les coller l'une à la suite de
l'autre...

Help me plz
Merci d'avance

Sub CopyFileInOneSheet()
On Error GoTo gesterreur
Dim VarListeFichiers As Variant, VarFichier As Variant, WkClasseur
As Workbook, WkFinal As Workbook, WsFeuille As Worksheet
Dim i As Integer, wb As String
VarListeFichiers =
Application.GetOpenFilename(filefilter:="Classeurs eXceL,*SC*.xls",
Title:="Choisissez les Classeurs à récupérer", MultiSelect:=T rue)
If VarType(VarListeFichiers) = vbBoolean Then MsgBox "Abandon !":
Exit Sub 'pour identifier le bouton annuler
Set WkFinal = Workbooks.Add 'générer le classeur final

For Ctr = 1 To UBound(VarListeFichiers)
Set WkClasseur =
Workbooks.Open(Filename:=VarListeFichiers(Ctr))
i = 1
Do
Set WsFeuille = WkClasseur.Worksheets(i)
WsFeuille.Select
WsFeuille.Range("1:" & Range("A65536").End(xlUp).Row).Copy
WkFinal.Sheets(1).Range("A65536").End(xlUp).Offset(1,
0).Paste '<<<<<<<<<<<<<< Ca plante ici
'Passer à la prochaine feuille
i = i + 1
Loop Until i > WkClasseur.Sheets.Count
WkClasseur.Close savechanges:úlse
Next

Exit Sub

gesterreur:
'classeur vide
If Err.Number = -2147221080 Then
Resume Next
End If
End Sub