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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut Exportation des données d'un Fichier .csv dans des fichiers Excel via une Macro.
    Bonjour,

    Je débute sur les macros VBA sous EXCEL.

    Je souhaiterai via un fichier .csv qui contient :

    NomfichierEXCEL|NomOnglet|Ligne|Colonne|Valeur
    NomfichierEXCEL|NomOnglet|Ligne|Colonne|Valeur

    Remplir les valeurs dans le fichier excel, onglet, ligne et colonne.

    Pouvez-vous me dire comment m'y prendre.

    Pour info : il existe 4 fichiers Excel, qui contiennent environ 400 onglets.

    Merci.

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut
    Pouvez-vous me dire comment lancer une focntion d'un module lors de l'ouverture d'un fichier excel?

    Merci.

  3. #3
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    en plaçant votre code sur l'événement Workbook_Open du dit classeur.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut
    Merci pour la réponse...

    Cependant, j'a effectivement trouvé la méthode "Workbook_Open" d'une feuille mais pas celle du classeur.

    Pouvez-vous me dire comment faire exectement?

    Merci d'avance.

  5. #5
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Ajoute du code sur ThisWorkbook dans VBE.

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut
    Merci pour vos réponses et pour ce lien. j'ai enfin réussi à lancer des fonction au démarrage.

    Cependant j'aurai encore une question :

    Comment je peux affectuer une valeur à une cellule dont je connais
    - le nom du fichier EXCEL
    - l'onglet(feuille)
    - la ligne
    - et la colonne.

    Voici ce que j'ai essayé mais cella ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(NomOnglet).Cells(NomLigne, NomColonne) = Value
    Merci

  8. #8
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Bonjour,

    C'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil").Cells(NUMERO_LIGNE, NUMERO_COLLONE) = ...
    Tapes sur F1 sur le mot clé que tu ne connais pas et accède à l'aide...

    A+

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut
    Ca ne fonctionne pas.

    Voici le code que j'ai écris jusqu'a présent :
    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
     
    Dim LigneCSV As String, NoLigne As Long, NoLigneCVS As Integer
    Dim TableauLignesCSV, TableauValeurLigne
    Dim NomFichier, NomOnglet, NumLigne, NoColonne, Valeur
    Dim Chemin, NomFichCSV, NomFichEXCEL
     
    Chemin = "...."
    NomFichCSV = "Test.csv" 'ou .txt
    NomFichEXCEL = ""
     
        Dim i As Integer
        i = 0
        Open Chemin & NomFichCSV For Input As #1
        While Not EOF(1)
            Input #1, LigneCSV
            TableauLignesCSV = Split(LigneCSV, ";")
            For NoLigneCVS = 0 To UBound(TableauLignesCSV)
                TableauValeurLigne = Split(TableauLignesCSV(NoLigneCVS), "|")
                NomOnglet = TableauValeurLigne(1)
                NumLigne = TableauValeurLigne(2)
                NoColonne = TableauValeurLigne(3)
                Valeur = TableauValeurLigne(4)
     
                If NomFichEXCEL = "" Or TableauValeurLigne(0) <> NomFichEXCEL Then
                    NomFichier = TableauValeurLigne(0)
                    'Ouvrir le fichier Excel
     
                    'Insertion de la valeur dans la cellule
                    Sheets(NomOnglet).Cells(NumLigne, NoColonne) = Value
                Else
     
                End If
            Next
        Wend
        Close #1
    PS : La fonction F1 ne fonctionne pas sur mon poste.

  10. #10
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Re,

    Moi j'aurais fait comme ça :

    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
     
     
        Dim objFSO As New Scripting.FileSystemObject
        Dim objWbk As New Excel.Workbook
        Dim objSheet As New Excel.Worksheet
        Dim objWbk1 As New Excel.Workbook
        Dim objSheet1 As New Excel.Worksheet
     
        strCheminS = "Chemin de ton CVS"
        strFeuil = "Le nom de ta feuil CSV"
        If (objFSO.FileExists(strCheminS)) Then
             Set objWbk = Workbooks.Open(strCheminS)
             Set objSheet = objWbk.Sheets(strFeuil)
             objSheet.Activate
             Set objWbk1 = Workbooks.Open("Chemin de Destination")
             Set objSheet1 = objWbk1.Sheets("Feuille de Destination")
             For i = 2 To 10000
                 If (objSheet.Cells(i, 1) <> "") Then
                     strTab = Split(objSheet.Cells(i, 1), ";")
                     objSheet1.Cells(NumLigne, NumCol) = strTab(1)
                 End If
            Next i
     
           objWbk.Close False
           Set objWbk = Nothing
           objWbk1.Close True, strCheminD
           Set objWbk1 = Nothing
       Else
             MsgBox "Fichier Non Trouvé !"
       End If

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Par défaut
    Merci pour les réponses...

    J'en m'inspire pour mon code, cepandant je n'arrive toujours pas à trouver la solution(que je dois rendre pour ce soir).

    voici une partie de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set objWbk1 = Workbooks.Open(Chemin & "\" & NomFichier)
                    Set objSheet1 = objWbk1.Sheets(NomOnglet)
     
                    objSheet1.Cells(NumLigne, NoColonne) = Valeur
    une erreur apparait sur cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objSheet1.Cells(NumLigne, NoColonne) = Valeur
    Quelqu'un aurait une idée..

    Merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

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