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 chaque cellule remplie d'une colonne "B" en fichiers txt nommés selon le range correspondant col. "A" [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    correction et mise en page
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : correction et mise en page
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Par défaut Exporter chaque cellule remplie d'une colonne "B" en fichiers txt nommés selon le range correspondant col. "A"
    Bonjour tout le monde,

    Novice en VBA, j'utilise beaucoup la fonction enregister et le copier-coller de code que j'arrive à peu près à identifier car ce n'est pas du tout ma formation première (lettres).
    Mais ça m'intéresse beaucoup car je suis dans une toute petite entreprise et nous avons de plus en plus besoin d'automatiser des tâches répétitives qui nous mangent un temps fou et sont inintéressantes au possible !

    Désolée par avance pour mon titre totalement foireux : je crois que je n'arrive pas vraiment à comprendre ce que je veux/je cours 2 lièvres à la fois...

    Je voudrais que le contenu de chaque cellule de ma colonne "résumé" soit enregistré dans un document texte portant le nom de la rangée correspondante en colonne "EAN"+ la lettre R.

    Tout ceci devant être incrusté dans une macro de 10 tonnes (faite maison à la sueur de mon front) qui ne tolère pas grand chose de compliqué :s

    J'ai donc copié une formule trouvée sur le net pour la création du fichier résumé mais je n'arrive pas à lui attribuer le nom de l'EAN : erreur 52.
    Pas réussi non plus avec le simple "tant que les cellules sont non vide".
    J'ai essayé de plancher dessus mais n'arrive pas à trouver le temps de comprendre comment utiliser le code copié avec mon fils de 4 mois...

    Afin d'éviter tout mal de tête, le fichier joint contient juste l'opération souhaitée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub excelVersFichierTexte()
     
    Dim Fichier As String
     
    Fichier = "C:\Users\CORALIE\Desktop\""&A1&""R.Txt"
     
    Open Fichier For Output As #1
     
    Print #1, Range("b2")
     
    Close
     
    End Sub
    Quelqu'un peut-il m'aider svp ? M'éclairer ?
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par coramouh Voir le message
    Je voudrais que le contenu de chaque cellule de ma colonne "résumé" soit enregistré dans un document texte portant le nom de la rangée correspondante en colonne "EAN"+ la lettre R.
    Tu copies la feuille entière dans un nouveau classeur avec la méthode Copy de Worksheet.
    https://msdn.microsoft.com/fr-fr/lib...4(v=office.15)

    Dans la copie, tu fais un tri sur tes données avec la colonne EAN comme clé de tri grace à la méthode Sort.
    https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)

    Tu supprimes toutes les lignes qui ne contiennent pas R dans la colonne EAN avec la méthode Delete.
    https://msdn.microsoft.com/fr-fr/lib...1(v=office.15)

    Tu supprimes aussi les autres lignes et colonnes que tu ne veux pas exporter dans ton fichier texte avec la même méthode.

    Tu sauvegardes la copie en fichier texte avec la méthode SaveAs, avec comme FileFormat xlTextWindows ou autre xlTextxxxxx en fonction de ton système.
    https://docs.microsoft.com/fr-FR/off...orkbook.saveas
    https://docs.microsoft.com/fr-FR/off...l.xlfileformat

  3. #3
    Membre du Club
    Femme Profil pro
    correction et mise en page
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : correction et mise en page
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Par défaut
    Bonjour Menhir,

    Merci beaucoup de me répondre !

    Par contre, je n'ai pas tout compris / et je me demande si mes explications étaient claires.

    Tu supprimes toutes les lignes qui ne contiennent pas R dans la colonne EAN avec la méthode Delete.

    Il n'y a pas de lettre "R" dans ma colonne EAN : c'est une lettre que je dois rajouter dans chaque nom de fichier.

    Tu sauvegardes la copie en fichier texte avec la méthode SaveAs, avec comme FileFormat xlTextWindows ou autre xlTextxxxxx en fonction de ton système.

    Si je fais ça j'aurais tout dans un même fichier non ? Ce que je cherche à faire c'est créer autant de fichiers txt que de cellules remplies dans ma colonne Résumé : sur mon fichier d'exemple j'ai 7 lignes qui contiennent un résumé en colonne B et 7 EAN en colonne A qui correspondent chacun au résumé présent sur la même ligne. Le résultat espéré de ma macro serait d'avoir 7 fichiers textes contenant 1 seul résumé chacun et nommé selon l'EAN de la ligne correspondante au résumé, tout ça en appuyant sur 1 bouton.

    Je ne sais absolument pas si c'est possible, je me creuse le cerveau depuis 2 semaines et j'arrive pas à avancer :p

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour,
    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
    Sub test()
    Dim r As Range, i As Integer
    Set r = ThisWorkbook.Sheets("Feuil1").Range("A1").CurrentRegion
    For i = 2 To r.Rows.Count
        FichierText Environ("UserProfile") & "\Desktop\" & r(i, 1) & ".txt", r(i, 2), True
    Next
    End Sub
    Sub  FichierText(Fichier As String, Text As String, Optional Ecraser As Boolean = False)
    Dim fso, NewFichier, Mode As Integer
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    If Dir(Fichier) <> "" Then Mode = 8 Else Mode = 2
    If Ecraser Then
        Set NewFichier = fso.OpenTextFile(Fichier, 2, True)
    Else
        Set NewFichier = fso.OpenTextFile(Fichier, Mode)
    End If
    NewFichier.Write Text
    NewFichier.Close
    Set NewFichier = Nothing
    Set fso = Nothing
    End Sub

  5. #5
    Membre du Club
    Femme Profil pro
    correction et mise en page
    Inscrit en
    Mai 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : correction et mise en page
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2019
    Messages : 7
    Par défaut
    Bonsoir Dysorthographie et merci pour le code !!!

    Je n'y ai pas compris grand chose car c'est bien au-delà de mon usage habituel mais ça maaaaaaaaaaache et c'est exactement ce que je souhaitais
    Encore un super grand merci !!!

    Coralie

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/12/2016, 17h02
  2. Réponses: 2
    Dernier message: 22/07/2015, 13h43
  3. Réponses: 10
    Dernier message: 26/07/2013, 17h57
  4. Test de cellule activée dans une colonne permanent
    Par pisistrate dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/08/2007, 13h47
  5. export -> excel avec insertion d'une colonne vide
    Par Gary_Stoupy dans le forum Access
    Réponses: 5
    Dernier message: 16/01/2007, 11h11

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