Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

copier plage de donnée dans un .txt

12 réponses
Avatar
j.elmaghnouji
bonjour,

je cherche comment copier une plage de donn=E9e d'une feuille du
classeur dans un document texte , et que cela soit appliqu=E9e =E0 toutes
les feuiles du classeur. quelqu'un saurait-il m'aider?

10 réponses

1 2
Avatar
Daniel.C
Bonsoir.
Essaie la macro suivante à placer dans le classeur où les feuilles sont
copiées :

Sub test()
Dim sh As Worksheet, Ctr As Long
Workbooks.Add 1
For Each sh In ThisWorkbook.Sheets
sh.[A1:Z100].Copy
Ctr = Range("A65000").End(xlUp).Row + 1
If Ctr = 2 Then Ctr = 1
ActiveSheet.Cells(Ctr, 1).PasteSpecial xlPasteValues
Next sh
ActiveWorkbook.SaveAs "c:temptoto.txt", FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False
End Sub

Cordialement.
Daniel
a écrit dans le message de news:

bonjour,

je cherche comment copier une plage de donnée d'une feuille du
classeur dans un document texte , et que cela soit appliquée à toutes
les feuiles du classeur. quelqu'un saurait-il m'aider?
Avatar
j.elmaghnouji
On 10 avr, 23:38, "Daniel.C" wrote:
Bonsoir.
Essaie la macro suivante à placer dans le classeur où les feuilles son t
copiées :

Sub test()
Dim sh As Worksheet, Ctr As Long
Workbooks.Add 1
For Each sh In ThisWorkbook.Sheets
sh.[A1:Z100].Copy
Ctr = Range("A65000").End(xlUp).Row + 1
If Ctr = 2 Then Ctr = 1
ActiveSheet.Cells(Ctr, 1).PasteSpecial xlPasteValues
Next sh
ActiveWorkbook.SaveAs "c:temptoto.txt", FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False
End Sub

Cordialement.
Daniel
a écrit dans le message de news:

bonjour,

je cherche comment copier une plage de donnée d'une feuille du
classeur dans un document texte , et que cela soit appliquée à toutes
les feuiles du classeur. quelqu'un saurait-il m'aider?


merci pour ton aide, le ficher text est bien crée mais il est vide,
peut etre que c'est parceque mes feuilles portes des noms différent

en fait je voulais creer un fichier txt par plage copier, cette plage
reste la meme pour toutes feuilles

Avatar
Daniel.C
merci pour ton aide, le ficher text est bien crée mais il est vide,
peut etre que c'est parceque mes feuilles portes des noms différent

en fait je voulais creer un fichier txt par plage copier, cette plage
reste la meme pour toutes feuilles


Bonjour.
Les plages des feuilles copiées sont celles du classeur dans lequel se
trouve la macro.
Dans l'exemple, la plage A1:Z100 de chaque feuille est copiée dans un
nouveau fichier texte :

