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 :

Exporter des données d'une feuille Excel vers un fichier CSV avec critères


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 25
    Points : 14
    Points
    14
    Par défaut Exporter des données d'une feuille Excel vers un fichier CSV avec critères
    Bonjour j'ai besoin de votre aide,

    Je voudrai exporter des données d'un fichier Excel sur un fichier CSV mais avec certaines critères.

    Voici le fichier Excel pour que vous compreniez mieux ma démarche :

    Nom : configuration_excel.png
Affichages : 162
Taille : 16,4 Ko

    Et voici le fichier CSV :

    Nom : configuration_csv.png
Affichages : 150
Taille : 7,2 Ko

    Je voudrais extraire du fichier Excel en fonction de l'alias (contenu dans la colonne B) le contenu des colonnes D et E.

    Je vais dire un exemple pour mieux expliquer :
    Par exemple si on identifie l'alias "ADBL" qui fait partie du tableau Configuration, on extrait les données des colonnes D et E (respectivement 384175 et 44364) puis on les colle dans le fichier CSV en dessous de leur identifiants "ZzPnAtt & Alias" et "ZzSnAtt & Alias" donc si on suit cet exemple il y aura en dessous de la cellule ZzPnAttADBL la donnée "384175" et en dessous de la cellule ZzSnAttADBL la donnée "44364".

    On fait la même chose pour les autres alias, donc on fait une boucle sur tous les alias et on reporte les données des colonnes D et E au bon endroit dans le fichier CSV.

    Il y a donc deux tableaux comme vous pouvez le voir un tableau appelé "Configuration" et un autre appelé "Mesures".

    Pour le tableau Configuration :

    1er cas : si j'identifie sur le CSV : "ZzPnAtt & Alias" alors je colle l'information de la cellule du fichier Excel (ligne : en fct de l'alias lue, colonne : D) sur le fichier CSV à la ligne en-dessous de "ZzPnAtt & Alias".

    2e cas : si j'identifie sur le CSV : "ZzSnAtt & Alias" alors je colle l'information de la cellule du fichier Excel (ligne : en fct de l'alias lue, colonne : E) sur le fichier CSV à la ligne en-dessous de "ZzSnAtt & Alias".

    Pour le tableau Mesures :

    1er cas : si j'identifie sur le CSV : "ZzMin & Alias" alors je colle l'information de la cellule du fichier Excel (ligne : en fct de l'alias lue, colonne : D) sur le fichier CSV à la ligne en-dessous de "ZzMin & Alias".

    2e cas : si j'identifie sur le CSV : "ZzMax & Alias" alors je colle l'information de la cellule du fichier Excel (ligne : en fct de l'alias lue, colonne : E) sur le fichier CSV à la ligne en-dessous de "ZzMax & Alias".


    J'ai joint le fichier Excel & le fichier CSV pour les plus courageux
    Fichier_Extraction_Excel_to_CSV.zip

    N'hésitez pas à me poser des questions pour éclaircir le sujet.

    Je remercie toute personne qui m'aidera.

    Bonne journée !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Muzan93 Voir le message


    En transformant vos tableaux en tableaux structurés et en ajoutant un onglet "Config csv" sur le modèle de votre fichier Csv :

    Pièce jointe 599739

    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
     
     
    Sub TestConfigCsv()
     
    Dim AireConfigAlias As Range, AireConfigPn As Range, AireConfigSn As Range
    Dim AireMesuresAlias As Range, AireMesuresMin As Range, AireMesuresMax As Range
    Dim AireCsv As Range
    Dim I As Integer, J As Integer
     
     
     
        Set AireConfigAlias = Range("TableDesConfigurations[Alias]")
        Set AireConfigPn = Range("TableDesConfigurations[Pn attendu]")
        Set AireConfigSn = Range("TableDesConfigurations[Sn attendu]")
     
        Set AireMesuresAlias = Range("TableDesMesures[Alias]")
        Set AireMesuresMin = Range("TableDesMesures[Valeur Min]")
        Set AireMesuresMax = Range("TableDesMesures[Valeur Max]")
     
     
        Set AireCsv = Sheets("Config csv").Range("B1:BK1")
     
        For I = 1 To AireConfigAlias.Count
            For J = 1 To AireCsv.Count
                If "ZzPnAtt" & AireConfigAlias(I) = AireCsv(J) Then AireCsv(J).Offset(1, 0) = AireConfigPn(I)
                If "ZzSnAtt" & AireConfigAlias(I) = AireCsv(J) Then AireCsv(J).Offset(1, 0) = AireConfigSn(I)
            Next J
        Next I
     
        For I = 1 To AireMesuresAlias.Count
            For J = 1 To AireCsv.Count
                If "ZzMin" & AireMesuresAlias(I) = AireCsv(J) Then AireCsv(J).Offset(1, 0) = AireMesuresMin(I)
                If "ZzMax" & AireMesuresAlias(I) = AireCsv(J) Then AireCsv(J).Offset(1, 0) = AireMesuresMax(I)
            Next J
        Next I
     
        Set AireConfigAlias = Nothing: Set AireConfigPn = Nothing: Set AireConfigSn = Nothing
        Set AireMesuresAlias = Nothing: Set AireMesuresMin = Nothing: Set AireMesuresMax = Nothing
        Set AireCsv = Nothing
     
    End Sub
    Il vous restera à sauvegarder cet onglet en fichier csv.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Salut Eric,

    Merci beaucoup pour ta réponse et ton aide !

    Je vais faire ce que tu m'as dit mais ça a l'air de marcher

    Muzan93

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    En transformant vos tableaux en tableaux structurés et en ajoutant un onglet "Config csv" sur le modèle de votre fichier Csv :

    Il vous restera à sauvegarder cet onglet en fichier csv.
    J'ai transformé les deux tableaux en tableaux structurés et j'ai compris leur intérêt, sur ce point pas de soucis.

    Mais je n'ai pas compris comment ajouter un onglet "Config csv" sur le modèle de mon fichier Csv.
    Je dois ajouter une feuille au nom de "Config csv" ?
    Et une autre question comment il va accéder à mon fichier Csv ?
    Je dis ça parce que sur le code, je ne vois pas comment il va chercher mon fichier csv et y accéder pour reporter les valeurs dans le fichier csv.

    Désolé pour les questions, je veux essayer de comprendre ^^

    Muzan93

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Muzan93 Voir le message
    Il suffit de faire un copier coller des deux lignes du fichier csv sur un nouvel onglet baptisé Config csv.
    Ensuite, en utilisant l'enregistreur de macro, il faut copier l'onglet Config csv et le sauvegarder en csv. Dans cette solution on ne met pas à jour un fichier csv, on le crée.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Il suffit de faire un copier coller des deux lignes du fichier csv sur un nouvel onglet baptisé Config csv.
    Ensuite, en utilisant l'enregistreur de macro, il faut copier l'onglet Config csv et le sauvegarder en csv. Dans cette solution on ne met pas à jour un fichier csv, on le crée.
    Ah d'accord, j'ai crée un nouvel onglet appelé "Config csv" mais j'ai une erreur en exécutant le programme.

    Sur les lignes des tableaux (12 à 18), j'ai pas configuré en tableaux structuré sur "Configuration" et sur "Mesures", je pense que ça vient de là mais je sais pas comment le faire car quand je le met en tableaux structuré en sélectionnant tout le tableau ça me prend pas en compte les en têtes de la ligne 2.

    PJ : config_excel.xlsm

Discussions similaires

  1. [XL-2016] Exporter des données d'une feuille Excel vers un fichier CSV
    Par Muzan93 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/06/2021, 17h09
  2. Réponses: 3
    Dernier message: 03/05/2021, 22h44
  3. [XL-2010] Exporter des données d'un tableau Excel vers un fichier csv sous condition avec "print"
    Par Thierry_59300 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/04/2016, 10h45
  4. Copier des données d'une feuille excel vers plusieurs autres
    Par LeeBamboo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/08/2008, 16h46
  5. Importer des données d'une feuille Excel vers TABLE
    Par souminet dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/11/2006, 10h10

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