Erreur d'exécution '1004': la méthode 'Range' de l'objet'_Gl
RésoluBarbo_14 -
Bonjour,
J'ai ce code qui fonctionne très bien dans un autre fichier Excel pour transformer les données en CSV. Mais en copiant cette macro dans un nouveau fichier Excel, cela me donne cette erreur ;
Erreur d'exécution '1004': la méthode 'Range' de l'objet'_Global' à échoué
et voici mon code ;
Sub Export_csv()
Application.ScreenUpdating = False
Nom = Workbooks(ActiveWorkbook.Name).FullName
Nom = Left(Nom, Len(Nom) - 5) & "_" & Year(Date) & Month(Date) & Day(Date)
ActiveWorkbook.Unprotect Password:="sprs-al8"
Worksheets("Données").Visible = xlSheetVisible
Sheets("Données").Select
ActiveSheet.Unprotect Password:="sprs-al8"
Range("Données").Select <-- le débogueur pointe sur cette ligne
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=(Nom & ".csv"), FileFormat:=xlCSV, CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True
Sheets("CSV").Select
Worksheets("Données").Visible = xlSheetHidden
ActiveWorkbook.Protect Password:="sprs-al8"
MsgBox ("Le fichier au format .csv a été enregisté sous : " & Workbooks(ActiveWorkbook.Name).Path)
End Sub
Windows / Chrome 103.0.0.0
- Excel erreur d'exécution 1004 la méthode range de l'objet
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Comment calculer la moyenne sur excel - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
Bonjour,
Merci pour votre réponse. Mais j'ai une feuille nommé "Données" parmi d'autres feuilles
d'où ma confusion.
De plus, je ne suis pas très à l'aise avec le code VBA..
Bonjour Barbo_14
Voici le code optimisé tel que je l'ai compris
Sub Export_csv()
Dim Wbk As Workbook
Dim Nom As String
' Désactiver le rafraichissement
Application.ScreenUpdating = False
' Nom du futur classeur csv
Nom = Workbooks(ActiveWorkbook.Name).FullName
Nom = Left(Nom, Len(Nom) - 5) & "_" & Year(Date) & Month(Date) & Day(Date)
' Définir ce classeur
St Wbk = ActiveWorkbook
' Déprotéger le classeur
Wbk.Unprotect Password:="sprs-al8"
' Avec la feuille "Données"
With Wbk.Worksheets("Données")
' La rendre visible
.Visible = xlSheetVisible
' La déprotégée
.Unprotect Password:="sprs-al8"
' Copier la feuille dans un nouveau classeur
.Copy
End With
' Avec le nouveau classeur
With ActiveWorkbook
' Sauvegarder sou le nom définit
.SaveAs Filename:=Nom & ".csv", FileFormat:=xlCSV, CreateBackup:=False
' Le fermer
.Close SaveChanges:=False
End With
' Avec la feuille "Données"
With Wbk.Worksheets("Données")
' Protéger la feuille
.Protect Password:="sprs-al8"
' La rendre invisible
.Visible = xlSheetHidden
End With
' Protéger le classeur
Wbk.Protect Password:="sprs-al8"
Set Wbk = Nothing
' Petit message
MsgBox ("Le fichier au format .csv a été enregisté sous : " & Workbooks(ActiveWorkbook.Name).Path)
' réactiver le rafraichissement
Application.ScreenUpdating = True
End Sub
A+