libellule85
XLDnaute Accro
Bonjour le forum,
J'ai une macro que j'utilise pour copie une feuille d'un classeur xls vers un autre classeur xls qui fonctionne très bien. Mais là ou cela se gâte c'est quand je veux copier une feuille d'un classeur xlsm vers un autre classeur xlsm !
Quand je veux ouvrir le classeur xlsm de la feuille à copier j'ai un message d'erreur qui apparaît :
Erreur Exécution 1004
La méthode Open de l'objet Wokbooks a échoué
Et quand je fait débogage voici ci-dessous ce qui est surligné :
Je vous met la macro entière :
Quelqu'un aurait-il une idée pour faire fonctionner cette macro avec des fichiers xlsm ?
D'avance, je vous en remercie
J'ai une macro que j'utilise pour copie une feuille d'un classeur xls vers un autre classeur xls qui fonctionne très bien. Mais là ou cela se gâte c'est quand je veux copier une feuille d'un classeur xlsm vers un autre classeur xlsm !
Quand je veux ouvrir le classeur xlsm de la feuille à copier j'ai un message d'erreur qui apparaît :
Erreur Exécution 1004
La méthode Open de l'objet Wokbooks a échoué
Et quand je fait débogage voici ci-dessous ce qui est surligné :
Code:
Workbooks.Open (.SelectedItems(CLASSEUR_CHOISI))
Je vous met la macro entière :
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 = "Ok Copie Faite !"
UserForm1.CommandButton1.BackColor = &HFFFF00
Workbooks.Open CLASSEUR_DE_DESTINATION
End Select
End Sub
Quelqu'un aurait-il une idée pour faire fonctionner cette macro avec des fichiers xlsm ?
D'avance, je vous en remercie