Erreur d'execution 1004 - pour copie/colle avec variable
Bonjour,
J'ai essayé de faire une macro pour faire un copie/colle de cellules avec le nom du fichier source (celui pour copier) et le nom du fichier destination (celui pour coller). La macro fonctionne jusqu'à la copie mais bloque sur le code pour trouver le fichier destination et l'onglet qui va avec.
J'ai le message : Erreur d'execution 1004 - la méthode select de base worksheet a échouée.
L'onglet pour le copie et aussi colle s'appelle 'Délais'
seul le nom des fichiers varient.
J'ai fouiné sur le forum mais n'est pas réussi à corriger ce blocage
Pouvez vous m'aider, j'imagine que ce n'est pas grand chose mais là je bloque vraiment.
D'avance merci.
ci dessous mon code :
Sub recup()
'
' recup'
'
Dim wbSource, wbNom As Workbook
Dim strFileName As String
Dim intChoice As Integer
Set wbNom = ThisWorkbook
'Avec la commande qui suit, on indique que nous ne voulons qu’un seul fichier
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
' On affiche l’écran de dialogue de MS Office
intChoice = Application.FileDialog(msoFileDialogOpen).Show
' On s’assure que le user a fait un choix
If intChoice <> 0 Then
' On récupère le nom complet du fichier
strFileName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Workbooks.Open strFileName
Set wbSource = ActiveWorkbook
' Sinon, on arrête tout en notifiant l’usager
Else
' S’il n’y a pas de fichier, on quitte sans rien faire
MsgBox "La procédure est annulée car aucun fichier n’a été entré."
Exit Sub
End If
'Ici, on insère le code qui applique les changements voulus au fichier ouvert, qui sera ensuite refermé
Sheets("Délais").Select
Range("B9:G9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
wbNom.Sheets("Délais").Select
ActiveSheet.Paste
wbSource.Close SaveChanges:=False 'On ferme le fichier sans le sauver
End Sub
Bonjour,
essaie ceci, à tester
Sub recup()
'
' recup'
'
Dim wbSource, wbNom As Workbook
Dim strFileName As String
Dim intChoice As Integer
Set wbNom = ThisWorkbook
'Avec la commande qui suit, on indique que nous ne voulons qu’un seul fichier
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
' On affiche l’écran de dialogue de MS Office
intChoice = Application.FileDialog(msoFileDialogOpen).Show
' On s’assure que le user a fait un choix
If intChoice <> 0 Then
' On récupère le nom complet du fichier
strFileName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Workbooks.Open strFileName
Set wbSource = ActiveWorkbook
' Sinon, on arrête tout en notifiant l’usager
Else
' S’il n’y a pas de fichier, on quitte sans rien faire
MsgBox "La procédure est annulée car aucun fichier n’a été entré."
Exit Sub
End If
'Ici, on insère le code qui applique les changements voulus au fichier ouvert, qui sera ensuite refermé
Sheets("Délais").select
Range("B9:G9").Select
Range(Selection, Selection.End(xlDown)).Copy
wbNom.Sheets("Délais").Paste
wbSource.Close SaveChanges:=False 'On ferme le fichier sans le sauver
End SubBonjour h2so4,
Merci pour ta réponse et ta réactivité. Cela fonctionne nickel même si je peine un peu comprendre le pourquoi du comment