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 :

Copie d'une colonne entièere dans fichier.txt [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Points : 26
    Points
    26
    Par défaut Copie d'une colonne entièere dans fichier.txt
    Bonjour, après avoir fait plusieurs recherche, je n'ai pas trouvé, enfin, ce que j'ai trouvé ne fonctionne pas à 100%, et je ne vois pas ou ça coince.

    Voici mon code actuel (Trouvé sur internet et modifié pour moi):

    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
    Sub copie_dans_fichier_text()
    '
    Dim Chemin As String
    Dim DerniereLigne As Long        'Index de la dernière ligne
    Dim Tableau() As Variant
    Dim Ligne As Long
     
    Chemin = "D:\"
    DerniereLigne = Range("D1").SpecialCells(xlCellTypeLastCell).Row
     
    'Création du tableau par une boucle
    Ligne = 1
    Do While Ligne <= DerniereLigne
     'Ajout 1 élément à l'array en conservant les éléments précédents
        ReDim Preserve Tableau(Ligne)
    'Affectation de la valeur au nouvel élément
        Tableau(Ligne) = Range("D" & Ligne).Value
        Ligne = Ligne + 1
    Loop
     
    'Ecrit dans le fichier txt
    Ligne = 0
    Do While Ligne <= DerniereLigne
        Open Chemin & "fichier_sauvegarde.txt" For Output As #1
        'Print #Ligne, Tableau(Ligne) & vbCrLf
        Print #1, Tableau(Ligne) '& vbCrLf
        Close
        Ligne = Ligne + 1
    Loop
     
    MsgBox ("A ton tour de travailler !")
     
    End Sub

    Pour ce qui est du fonctionnement, je dois juste copier la colonne D dans le fichier texte. J'ai pourtant l'impression que ma variable "Tableau(Ligne)" correspond bien à ma colonne D vu que j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau(Ligne) = Range("D" & Ligne).Value
    Donc actuellement, je fichier ce créer correctement, mais seule la dernière ligne ce mets dedans, et je ne vois pas ou je dois modifier pour qu'il fasse correctement le travail.

    Cordialement

  2. #2
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Normal.
    Tu ouvres ton fichier texte et le ferme dans chaque itération de boucle.
    Il convient de l'ouvrir, boucler sur toutes les valeurs et le fermer.

    Regarde ce 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
    19
    20
    21
    22
    23
    24
    Sub copie_dans_fichier_text()
    '
    Dim Chemin As String
    Dim DerniereLigne As Long        'Index de la dernière ligne
    Dim Tableau() As Variant
    Dim Ligne As Long
     
    Chemin = "D:\"
    DerniereLigne = Range("D1").SpecialCells(xlCellTypeLastCell).Row
     
    Tableau = Range("D1:D" & DerniereLigne)
     
    'Ecrit dans le fichier txt
    Ligne = 1
    Open Chemin & "fichier_sauvegarde.txt" For Output As #1
       Do While Ligne <= DerniereLigne
           Print #1, Tableau(Ligne, 1) '& vbCrLf
           Ligne = Ligne + 1
       Loop
    Close
     
    MsgBox ("A ton tour de travailler !")
     
    End Sub
    Cordialement,
    Franck

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Points : 26
    Points
    26
    Par défaut
    Ceci va régler déjà une partie du problème, quand on est dans le fichier on cherche tout sauf ce qu'il faut ^^

    Par contre, maintenant, alors que je ne l'avais pas avant, j'ai une erreur sur cette ligne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Open Chemin & "fichier_sauvegarde.txt" For Output As #1
    Est ce normal?

    PS: C'est bon en faite, erreur de ma part sur le "close". Merci à toi Pijaku !

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

Discussions similaires

  1. Copie d'une colonne d'une table dans une autre table
    Par sebi2k39 dans le forum Requêtes
    Réponses: 4
    Dernier message: 03/10/2011, 11h14
  2. Récupérer une variable javascript (dans fichier txt ou autre chose)
    Par theos37 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/09/2011, 16h14
  3. [Batch] L'output d'une cmd redirigée dans fichier txt
    Par aazdoud dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 20/08/2010, 14h17
  4. Copie d'une colonne dans une autre table
    Par norfaulk dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 31/03/2009, 19h57
  5. copie le contenu d'une listview vers un fichier txt
    Par dolsky dans le forum VB.NET
    Réponses: 4
    Dernier message: 03/12/2008, 12h30

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