Ouvrir et traiter un ficher .csv sous excel en VBA [Résolu]

Signaler
Messages postés
32
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
Messages postés
32
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
Bonjour

Voila, j'aimerais ouvrir un fichier .csv avec une macro excel pour remplir les cases d'un tableau!

voici le code que j'utilise mais je ne sais pas pourquoi sa ne marche pas!!!

 Dim NomFicher(101) As String
    Dim CdoMessage As CDO.Message
    Dim FichiersChoisis As Variant
      
   ' ElseSub ouvrir_fichier()
FichiersChoisis = Application.GetOpenFilename("Fichier CSV (*.csv),*.csv")
If FichiersChoisis <> "" Then
    Workbooks.Open Filename:=FichiersChoisis
    Windows(FichiersChoisis).Activate
    Sheets(FichiersChoisis).Select
    NomFichier = Range("A1:AM10000").Value
    Windows("Fichier.xls").Activate
    Sheets("Releves").Range("B17:AN10000").Value = NomFichier
End If

Le bute est d'ouvrir le fichier de base '.csv' et ensuite de le parcourir pour remplir le fichier excel.

Cordialement

5 réponses

Messages postés
32
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2008

J'ai trouvé!!!!
Voici la solution:

Sub Auto_Open()
    Dim NomFicher(101) As String
    Dim CdoMessage As CDO.Message
    Dim FichiersChoisis As String
    Dim remplace As String
    remplace = ".txt"
    FichiersChoisis = ""
 
    FichiersChoisis = Application.GetOpenFilename("Fichier Text (*.txt),*.txt")
    
    If FichiersChoisis <> "" Then
        'Ouverture du fichier text
        Workbooks.OpenText Filename:= _
                            FichiersChoisis, _
                            Origin:=xlWindows, _
                            StartRow:=1, _
                            DataType:=xlDelimited, _
                            TextQualifier:= _
                            xlDoubleQuote, _
                            ConsecutiveDelimiter:=False, _
                            Tab:=False, _
                            Semicolon:=True, _
                            Comma:=False, _
                            Space:=False, _
                            Other:=False
              
       ' On enlève l'adresse complète du fichier et on garde son nom
        FichiersChoisis = Mid(FichiersChoisis, InStrRev(FichiersChoisis, "") + 1)
        'On active le classeur
        Windows(FichiersChoisis).Activate
       
        'On supprime le *.txt pour pouvoir sélectionne la feuille
        FichiersChoisis = Replace(FichiersChoisis, remplace, "")
        Sheets(FichiersChoisis).Select
        'On sélèctionne les parties du tableaux qui nous intéresse
        Nomfichier = Range("A1:AM10000").Value
       
        'On sélèctionne le dossier ou l'on veux déplacer notre ficher .txt
        Windows("NomduFichier.xls").Activate
        'On remplace
        Sheets("Releves").Range("B17:AN10000").Value = Nomfichier
    End If
End Sub
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
google m'a soufflé la réponse...

WorkBooks Open CSV

http://drq.developpez.com/vb/tutoriels/Excel/Chapitre2/
Messages postés
32
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2008

Merci c gentil Mais

J'avais déjà trouver cette source mais, le problème reste le même.

Je dois ouvrir un fichier .csv, je le parcours, ensuite je remplit mon tableau.

Et l'erreur se trouve encor et toujours au Windows(Fichier).activate
Je ne comprend plus!!!

Cordialement
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
tu parles de :
Windows("Fichier.xls").Activate
??

je ne pense pas que tu aies une fenetre se nommant ainsi....

au pire, tu peux mémoriser l'ancien ActiveWorkbook, et le réactiver en temps voulu
Messages postés
32
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2008

Je travail sous VBA excel. Simplement j'ai programme qui fonctionne mais qui ne me permet par de choisir le nom du fichier que je veux traiter. Et en Plus je suis obliger d'ouvrir mon fichier.csv avant d'ouvri mon programme.