libellule85
XLDnaute Accro
Bonsoir le forum,
J'ai récupéré sur le site une macro de Yann-56 (que je remercie) concernant la copie d'un onglet vers un autre classeur. Celle-ci fonctionne impeccablement avec les fichiers .xls mais ne fonctionne pas avec les fichiers .xlsx (l'erreur survient quand j'ai ouvert le classeur xlsx et que je clique sur copier cette feuille !).


Quelqu'un aurait-il une idée pour que cette macro puisse fonctionner aussi bien en xls qu'en xlsx.
Ci-dessous la macro et je joins également le fichier
D'avance merci beaucoup pour votre aide
J'ai récupéré sur le site une macro de Yann-56 (que je remercie) concernant la copie d'un onglet vers un autre classeur. Celle-ci fonctionne impeccablement avec les fichiers .xls mais ne fonctionne pas avec les fichiers .xlsx (l'erreur survient quand j'ai ouvert le classeur xlsx et que je clique sur copier cette feuille !).


Quelqu'un aurait-il une idée pour que cette macro puisse fonctionner aussi bien en xls qu'en xlsx.
Ci-dessous la macro et je joins également le fichier
D'avance merci beaucoup pour votre aide
Code:
Private Sub CommandButton1_Click() ' RECHERCHE DU CLASSEUR SOURCE
Dim CLASSEUR_CHOISI As Long
Dim CLASSEUR_DE_DESTINATION As String
Select Case UserForm1.CommandButton1.Caption
Case "Feuille à Copier"
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For CLASSEUR_CHOISI = 1 To .SelectedItems.Count
Workbooks.Open (.SelectedItems(CLASSEUR_CHOISI))
Next CLASSEUR_CHOISI
End With
ActiveWorkbook.Saved = True ' Pour éviter le message de re-calcul des formules d'une version antérieure.
UserForm1.CommandButton1.Caption = "Copier cette Feuille"
' ICI L'ON PEUT CHOISIR LA FEUILLE A COPIER
Case "Copier cette Feuille"
ActiveWorkbook.ActiveSheet.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
UserForm1.CommandButton1.Caption = "Classeur de Destination"
Case "Classeur de Destination" ' RECHERCHE DU CLASSEUR DE DESTINATION
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
For CLASSEUR_CHOISI = 1 To .SelectedItems.Count
Workbooks.Open (.SelectedItems(CLASSEUR_CHOISI))
CLASSEUR_DE_DESTINATION = ActiveWorkbook.FullName
Next CLASSEUR_CHOISI
End With
ThisWorkbook.ActiveSheet.Copy after:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = False
ThisWorkbook.ActiveSheet.Delete ' SUPPRESSION DE LA FEUILLE PROVISOIREMENT COPIEE DANS "COPIE_FEUILLE"
Application.DisplayAlerts = True
ThisWorkbook.Saved = True
UserForm1.CommandButton1.Caption = "Mission Accomplie"
UserForm1.CommandButton1.BackColor = &HFFFF00
Workbooks.Open CLASSEUR_DE_DESTINATION
End Select
End Sub