Ecrire une selection ds un .txt

cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008 - 26 mars 2006 à 17:12
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008 - 26 mars 2006 à 19:17
bonjour,

Cette fois ci je désirerai écrire une selection, range ("A1:I9") ds un fichier .txt,

mais ac une petite condition qui est de sauter une ligne à chaque valeur de cellules:

voilà ce que donnerait le fichier .txt:

12 (= A1)
23 (= B1)
45 (= C1)
.
.
.
64 (= A2)
32 (= B2)
Etc...

5 réponses

cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
26 mars 2006 à 17:51
C'est très simple
Sub WriteToTextFile(sTextFile As String)
Dim lFile As Long,sLine As String
lFile=FreeFile
Open sTextFile For Output As #lFile 'Pour créer un nouveau fichier
ou
Open sTextFile For Append As #lFile 'Pour ajouter les données à la fin d'un fichier existant.
sLine="12(=A1)"
Write #lFile, sLine
sLine="23(=B1)"
Write #lFile, sLine
sLine="45(=C1)"
Write #lFile, sLine
...
...
...
sLine="64(=A2)"
Write #lFile, sLine
sLine="32(=B2)"
Write #lFile, sLine
...
Close #lFile
End Sub
Bien sur, il faut trouver quelque chose de plus élégant pour affecter les valeurs des chaînes de chaque ligne, mais l'écriture dans le fichier texte, c'est comme celà que ça marche!!!...
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
26 mars 2006 à 18:25
salut jperre!!

Dis moi on ne peut pas du tt appliquer de boucle, car avec ta méthode je dois inscrire les 81 valeurs de ma selection..

Achi!!
0
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
26 mars 2006 à 18:48
Bien sur que si, il suffit de la paramètrer, du type
Dim c As Long, r As Long
Open sTextFile For Output As #lFile 'Pour créer un nouveau fichier
For c=1 to 10 'S'il y a 10 colonnes
For r=2 To 50 'S'il y a 50 lignes
ActiveSheet.Cells(r,c).Select
sLine=CStr(ActiveCell.Value)
Print #lFile, sLine
Next r
Next c
Close #lFile
Il faut noter, que j'ai remplacé l'instruction Write par Print Car Write place la chaîne entre des doubles côtes alors que Print ne copie que la chaîne.
Voilà, c'est un exemple, je supposais, qu'une personne, qui demande des renseignements sur VBA Excel savait lire les données dans les cellules d'un tableau??...
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
26 mars 2006 à 19:11
Jperre,

bon j'ai essayé ton code mais il me mets un msg d'erreur pour l'ouverture du fichier
"Nom ou numero de fichier incorrect"

en fait g modifié le code car je ne veux pa créer un nouv fichier .txt mais utiliser un existant... voilà mon code!!

Sub txtsolution()
Dim lFile As Long, sLine As String

Dim c As Long, r As Long


Open "C:\FichiersText\Solution.txt" For Output As #1
For c = 1 To 9
For r = 2 To 9
ActiveSheet.Cells(r, c).Select
sLine = CStr(ActiveCell.Value)
Print #l, sLine
Next r
Next c
Close #1
End Sub

Y a t'il qq'chose de choquant??

je débute ds VBA!! soyez indulgent merci!!

Achi....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
26 mars 2006 à 19:17
C bon Jperre,

ca fonctionne dsl pr le dérangement!!

Merci encore

Achii!!
0
Rejoignez-nous