vba, stocker des résultats dans un fichier csv

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
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 978
Membres
103 996
dernier inscrit
KB4175