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 :

Exportation des données d'un Fichier .csv dans des fichiers Excel via une Macro.


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    10 réponses plus tôt
    Citation Envoyé par ouskel'n'or Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim NomsDivers as variant
    NomsDivers = Split("NomfichierEXCEL|NomOnglet|Ligne|Colonne|Valeur;","|")
    NomFich = NomsDivers(0)
    NomOnglet = NomsDivers(1)
    NoLig = Val(NomsDivers(2))
    NoCol = Val(NomsDivers(3))
    Valeur = Replace(NomsDivers(4),";","")
    Après, tu sauras quoi en faire ?
    Faut lire !

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    autre petit problème la valeur NomFichier contient un retour chariot je croit... comment je pourrais le supprimer ?


    Sinon je mets NomfichierEXCEL|NomOnglet|Ligne|Colonne|Valeur; et mis dans un tableau avec split | puis les valeurs sont mis dans des variables.

  3. #23
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Re,

    Sauvegarder le fichier et libérer les variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set objSheet1 = Nothing
    objWbk.Close True, "Chemin de Destination"
    Set objWbk = Nothing
    A+

  4. #24
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par killysui Voir le message
    autre petit problème la valeur NomFichier contient un retour chariot je croit... comment je pourrais le supprimer ?
    Pour le savoir, tu peux tester avec instr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If instr(NomFichier, vbcr) <> 0 Then msgbox "t'as un cr dans le nom (carriage return)"
    'ou
    If instr(NomFichier, vblf) <> 0 Then msgbox "t'as un lf dans le nom"
    Pour enlever l'un et/ou l'autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomFichier = Replace(Replace(NomFichier, vblf, ""), vbcr, "")
    Citation Envoyé par killysui
    Sinon je mets NomfichierEXCEL|NomOnglet|Ligne|Colonne|Valeur; et mis dans un tableau avec split | puis les valeurs sont mis dans des variables.
    Ce n'était pas ma question. Comment lis-tu les lignes de ton csv ? Quelle méthode ? Fichier texte ou lecture feuille de calculs ?

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    Pour répondre à ta question :

    voici le code de lecture :

    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
     
        Chemin = ThisWorkbook.Path
        NomFichCSV = "Test.csv"
        NomFichEXCEL = ""
     
        Dim F As Integer
     
         F = FreeFile '1er numéro libre
         Open Chemin & "\" & NomFichCSV For Input As #F 'ouvert en ajout
     
        'Open Chemin & "\" & NomFichCSV For Input As #1
            Do While Not EOF(F)
             Line Input #F, LigneCSV
             TableauLignesCSV = Split(LigneCSV, ";")
             For NoLigneCVS = 0 To UBound(TableauLignesCSV)
                 TableauValeurLigne = Split(TableauLignesCSV(NoLigneCVS), "|")
                 'If Not TableauValeurLigne Is Nothing Then
                     NomOnglet = TableauValeurLigne(1)
                     NumLigne = Val(TableauValeurLigne(2))
                     NumColonne = Val(TableauValeurLigne(3))
                     Valeur = Val(TableauValeurLigne(4))
    ......
    Next
           Loop
        Close #F

  6. #26
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    RE,

    Résolu, Non??

    A+

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    J'aurai bien voulu... mais je n'ai pas encore fini...

    Je boucle une fois de trop dans mon fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
             For NoLigneCVS = 0 To UBound(TableauLignesCSV)
                 TableauValeurLigne = Split(TableauLignesCSV(NoLigneCVS), "|")
                 'If Not TableauValeurLigne Is Nothing Then
                     NomOnglet = TableauValeurLigne(1)
    du coup j'ai une erreur... comment je peux la gérer?

    Merci

  8. #28
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par killysui Voir le message
    Pour répondre à ta question :

    voici le code de lecture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
         F = FreeFile '1er numéro libre
         Open Chemin & "\" & NomFichCSV For Input As #F 'ouvert en ajout
     
        'Open Chemin & "\" & NomFichCSV For Input As #1
            Do While Not EOF(F)
             Line Input #F, LigneCSV
             TableauLignesCSV = Split(LigneCSV, ";")
             For NoLigneCVS = 0 To UBound(TableauLignesCSV)
                 TableauValeurLigne = Split(TableauLignesCSV(NoLigneCVS), "|")
             '...
    Alors, en principe, tu n'as ni vbcr ni vblf ni vbcrlf dans ta ligne.
    Qu'est-ce qui te fait penser que tu as l'un ou l'autre dans le nom de fichier ?

  9. #29
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    RE,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For NoLigneCVS = 0 To (UBound(TableauLignesCSV) - 1)
    Non??

  10. #30
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    Oui moi aussi lorsque j'ai vu cela ca ma paru bizar ... mais à la deuxième ligne une retour chariot(le fichier .csv a du être mal fait..j'ai ). Avec le replace cela fonctionne mieux.

    J'aurai une dernière question(du moin je l'espère)
    la fermeture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    objWbk1.close true, chemin & "\" & NomFichExcel
    set objWbk1 = nothing
    set app = nothing
    ne fonctionne pas...

  11. #31
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Re,

    Quelle est l'erreur?

    A+

  12. #32
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    ... et sur quelle ligne ?

  13. #33
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    Désolé je me suis trompé.L'erreur ce produire lors de la fermeture du fichier
    Ce qui est bizar c'est cette erreur (qui est vide)n'apparait que si je gère les erreurs avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    On Error Goto errrr
     
    errr:
    msgbox "erreur :" & err.description, vbcritical,"erreur import csv"

  14. #34
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    C'est à dire que si je décommente cette partie , l'erreur n'apparait pas.

  15. #35
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Re,

    Tu n'essayes pas de faire tout ça sur le même fichier??

    Tu ne veux pas nous balancer le code au complet, ça sera plus facile pour la compréhension...

    A+

  16. #36
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par killysui Voir le message
    Désolé je me suis trompé.L'erreur ce produire lors de la fermeture du fichier
    Ce qui est bizar c'est cette erreur (qui est vide)n'apparait que si je gère les erreurs avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    On Error Goto errrr
     
    errr:
    msgbox "erreur :" & err.description, vbcritical,"erreur import csv"
    Où est placé ton errr: ?
    As-tu mis un exit sub avant errr: ?

  17. #37
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    le errr: et placé juste après voici en gros le code :

    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
     
     
     On Error GoTo Error_LFT
     
     Dim F As Integer
     F = FreeFile '1er numéro libre
     Open Chemin & "\" & NomFichCSV For Input As #F
       Do While Not EOF(F)
          Line Input #F, LigneCSV
          ....
       loop
          ....
     Close #F
     
    Error_LFT:
      Beep
      MsgBox "Rrreur : " & vbCrLf & Err.Description, vbCritical, "Erreur import .csv"
       Exit Sub

  18. #38
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    lors ajoute Exit sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Close #F
    Exit sub
    Error_LFT::
    Tu n'iras sur Error_LFT:: que si tu as une erreur, sinon, tu passeras toujours par "là" après close (!)
    Tu fermes le csv, pas le fichier contenant la macro, alors elle continue, c'est normal...

  19. #39
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    Sinon vous ne saurez pas comment ajouter la classe Scripting dans la bibliothèque ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim objFSO As New Scripting.FileSystemObject
    Merci

  20. #40
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    Merci ouskel'n'or. Tu es génial.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/04/2011, 11h30
  2. Réponses: 10
    Dernier message: 22/03/2011, 23h40
  3. [MySQL] Exporter le contenu d'un champ email dans un fichier csv
    Par thamis dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/01/2010, 16h17
  4. Réponses: 3
    Dernier message: 11/06/2007, 11h20
  5. fichier CSV modification des données.
    Par suya95 dans le forum Excel
    Réponses: 8
    Dernier message: 26/07/2006, 12h22

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