[BUG] L'indice n'appartient pas à la sélection

Bonjour à tous,

J'ai un problème lorsque je souhaite exporter une feuille de mon classeur excel en .csv.

J'obtiens " l'erreur d'éxecution 9 : L'indice n'appartient pas à la sélection" sur la ligne suivante :

Set W1 = Workbooks(ActiveSheet.Name)

dans le code suivant:

Sub Bouton_BDD()
Dim W1 As Workbook

Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "bdd_csv"
Sheets("bdd").Cells.Copy
Sheets(Sheets.Count).Range("A1").PasteSpecial Paste:=xlValues
Sheets(Sheets.Count).Range("A1").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False

For i = 101 To 1 Step -1
    If ActiveSheet.Cells(i, 16).Value = "" Then ActiveSheet.Rows(i).Delete
Next i

Set W1 = Workbooks(ActiveSheet.Name)
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs W1.Path & "\export\" & Year(Date) & "_" & Right("0" & Month(Date), 2) & "_" & Right("0" & Day(Date), 2) & "_" & Sheets("configuration").Cells(1, 2).Value & ".csv", FileFormat:=xlCSV, CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True

End Sub

Avez-vous une idée de l'origine de ce bug ?

Merci d'avance pour votre aide.

bonjour,

je pense que tu confonds classeur et feuille.

dans cette instruction,

Set W1 = Workbooks(ActiveSheet.Name)

tu veux associer la variable W1 à un classeur ouvert portant le nom de la feuille active. Et l'interpréteur VBA, ne trouve pas un tel classeur.

Merci de ta réponse rapide !

Oui effectivement j'ai bien l'impression que je confondais...

Bon... j'essayais ce moyen d'exporter mon csv car l'ancien ne marchait pas. J'obtient "l'erreur d'exécution 1004: La méthode Saveas de l'objet '_Workbook' a échoué" sur la ligne suivante :

ActiveWorkbook.SaveAs NomEtCheminFichier, FileFormat:=xlCSV, CreateBackup:=False

sur le code suivant:

Sub Bouton_BDD()

Dim NomEtCheminFichier As String
NomEtCheminFichier = ThisWorkbook.Path & "\export\" & Year(Date) & "_" & Right("0" & Month(Date), 2) & "_" & Right("0" & Day(Date), 2) & "_" & Sheets("configuration").Cells(1, 2).Value & ".csv"

Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "bdd_csv"
Sheets("bdd").Cells.Copy
Sheets(Sheets.Count).Range("A1").PasteSpecial Paste:=xlValues
Sheets(Sheets.Count).Range("A1").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False

For i = 101 To 1 Step -1
    If ActiveSheet.Cells(i, 16).Value = "" Then ActiveSheet.Rows(i).Delete
Next i

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs NomEtCheminFichier, FileFormat:=xlCSV, CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True

End Sub

Dois-je ouvrir une discussion différente ou avez vous une idée de ce que pourrait être le problème ?

Bonjour,

je n'ai pas de problème avec ta macro

j'aurais écrit activesheet.saveas plutôt que activeworkbook.saveas, et supprimé le activewindow.close, mais ta macro fonctionne.

vérifie le nom que tu as mis en en feuille B1 de la feuille configuration, vérifie aussi que le répertoire export existe bien dans le répertoire dans lequel est sauvé le classeur en cours d'exécution.

Super merci beaucoup ça marche ! Le soucis venait du dossier "export" que je n'avais pas créé, je pensais que ce serait automatique.

Rechercher des sujets similaires à "bug indice appartient pas selection"