Sub test()
Dim sh As Worksheet, Ctr As Long
Workbooks.Add 1
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[A1:Z100].Copy
Ctr = Ctr + 1
ActiveSheet.Cells(1, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "c:temptoto.txt" & Ctr, FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False
Next sh
End Sub

Si tu éprouves toujours des difficultés, mets un classeur exemple sur
www.cjoint.com en effeçant les données confidentielles et en postant ici
l'adresse générée

Daniel

Avatar
j.elmaghnouji
On 11 avr, 10:29, "Daniel.C" wrote:
merci pour ton aide, le ficher text est bien crée mais il est vide,
peut etre que c'est parceque mes feuilles portes des noms différent
en fait je voulais creer un fichier txt par plage copier, cette plage
reste la meme pour toutes feuilles


Bonjour.
Les plages des feuilles copiées sont celles du classeur dans lequel se
trouve la macro.
Dans l'exemple, la plage A1:Z100 de chaque feuille est copiée dans un
nouveau fichier texte :

Sub test()
Dim sh As Worksheet, Ctr As Long
Workbooks.Add 1
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[A1:Z100].Copy
Ctr = Ctr + 1
ActiveSheet.Cells(1, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "c:temptoto.txt" & Ctr, FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False
Next sh
End Sub

Si tu éprouves toujours des difficultés, mets un classeur exemple surw ww.cjoint.comen effeçant les données confidentielles et en postant ici
l'adresse générée

Daniel


ça marche très bien, c génial

et es que tu sais comment je pourais insérer un message de 5 lignes au
début de chaque fichier txt qui à été crée. ce message de 5 lignes
sera le meme pour tout les fichier txt:

ex:
temp:
distance
vitesse
acceleration
prix

je te remercie d'avance


Avatar
Daniel.C
et es que tu sais comment je pourais insérer un message de 5 lignes au
début de chaque fichier txt qui à été crée. ce message de 5 lignes
sera le meme pour tout les fichier txt:

ex:
temp:
distance
vitesse
acceleration
prix

je te remercie d'avance

Sub test()
Dim sh As Worksheet, Ctr As Long
Workbooks.Add 1
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[A1:Z100].Copy
Ctr = Ctr + 1
Cells(1, 1) = "temp:"
Cells(2, 1) = "distance"
Cells(3, 1) = "vitesse"
Cells(4, 1) = "acceleration"
Cells(5, 1) = "prix"
ActiveSheet.Cells(6, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "c:temptoto.txt" & Ctr, FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False
Next sh
End Sub

Daniel
Avatar
j.elmaghnouji
On 11 avr, 11:14, "Daniel.C" wrote:
et es que tu sais comment je pourais insérer un message de 5 lignes au
début de chaque fichier txt qui à été crée. ce message de 5 lign es
sera le meme pour tout les fichier txt:

ex:
temp:
distance
vitesse
acceleration
prix

je te remercie d'avance

Sub test()
Dim sh As Worksheet, Ctr As Long
Workbooks.Add 1
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[A1:Z100].Copy
Ctr = Ctr + 1
Cells(1, 1) = "temp:"
Cells(2, 1) = "distance"
Cells(3, 1) = "vitesse"
Cells(4, 1) = "acceleration"
Cells(5, 1) = "prix"
ActiveSheet.Cells(6, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "c:temptoto.txt" & Ctr, FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False
Next sh
End Sub

Daniel


j'ai lancé ce programme, les 5 lignes ont été copier dans une des
feuilles du classeur et n'apparaissent pas dans les fichiers txt qui
ont été créer

Jaouad

Avatar
j.elmaghnouji
On 11 avr, 11:50, wrote:
On 11 avr, 11:14, "Daniel.C" wrote:





et es que tu sais comment je pourais insérer un message de 5 lignes au
début de chaque fichier txt qui à été crée. ce message de 5 li gnes
sera le meme pour tout les fichier txt:

ex:
temp:
distance
vitesse
acceleration
prix

je te remercie d'avance

Sub test()
Dim sh As Worksheet, Ctr As Long
Workbooks.Add 1
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[A1:Z100].Copy
Ctr = Ctr + 1
Cells(1, 1) = "temp:"
Cells(2, 1) = "distance"
Cells(3, 1) = "vitesse"
Cells(4, 1) = "acceleration"
Cells(5, 1) = "prix"
ActiveSheet.Cells(6, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "c:temptoto.txt" & Ctr, FileFormat:=xlTextMSDO S
ActiveWorkbook.Close False
Next sh
End Sub

Daniel


j'ai lancé ce programme, les 5 lignes ont été copier dans une des
feuilles du classeur et n'apparaissent pas dans les fichiers txt qui
ont été créer

Jaouad- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


encore moi, j'y suis presque

j'ai intégré un open et 5 write (au programme que tu ma filé) mais ces
5 lignes sont ecrites à la fin du texte, ce que je voulais, c'était
les insérer au début du texte

Sub macro_TEST()

Dim sh As Worksheet, Ctr As Long
Workbooks.Add 1
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[B18:AP58].Copy
Ctr = Ctr + 1

ActiveSheet.Cells(6, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "D:Mes documentspomagalskititi.txt" & Ctr,
FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False

Open "D:Mes documentspomagalskititi.txt" & Ctr For Append As #1
Write #1, "temp"
Write #1, "distance"
Write #1, "vitesse"
Write #1, "acceleration"
Write #1, "prix"

Close #1
Next sh
End Sub


Avatar
Daniel.C
Daniel


j'ai lancé ce programme, les 5 lignes ont été copier dans une des
feuilles du classeur et n'apparaissent pas dans les fichiers txt qui
ont été créer


encore moi, j'y suis presque

Essaie :
Sub test()
Dim sh As Worksheet, Ctr As Long
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[A1:Z100].Copy
Ctr = Ctr + 1
Cells(1, 1) = "1ère ligne du message"
Cells(2, 1) = "2e ligne du message"
Cells(3, 1) = "3e ligne du message"
Cells(4, 1) = "4e ligne du message"
Cells(5, 1) = "5e ligne du message"
ActiveSheet.Cells(6, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "c:temptoto" & Ctr & ".txt", FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False
Next sh
End Sub
Tu trouveras un fichier texte obtenu à l'adresse :
http://cjoint.com/?elp3E7cRkF
Daniel


Avatar
j.elmaghnouji
On 11 avr, 15:55, "Daniel.C" wrote:
Daniel


j'ai lancé ce programme, les 5 lignes ont été copier dans une des
feuilles du classeur et n'apparaissent pas dans les fichiers txt qui
ont été créer


encore moi, j'y suis presque

Essaie :
Sub test()
Dim sh As Worksheet, Ctr As Long
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[A1:Z100].Copy
Ctr = Ctr + 1
Cells(1, 1) = "1ère ligne du message"
Cells(2, 1) = "2e ligne du message"
Cells(3, 1) = "3e ligne du message"
Cells(4, 1) = "4e ligne du message"
Cells(5, 1) = "5e ligne du message"
ActiveSheet.Cells(6, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "c:temptoto" & Ctr & ".txt", FileFormat:=xlTextM SDOS
ActiveWorkbook.Close False
Next sh
End Sub
Tu trouveras un fichier texte obtenu à l'adresse :http://cjoint.com/?elp 3E7cRkF
Daniel


Le programme marche pour la 7 feuille du fichier xls, mais pas pour
les autres feuilles, je ne comprend pas pourquoi.
ne serait il pas mieux d'écrire directement dans les txt avec un open
et un write? ça évitera d'écraser les 5 premières lignes de mon
fichier de base xls en faisant cells()=, mais cela fera surement plus
de lignes de code

en plus de cela, cells (1,1) et cells(2,1) sont regroupés dans ttes
les feuilles de mon fichier de base, donc jobtient le message suivant
(2e ligne du message absent):
1Šre ligne du message
3e ligne du message
4e ligne du message
5e ligne du message

peut etre qu'il existe une fonction qui permet de dégroupé ttes les
cellules ...

je sens que j'y suis presque grace à ton aide, encore une fois, je te
remercie beaucoup



Avatar
Daniel.C
a écrit dans le message de news:

On 11 avr, 15:55, "Daniel.C" wrote:
Daniel


j'ai lancé ce programme, les 5 lignes ont été copier dans une des
feuilles du classeur et n'apparaissent pas dans les fichiers txt qui
ont été créer


encore moi, j'y suis presque

Essaie :
Sub test()
Dim sh As Worksheet, Ctr As Long
For Each sh In ThisWorkbook.Sheets
Workbooks.Add 1
sh.[A1:Z100].Copy
Ctr = Ctr + 1
Cells(1, 1) = "1ère ligne du message"
Cells(2, 1) = "2e ligne du message"
Cells(3, 1) = "3e ligne du message"
Cells(4, 1) = "4e ligne du message"
Cells(5, 1) = "5e ligne du message"
ActiveSheet.Cells(6, 1).PasteSpecial xlPasteValues
ActiveWorkbook.SaveAs "c:temptoto" & Ctr & ".txt",
FileFormat:=xlTextMSDOS
ActiveWorkbook.Close False
Next sh
End Sub
Tu trouveras un fichier texte obtenu à l'adresse
:http://cjoint.com/?elp3E7cRkF
Daniel


Le programme marche pour la 7 feuille du fichier xls, mais pas pour
les autres feuilles, je ne comprend pas pourquoi.
ne serait il pas mieux d'écrire directement dans les txt avec un open
et un write? ça évitera d'écraser les 5 premières lignes de mon
fichier de base xls en faisant cells()=, mais cela fera surement plus
de lignes de code

en plus de cela, cells (1,1) et cells(2,1) sont regroupés dans ttes
les feuilles de mon fichier de base, donc jobtient le message suivant
(2e ligne du message absent):
1Šre ligne du message
3e ligne du message
4e ligne du message
5e ligne du message

peut etre qu'il existe une fonction qui permet de dégroupé ttes les
cellules ...

je sens que j'y suis presque grace à ton aide, encore une fois, je te
remercie beaucoup

Essaie :

Sub test()
Dim Enrgt As String, Ctr As Integer, sh As Worksheet
Dim c As Integer, l As Integer
For Each sh In Sheets
Ctr = Ctr + 1
Open "c:temptoto" & Ctr & ".txt" For Output As #1
Print #1, "temp"
Print #1, "distance"
Print #1, "vitesse"
Print #1, "accélération"
Print #1, "prix"
For c = 1 To 9
For l = 1 To 20
Enrgt = Enrgt & sh.Cells(l, c) & ";"
Next l
Enrgt = Left(Enrgt, Len(Enrgt) - 1)
Print #1, Enrgt
Enrgt = ""
Next c
Close #1
Next sh
End Sub

Daniel



1 2