Extraire certaines données EXCEL vers Fichiers TXT

benny47

XLDnaute Junior
Bonjour,

J'utilise actuellement un fichier excel déja "VBA lisé"...
Voilà, j'aimerais extraire certaines données de ce tableau et les envoyer dans un fichier TXT ( en le créant au passage grace à un petit bouton ).

Il faudrait simplement que les données qui sont à la suite sur la ligne 1 et celle qui sont également à la suite sur la ligne 2 etc etc ... se mettent l'une en dessous de l'autre dans le fichier TXT ( tout simplement ... ! )

Mais apparemment trop compliqué pour moi ...

Merci !
 

job75

XLDnaute Barbatruc
Re : Extraire certaines données EXCEL vers Fichiers TXT

Re,

j'aimerais aussi que mon code revoi automatiquement la valeur à la ligne ( dans le fichier texte )...

Ben, moi je porte des lunettes depuis pas mal de temps, c'est bien utile :p

A moins que vous vouliez supprimer les espaces sur les textes renvoyés à la ligne :

Code:
rest(n) = Trim(Mid(t, p + 1))
Dossier (4).

A+
 

Pièces jointes

  • Fichier txt(4).zip
    20.5 KB · Affichages: 20

benny47

XLDnaute Junior
Re : Extraire certaines données EXCEL vers Fichiers TXT

ok ok ..
excuse .. mais c vrai que sans mon code, on a du mal à se comprendre ..
Mais on y arrive !! ( enfin surtout moi ..)
Reste une Derniére chose !! (promis ..)
Dans le fichier txt, quand tu l'ouvre, j'aimerais remplacer la date ( ligne 3 ) par la mienne, le"1" ligne 5, le "2" ligne 7 ...etc ..
En faite, toutes les valeurs chiffres ou lettres qu'il y a aprés les "=" ..

C'est pour ça que je voulais pouvoir integrer mes valeurs de cellules Excel dans ce fichier txt ..

Comprend tu ?..

Merci again & again & again ...
 

job75

XLDnaute Barbatruc
Re : Extraire certaines données EXCEL vers Fichiers TXT

Re,

Comprend tu ?..

Pas du tout, je crains de commencer un Alzheimer :(

Un détail encore : pour les lignes CARR=00 le renvoi à la ligne donne 0.

Pour l'éviter il faut déclarer les tableaux rest et trans de type String ($) :

Code:
Dim tablo, t, rest$(), p As Integer, n As Long, trans$()
Dossier (5).

A+
 

Pièces jointes

  • Fichier txt(5).zip
    17.9 KB · Affichages: 22

jpb388

XLDnaute Accro
Re : Extraire certaines données EXCEL vers Fichiers TXT

Bonjour
cela ressemble beaucoup au système ini
j'ai fait juste un exemple de lecture de la valeur d'une clé
si cela t'intéresse à ce moment là
on approfondira
 

Pièces jointes

  • Fichier ini.zip
    34.9 KB · Affichages: 17

job75

XLDnaute Barbatruc
Re : Extraire certaines données EXCEL vers Fichiers TXT

Re, [Edit] salut jpb388,

Bon, dans le fichier Pilote(6) j'ai mis 100 valeurs de remplacement (la 1ère est la date du jour).

La macro :

Code:
Sub TXT()
Dim remplace, ub&, r&, tablo, t, rest$(), p%, n&, trans$()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
remplace = Range("A1:A2", Cells(Rows.Count, 1).End(xlUp))
remplace(2, 1) = [A2].Text 'date formatée
ub = UBound(remplace)
r = 1
With Workbooks.Open(ThisWorkbook.Path & "\Fichier txt.txt").Sheets(1)
  tablo = .Range("A1:A2", .Cells(.Rows.Count, 1).End(xlUp))
  For Each t In tablo
    ReDim Preserve rest(n)
    p = InStr(t, "=")
    If p And p < Len(t) Then
      rest(n) = Left(t, p)
      n = n + 1
      r = r + 1
      ReDim Preserve rest(n)
      If r <= ub Then rest(n) = remplace(r, 1) Else rest(n) = Trim(Mid(t, p + 1))
    Else
      rest(n) = t
    End If
    n = n + 1
  Next
  '---transposition---
  ReDim trans(n - 1, 0)
  For n = 0 To n - 1
    trans(n, 0) = rest(n)
  Next
  .[A1].Resize(n) = trans
  .Parent.SaveAs .Parent.Path & "\" & .Parent.Name, xlText
  .Parent.Close
End With
End Sub
Dossier (6).

A+
 

Pièces jointes

  • Fichier txt(6).zip
    22.5 KB · Affichages: 14

job75

XLDnaute Barbatruc
Re : Extraire certaines données EXCEL vers Fichiers TXT

Re,

Bien entendu, s'il s'agit juste de remplacer, sans retour ligne, c'est plus simple :

Code:
Sub TXT()
Dim remplace, ub&, r&, tablo, i&, p%
Application.ScreenUpdating = False
Application.DisplayAlerts = False
remplace = Range("A1:A2", Cells(Rows.Count, 1).End(xlUp))
remplace(2, 1) = [A2].Text 'date formatée
ub = UBound(remplace)
r = 1
With Workbooks.Open(ThisWorkbook.Path & "\Fichier txt.txt").Sheets(1)
  tablo = .Range("A1:A2", .Cells(.Rows.Count, 1).End(xlUp))
  For i = 1 To UBound(tablo)
    p = InStr(tablo(i, 1), "=")
    If p Then
      r = r + 1
      If r <= ub Then tablo(i, 1) = Left(tablo(i, 1), p) & remplace(r, 1)
    End If
  Next
  .[A1].Resize(UBound(tablo)) = tablo
  .Parent.SaveAs .Parent.Path & "\" & .Parent.Name, xlText
  .Parent.Close
End With
End Sub
Dossier joint.

A+
 

Pièces jointes

  • Fichier txt sans retour ligne(1).zip
    22.1 KB · Affichages: 11

job75

XLDnaute Barbatruc
Re : Extraire certaines données EXCEL vers Fichiers TXT

Bonjour benny47, le forum,

Avec la version (6), une fois la macro exécutée, on ne pouvait plus modifier Fichier txt.

Cette version (7) permet de modifier les valeurs sous le signe =.

Sans instructions claires de votre part on fait marcher la boule de cristal.

A+
 

Pièces jointes

  • Fichier txt(7).zip
    20.1 KB · Affichages: 14

job75

XLDnaute Barbatruc
Re : Extraire certaines données EXCEL vers Fichiers TXT

Re,

Pour faire bonne mesure, voici une version avec 2 macros.

La 1ère insère les retours ligne, la 2ème les supprime.

A+
 

Pièces jointes

  • Fichier txt 2 macros(1).zip
    26 KB · Affichages: 14

benny47

XLDnaute Junior
Re : Extraire certaines données EXCEL vers Fichiers TXT

hello !!
Merci à tous (job75 !, JPB388 ) de m'avoir aidé !!
avec tout ça, je vais trouver ma soluce !! mais "job75" t'as derniére soluce avec sans retour ligne m'a l'air parfaite pour mon probléme !
J'ai plus qu'a adapté ce code sur le mien !!
Encore merci pour tout !!!
MERCI !
 

Discussions similaires

Statistiques des forums

Discussions
312 236
Messages
2 086 479
Membres
103 232
dernier inscrit
logan035