Microsoft 365 Erreur 9 VBA pour extraction en boucle

  • Initiateur de la discussion Initiateur de la discussion E25P
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E25P

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord, je vous remercie d'avance pour l'aide que vous avez pu me donner sur ce forum, j'ai lu pas mal de vos posts. Mais voilà, aujourd'hui, je dois vous écrire car je bloque sur un code VBA.

Le but de celui-ci est d'extraire tous le sujets de la feuille "Zone à remplir" grâce à la feuille "Extraction Sujet" et de les transformer en fichier. J'ai créé le code moi-même avec le peu de connaissance que j'ai. Voici le code pour information :


VB:
Sub Extract()

Dim NBSubject As Integer
Dim NBTotSubject As Integer
Dim Date1 As Date
Dim Filename As String

Date1 = [B3]
Filename = "C:\Users\---\Desktop\GED\" & "GED_Question_" & Date1 & "_" & NBSubject & ".xlsx"

NBTotSubject = 8
    For NBSubject = 1 To NBTotSubject
        Range("A1").Value = "Sujet" & NBSubject
        Range("A1:B8").Calculate
        oArray = Range("A1:B8")
        With Workbooks.Add
        .Title = "Question " & NBSubject
        .SaveAs Filename:=Filename
        End With
        Workbooks.Open (Filename)
        Range("A1:B8") = oArray
        Erase oArray
        ActiveWorkbook.Save
        Workbooks("GED_Question_" & Date1 & "_" & NBSubject & ".xlsx").Close
        Windows("Renvoi XLD.xlsm").Activate
        Next NBSubject
      

End Sub

Et voici la ligne que le débogage me surligne :
VB:
Workbooks("GED_Question_" & Date1 & "_" & NBSubject & ".xlsx").Close

Pour ce qui est du fichier, je l'ai rendu anonyme et disponible ci-joint. Sur ce, je vous remercie énormément d'avance. Il est super votre forum.
 

Pièces jointes

Dernière édition:
Solution
Alors, j'ai trouvé moi-même l'erreur finalement. 😅

Voici la solution :

VB:
Sub Extract()

Dim NBSubject As Integer
Dim NBTotSubject As Integer
Dim Date1 As Date
Dim Filename As String

Date1 = [B3]

NBTotSubject = 8
    For NBSubject = 1 To NBTotSubject
        Range("A1").Value = "Sujet" & NBSubject
        Range("A1:B8").Calculate
        oArray = Range("A1:B8")
        Filename = "C:\Users\---\Desktop\GED\" & "GED_Question_" & Date1 & "_" & NBSubject & ".xlsx"
        With Workbooks.Add
        .Title = "Question " & NBSubject
        .SaveAs Filename:=Filename
        End With
        Workbooks.Open (Filename)
        Range("A1:B8") = oArray
        Erase oArray
        ActiveWorkbook.Save
        Workbooks("GED_Question_" & Date1 &...
Alors, j'ai trouvé moi-même l'erreur finalement. 😅

Voici la solution :

VB:
Sub Extract()

Dim NBSubject As Integer
Dim NBTotSubject As Integer
Dim Date1 As Date
Dim Filename As String

Date1 = [B3]

NBTotSubject = 8
    For NBSubject = 1 To NBTotSubject
        Range("A1").Value = "Sujet" & NBSubject
        Range("A1:B8").Calculate
        oArray = Range("A1:B8")
        Filename = "C:\Users\---\Desktop\GED\" & "GED_Question_" & Date1 & "_" & NBSubject & ".xlsx"
        With Workbooks.Add
        .Title = "Question " & NBSubject
        .SaveAs Filename:=Filename
        End With
        Workbooks.Open (Filename)
        Range("A1:B8") = oArray
        Erase oArray
        ActiveWorkbook.Save
        Workbooks("GED_Question_" & Date1 & "_" & NBSubject & ".xlsx").Close
        Windows("Renvoi XLD.xlsm").Activate
        Next NBSubject
        

End Sub
 
Bonjour à tous 🙂 ,

si tu le dis, chez moi, çà ne veut toujours pas fonctionner, en supprimant "Date1" au nom du fichier à créer, plus de problèmes.
bizarre, vous avez dit
Effectivement Date1 est déclaré de type Date. Dans une concaténation, Date1 est convertit en date au format 06/05/2022 (Excel français, paramètre Date Français en Windows et donc aussi en Excel chez moi). Un nom de fichier ne doit pas comporter de "/".
En remplaçant, Date1 par Format(Date1,"yyyy-mm-dd"), ça fonctionne chez moi.
 
Dernière édition:
Bonjour à tous 🙂 ,


Effectivement Date1 est déclaré de type Date. Dans une concaténation, Date1 est convertit en date au format 06/65/2022 (Excel français, paramètre Date Français en Windows et donc aussi en Excel chez moi). Un nom de fichier ne doit pas comporter de "/".
En remplaçant, Date1 par Format(Date1,"yyyy-mm-dd"), ça fonctionne chez moi.
Moi cela me fait pas ce problème car je n'ai pas les paramètres régionaux français, mais suisse qui, eux, utilisent le "." comme séparateur.
 
Salut, salut, comment allez-vous ?

Dites-moi, j'ai testé ce code mais avec un chemin qui fait référence à un serveur partagé est là, l'erreur 9 se répète, sauriez-vous comment remedier à ce problème ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
672
Réponses
2
Affichages
511
Réponses
7
Affichages
163
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
817
  • Question Question
Microsoft 365 Erreur de macro
Réponses
4
Affichages
742
Retour