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'un tableau Excel vers un fichier csv sous condition avec "print" [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien d'essai
    Inscrit en
    Avril 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien d'essai
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 61
    Par défaut Exporter des données d'un tableau Excel vers un fichier csv sous condition avec "print"
    Bonjour à tous !



    Je souhaite exporter une plage de données d'un tableau Excel vers un fichier .csv grâce à la commande print.

    J'ai créé un bouton avec une macro qui fonctionne et qui me copie toutes les données vers un fichier csv :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Bouton_Click()
    Dim Plage As Object, oL As Object, oC As Object, Tmp As String
    Set Plage = Worksheets("ONGLET_1").Range("a2:g" & Worksheets("ONGLET_1").Range("C65000").End(3).Row)
    Open "Nomdefichier.csv" For Output As #1
    For Each oL In Plage.Rows
    Tmp = ""
    For Each oC In oL.Cells
    Tmp = Tmp & CStr(oC.Text) & ";"
    Next
    Print #1, Tmp
    Next
    Close
    Shell "C:\Program Files (x86)\Notepad++\notepad++.exe " & "C:\Users\" & Environ("username") & "\Documents\Nomdefichier.csv", vbNormalFocus
    End Sub

    Mon problème c'est que je souhaiterais ne pas recopier les lignes du tableau lorsque le mot "NU" se trouve dans la colonne C.

    J'ai essayé d'inclure une condition :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    For Each oL In Plage.Rows
    Tmp = ""
    For Each oC In oL.Cells
        
              While Cells(oL, 3).Value <> NU              'ajout de la commande While
    
    Tmp = Tmp & CStr(oC.Text) & ";"
    
              Wend                'ajout d'un code de fin
    
    Next
    Apparemment ma syntaxe n'est pas bonne mais je n'arrive pas à comprendre où est mon erreur.

    Si quelqu'un peut m'aider, je le remercie par avance !

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Il y a pourtant une l'icône # dédiée pour baliser le code
    et même une animation dans les règles de ce forum pour les moins doués ‼

    Si tu traduis ton ajout : « Tant que la cellule est différente de la variable s'appelant NU alors … »
    Donc plusieurs erreurs !
    • Déjà il n'y a pas de variable NU; pour du texte ne pas oublier les guillemets ‼
    oL n'est pas une référence de ligne, ne peut être utilisée dans Cells !
    • Pourquoi ne pas utiliser la variable objet oC de la boucle For ?!

    Sinon repartir du code initial en ajoutant un simple If

    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  3. #3
    Membre averti
    Homme Profil pro
    Technicien d'essai
    Inscrit en
    Avril 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien d'essai
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 61
    Par défaut Print sous condition
    OK, merci pour cette réponse, je vais reprendre mon code en me servant de la fonction If

  4. #4
    Membre averti
    Homme Profil pro
    Technicien d'essai
    Inscrit en
    Avril 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien d'essai
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 61
    Par défaut Exporter des données d'un tableau Excel vers un fichier csv sous condition avec "print"
    Bonjour,


    Après pas mal d'essais, j'arrive au bout de ma macro en utilisant un if comme recommandé par Marc_L.


    Voici mon code pour celui ou celle que çà intéresse :


    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
     
     
    Private Sub Bouton_Click()
     
    Dim Plage As Object, oL As Object, oC As Object, Tmp As String
    Set Plage = Worksheets("ONGLET_1").Range("a2:g" & Worksheets("ONGLET_1").Range("C65000").End(3).Row)
    Open "Nomdefichier.csv" For Output As #1
    For Each oL In Plage.Rows
    If oL.Cells(3) <> "NU" Then
    Tmp = ""
    For Each oC In oL.Cells
    Tmp = Tmp & CStr(oC.Text) & ";"
    Next
    Print #1, Tmp
    Debug.Print Tmp
    End If
    Next
    Close
    Shell "C:\Program Files (x86)\Notepad++\notepad++.exe " & "C:\Users\" & Environ("username") & "\Documents\Nomdefichier.csv", vbNormalFocus
     
    End Sub

    Bonne journée à tout le monde !

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut





    La fonction CStr de la ligne de code n°12 ne sert à rien car la donnée .Text est déjà du texte !



    ______________________________________________________________________________________________________
    Copier / Coller n'est pas programmer !

  6. #6
    Membre averti
    Homme Profil pro
    Technicien d'essai
    Inscrit en
    Avril 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien d'essai
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 61
    Par défaut Exporter des données d'un tableau Excel vers un fichier csv sous condition avec "print"
    Bonjour Marc et merci pour cette réponse.

    J'ai supprimé la fonction CStr, mais lorsque je lance ma macro, le fichier txt qui s'ouvre ne fait apparaître que des ;;;;.

    Je n'ai plus aucune donnée de mon tableau.

    Je ne comprends pas mon erreur.



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

Discussions similaires

  1. Copier des données d'un tableau excel vers un tableau word(gabarit)
    Par mogo107 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/07/2013, 09h16
  2. [XL-2010] Exporter des donnée d'un tableau exel vers un tableau sur word
    Par Matrixmax dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/03/2013, 11h10
  3. Réponses: 1
    Dernier message: 08/01/2008, 14h20
  4. 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, 09h10
  5. Exporter des données d'un requete SQL vers excel (csv)
    Par PrinceMaster77 dans le forum ASP
    Réponses: 9
    Dernier message: 08/10/2005, 22h28

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