vba, stocker des résultats dans un fichier csv

  • Initiateur de la discussion Initiateur de la discussion linann
  • 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 !

linann

XLDnaute Nouveau
Bonjour,
J'ai fais un programme sous vba qui fonctionne, mais dans certains cas je dépasse le nombre de lignes d'excel (65000), on m'a dit qu'au lieu de récupérer mes résultats sur une feuille dans excel ( comme c'est le cas pour l'instant) je n'avais qu'à récupérer mes résultats dans un fichier texte ou dans un csv, mais je n'arrive pas à le faire..
(à noter que je comptais le faire 60 000 par 60 000, donc je compte en fait les stocker dans une feuille "résultats" sur excel et les transférer dans un fichier csv lorsque la feuille excel est remplie, et revider la feuille excel, etc.. je pourrais aussi les stocker petit à petit dans le fichier csv, je verrais par la suite, mais en attendant je n'arrive même pas à transférer dans le fichier csv)

Une amie qui n'est plus là pour m'aider, m'a donné un exemple :
Code Visual Basic :
Code:
Dim oFSO
    Dim strChemin As String
    Dim strCheminComp As String

   
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    strChemin = ThisWorkbook.Path
    strCheminComp = ThisWorkbook.FullName
   
    dossier = oFSO.GetBaseName(strChemin)
    Fichier = oFSO.GetBaseName(strCheminComp)
    Dim stgOut1 As String
    Dim stgOut2 As String
   fich1 = "F:\outilswgsr"
    Fich = fich1 & "\" & "resultats" & ".csv"

   
    Open Fich For Output As #1

     
       Do While Workbooks("" & Fichier & ".xls").Sheets("résultats").Cells(2, j).Value <> ""
           
                stgOut1 = Sheets("résultats").Cells(2, j)
             
                Do While Sheets("résultats").Cells(k, j) <> ""
                    stgOut1 = stgOut1 & ";" & Sheets("résultats").Cells(k, j)
                    k = k + 1
                Loop
                Print #1, (Trim(stgOut1))
         
            j = j + 1
        Loop

     
    Close 1

à la ligne "Do While" ça ne fonctionne plus et m'affiche le message d'erreur suivant : Erreur d'éxécution '1004' erreur définie par l'application ou par l'object..

il faut savoir que le fichier "résultats.csv" est bien créé, mais il est toujours vide.

Pouvez vous m'aider?
merci d'avance
 
Re : vba, stocker des résultats dans un fichier csv

Bonjour linann et Bienvenue sur XLD

Si tu veux enregistrer par exemple la feuille active d'un classeur
en fichier.csv, voici un exemple tout simple qui fait le job

Code:
Sub copie_en_texte()
Dim chemin$, fichier$, s As Worksheet
fichier = "feuille_en_text.csv"
    With ThisWorkbook
        chemin = .Path
        Set s = .ActiveSheet
    End With
s.Copy
Application.DisplayAlerts = False
    With ActiveWorkbook
        .SaveAs chemin & "\" & fichier, xlCSV
        .Close False
    End With
Application.DisplayAlerts = True
End Sub
 
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
79
Réponses
40
Affichages
2 K
Réponses
4
Affichages
361
Retour