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