TooFatBoy
XLDnaute Barbatruc
Bonjour,
J'ai tenté de créer une macro qui copie des cellules d'un classeur et essaye de coller uniquement les données dans le classeur qui contient la macro en question.
Au 1er lancement ça fonctionne.
Au 2e lancement ça plante au moment de coller les données.
Donc j'arrête le déroulement de la macro, je lance une 3e fois la macro, et... elle fonctionne bien.
Si je lance une 4e fois la macro, elle plante.
etc.
Sauriez-vous m'expliquer pourquoi ça plante une fois sur deux ?
Merci par avance.
J'ai tenté de créer une macro qui copie des cellules d'un classeur et essaye de coller uniquement les données dans le classeur qui contient la macro en question.
Au 1er lancement ça fonctionne.
Au 2e lancement ça plante au moment de coller les données.
Donc j'arrête le déroulement de la macro, je lance une 3e fois la macro, et... elle fonctionne bien.
Si je lance une 4e fois la macro, elle plante.
etc.
Sauriez-vous m'expliquer pourquoi ça plante une fois sur deux ?
Merci par avance.
VB:
Option Explicit
Sub MacroPourrie()
'
Dim ClasseurSource As Workbook
Dim ClasseurCible As Workbook
Dim CheminDossierActuel As String
Dim NomDriveActuel As String
Dim NomFichierSource As String, NomFichierCible As String
CheminDossierActuel = ThisWorkbook.Path ' drive + chemin du dossier
NomDriveActuel = Left(ThisWorkbook.Path, 3) ' drive
ChDrive NomDriveActuel
ChDir CheminDossierActuel
NomFichierSource = Application.GetOpenFilename("Fichiers .csv (*.csv), *.csv")
If NomFichierSource = "Faux" Then Exit Sub
Set ClasseurCible = ThisWorkbook
Set ClasseurSource = Workbooks.Open(NomFichierSource)
ClasseurSource.ActiveSheet.Range("A1:A" & Range("A1").End(xlDown).Row).Copy
ClasseurCible.Activate
If Not Range("Tablo_Donnees").ListObject.DataBodyRange Is Nothing Then
Range("Tablo_Donnees").ClearContents
Range("Tablo_Donnees").Delete
End If
' Ca plante ligne suivante
Range("Tablo_Donnees[Mes Données]").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("Tablo_Donnees[[#Headers],[Mes Données]]").Select
ClasseurSource.Close False
Set ClasseurSource = Nothing
Set ClasseurCible = Nothing
End Sub