OVH Cloud OVH Cloud

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?

2 réponses

1 2
Avatar
j.elmaghnouji
On 13 avr, 15:02, "Daniel.C" wrote:
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 de s
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- Masquer le texte des messages précédents -

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


ça marche nikel

merci




Avatar
j.elmaghnouji
On 13 avr, 20:41, wrote:
On 13 avr, 15:02, "Daniel.C" wrote:





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- Masquer le texte des messages précédents -

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


ça marche nikel

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

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


bonjour à tous ,

je vous expose mon probleme:

j'ai plusieur sheet dans un classeur, chaque sheet contient une
collonne de donnée, je voudrai trouver le max et le min de chaque
colonne, puis trouver le max des max et le min des min

merci





1 2