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 Sub

Bonjour 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

Rechercher des sujets similaires à "erreur execution 1004 copie colle variable"