IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

ouvrir avec un script un fichier csv dans Excel 2010 et le modifier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Par défaut ouvrir avec un script un fichier csv dans Excel 2010 et le modifier
    Bonjour,

    J'ai besoin d'ouvrir un fichier .csv dans Excel 2010 qui n'a jamais le même nom (je souhaite donc le rechercher dans une liste)
    Ce fichier csv est la base au format xml mais je n'arrive pas à l'ouvrir, c'est pour cela que je le met en csv.
    L'idée est donc ensuite de modifier le csv mais je bloque déjà pour charger le csv par le script.

    Je joint le fichier excel dans lequel j'ai injecté une macro que j'ai trouvé sur des forum.
    J'ai une erreur que je ne comprend pas: erreur de compilation, Type efini par l'utilisateur non défini.
    importer csv excel.xlsm
    222ACW0831540.xml

    Quelqu'un peut il m'aider svp?

    Merci
    Salutations

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Prend le temps de lire les règles du site concernant les fichiers joints, entre autres.
    Comme je n'ouvre pas de fichiers contenant des macros, est-ce que tu peux mettre le bout de code qui fait défaut (en utilisant le bouton # pour le formater) et dire où est-ce que ça plante ?

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Par défaut
    Bonjour et merci pour votre retour,
    Veuillez m'excuser c'est la première fois que je viens sur un site d'entre aide de dévelopement...
    Ci-dessous le code que j'ai dans Excel (dans un module), il bloque au Private sub (il me semble) avec "Dim FSO As Scripting.FileSystemObject" qui est grisé.

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    ' Sous VBE cocher référence Microsoft Scripting Runtime
    Option Explicit
     
    Sub Lecture()
    Dim fichier As Variant
        ChDir ThisWorkbook.Path
        fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
        If fichier <> False Then Lire fichier
    End Sub
     
     
    Private Sub Lire(ByVal sNomFichier As String)
    Dim s As String
    Dim FSO As Scripting.FileSystemObject
    Dim fichier As Scripting.TextStream
    Dim iRowS As Long, iRowD As Long, iCol As Long
    Dim Ar() As String
    Dim i As Long
    Const Separateur As String * 1 = ","
     
        Worksheets("Samedi").Cells.Clear
        Worksheets("Dimanche").Cells.Clear
     
        Application.ScreenUpdating = False
     
        Set FSO = New Scripting.FileSystemObject
        Set fichier = FSO.GetFile(sNomFichier).OpenAsTextStream(ForReading)
     
        iRowS = 0: iRowD = 0
        Do While Not fichier.AtEndOfStream
            iCol = 1
            s = fichier.ReadLine
            Ar = Split(s, Separateur)
            Select Case Ar(5)
                Case "Samedi"
                    iRowS = iRowS + 1
                    For i = LBound(Ar) To UBound(Ar)
                        Worksheets("Samedi").Cells(iRowS, iCol) = Ar(i)
                        iCol = iCol + 1
                    Next i
                Case "Dimanche"
                    iRowD = iRowD + 1
                    For i = LBound(Ar) To UBound(Ar)
                        Worksheets("Dimanche").Cells(iRowD, iCol) = Ar(i)
                        iCol = iCol + 1
                    Next i
            End Select
        Loop
        fichier.Close
     
        Set fichier = Nothing
        Set FSO = Nothing
     
        Application.ScreenUpdating = True
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    As-tu créé une référence au scripting object ?

    Sinon, va dans le menu Outils / Références (dans VBA)
    Recherche Microsoft Scripting Runtime et coche la boîte
    Ça devrait régler ce problème

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 9
    Par défaut Merci
    Ok,
    Merci j'ai bien coché cette case.

    Par contre, l'objectif est d'écrire le csv dans excel dans le but de le retravailler et là rien ne s'écris...
    J'avais récupéré ce code sur un forum pour aller chercher le csv dans un fichier mais la suite ne concerne pas le projet...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    ' Sous VBE cocher référence Microsoft Scripting Runtime
    Option Explicit
     
    Sub Lecture()
    Dim fichier As Variant
        ChDir ThisWorkbook.Path
        fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
        If fichier <> False Then Lire fichier
    End Sub
     
     
    Private Sub Lire(ByVal sNomFichier As String)
    Dim s As String
    Dim FSO As Scripting.FileSystemObject
    Dim fichier As Scripting.TextStream
    Dim iRowS As Long, iRowD As Long, iCol As Long
    Dim Ar() As String
    Dim i As Long
    Const Separateur As String * 1 = ","
     
    '    Worksheets("Samedi").Cells.Clear
     '   Worksheets("Dimanche").Cells.Clear
     
    '    Application.ScreenUpdating = False
     
     '   Set FSO = New Scripting.FileSystemObject
      '  Set fichier = FSO.GetFile(sNomFichier).OpenAsTextStream(ForReading)
     
       ' iRowS = 0: iRowD = 0
        'Do While Not fichier.AtEndOfStream
         '   iCol = 1
          '  s = fichier.ReadLine
           ' Ar = Split(s, Separateur)
            'Select Case Ar(5)
             '   Case "Samedi"
              '      iRowS = iRowS + 1
               '     For i = LBound(Ar) To UBound(Ar)
                '        Worksheets("Samedi").Cells(iRowS, iCol) = Ar(i)
                 '       iCol = iCol + 1
                  '  Next i
                'Case "Dimanche"
                 '   iRowD = iRowD + 1
                  '  For i = LBound(Ar) To UBound(Ar)
                   '     Worksheets("Dimanche").Cells(iRowD, iCol) = Ar(i)
                    '    iCol = iCol + 1
                    'Next i
           ' End Select
        'Loop
    '    fichier.Close
     
        Set fichier = Nothing
        Set FSO = Nothing
     
        Application.ScreenUpdating = True
    End Sub

    Avez vous une astuce pour écrire le csv dans Excel.

    Merci
    Salutations

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Tu peux l'ouvrir comme si c'était un classeur Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open "Chemin et nom du fichier .csv", local:=True
    À ce moment-là tu te retrouves avec 2 classeurs.
    En utilisant des variables Workbook, tu pourras travailler dans l'un ou l'autre.
    Sinon, utiliser ActiveWorkbook (ton csv à l'écran) et ThisWorkbook (le classeur avec macros)

Discussions similaires

  1. [XL-2010] Conversion d'un fichier csv dans excel 2010
    Par Yvette dans le forum Excel
    Réponses: 5
    Dernier message: 10/02/2014, 15h36
  2. Ouvrir un fichier csv dans excel
    Par judavid dans le forum VBScript
    Réponses: 5
    Dernier message: 17/03/2009, 19h01
  3. Ouvrir un fichier csv dans excel via access
    Par NELAIN dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/02/2009, 15h15
  4. Réponses: 1
    Dernier message: 29/04/2008, 12h54
  5. problème avec un telechargement d'un .csv dans Excel
    Par olosta dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/05/2006, 03h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo