OVH Cloud OVH Cloud

mise en page de colonnes

4 réponses
Avatar
pogo
Bonjour a tous

j ai un logiciel qui me donne des infon sous forme de 2 colonnes de chiffrs
sous format .txt.

quand j ouvre ce fichier avec excel, j ai aussi 2 colonnes, mais j ai 20
pages de donnees.

J aimerai pouvoir faire un "couper-coller" des valeurs des 2 colonnes vers
les colonnes suivantes lorsqu on arrive en bas de page, nu peu comme un
retour automatique a la ligne qui serait plutot un retour automatique en haut
de la page.

Merci d avance

pogo

4 réponses

Avatar
michdenis
Bonjour Bogo,

Tu peux utiliser quelque chose dans le genre :

L'exemple suivant repose sur :

Dans mon fichier texte, j'ai 2 colonnes séparées par des points-virgules

Pour mon petit exemple, la procédure change de colonne après chaque 2 lignes. Ceci est réalisé à l'aide de cette ligne de code. Si
tu désires que ce soit 100 lignes tu modifies comme ceci : If Ligne Mod 3 = 100 Then
If Ligne Mod 3 = 0 Then

Tu dois effectivement modifier cette ligne de code pour insérer le chemin et le nom de ton fichier texte
Open "C:Test.txt" For Input As 1

'Choisis la feuille excel de destination.
With Worksheets("Feuil1")

Pour plus d'informations sur la méthode "TextToColumns" qui a plusieurs paramètres, tu vas faire un petit tour dans l'aide, tot y
est expliqué.
.Columns(A).TextToColumns

'-----------------------------------
Sub ouvrirfichiertexte()
Dim Ligne As Long, A As Integer
Dim Colonne As Long
Dim texte As String
Ligne = 1: Colonne = 1
Close #1
Open "C:Test.txt" For Input As 1

With Worksheets("Feuil1")
Do While Not EOF(1)
Line Input #1, texte
.Cells(Ligne, Colonne).Value = texte
Ligne = Ligne + 1
If Ligne Mod 3 = 0 Then
Colonne = Colonne + 3: Ligne = 1
End If
Loop
Close #1
For A = 1 To Colonne Step 3
.Columns(A).TextToColumns _
Cells(1, A), , , False, , True, , _
DecimalSeparator:="."
Next
End With
End Sub
'-----------------------------------


Salutations!



"pogo" a écrit dans le message de news:
Bonjour a tous

j ai un logiciel qui me donne des infon sous forme de 2 colonnes de chiffrs
sous format .txt.

quand j ouvre ce fichier avec excel, j ai aussi 2 colonnes, mais j ai 20
pages de donnees.

J aimerai pouvoir faire un "couper-coller" des valeurs des 2 colonnes vers
les colonnes suivantes lorsqu on arrive en bas de page, nu peu comme un
retour automatique a la ligne qui serait plutot un retour automatique en haut
de la page.

Merci d avance

pogo
Avatar
michdenis
Bonjour Bogo,

Dim texte As String
Ligne = 1: Colonne = 1
Close #1

Dans la procédure proposée, une ligne de code est en trop :
Close #1 à supprimer


Salutations!



"michdenis" a écrit dans le message de news: euGsW7%
Bonjour Bogo,

Tu peux utiliser quelque chose dans le genre :

L'exemple suivant repose sur :

Dans mon fichier texte, j'ai 2 colonnes séparées par des points-virgules

Pour mon petit exemple, la procédure change de colonne après chaque 2 lignes. Ceci est réalisé à l'aide de cette ligne de code. Si
tu désires que ce soit 100 lignes tu modifies comme ceci : If Ligne Mod 3 = 100 Then
If Ligne Mod 3 = 0 Then

Tu dois effectivement modifier cette ligne de code pour insérer le chemin et le nom de ton fichier texte
Open "C:Test.txt" For Input As 1

'Choisis la feuille excel de destination.
With Worksheets("Feuil1")

Pour plus d'informations sur la méthode "TextToColumns" qui a plusieurs paramètres, tu vas faire un petit tour dans l'aide, tot y
est expliqué.
.Columns(A).TextToColumns

'-----------------------------------
Sub ouvrirfichiertexte()
Dim Ligne As Long, A As Integer
Dim Colonne As Long
Dim texte As String
Ligne = 1: Colonne = 1
Close #1
Open "C:Test.txt" For Input As 1

With Worksheets("Feuil1")
Do While Not EOF(1)
Line Input #1, texte
.Cells(Ligne, Colonne).Value = texte
Ligne = Ligne + 1
If Ligne Mod 3 = 0 Then
Colonne = Colonne + 3: Ligne = 1
End If
Loop
Close #1
For A = 1 To Colonne Step 3
.Columns(A).TextToColumns _
Cells(1, A), , , False, , True, , _
DecimalSeparator:="."
Next
End With
End Sub
'-----------------------------------


Salutations!



"pogo" a écrit dans le message de news:
Bonjour a tous

j ai un logiciel qui me donne des infon sous forme de 2 colonnes de chiffrs
sous format .txt.

quand j ouvre ce fichier avec excel, j ai aussi 2 colonnes, mais j ai 20
pages de donnees.

J aimerai pouvoir faire un "couper-coller" des valeurs des 2 colonnes vers
les colonnes suivantes lorsqu on arrive en bas de page, nu peu comme un
retour automatique a la ligne qui serait plutot un retour automatique en haut
de la page.

Merci d avance

pogo
Avatar
pogo
Bonjour michdenis

Ta reponse m a bien aide, j ai juste fais deux modif :

***
pour changer de colonne au bout de 100 lignes il faut changer
If Ligne Mod 3 = 0 Then en : If Ligne Mod 100 = 0 Then
***
et
***
For A = 1 To Colonne Step 3
.Columns(A).TextToColumns _
Cells(1, A), , , False, , True, , _
DecimalSeparator:="."

en

For A = 1 To Colonne Step 3
.Columns(A).TextToColumns _
Cells(1, A), , , False, , True, , _
DecimalSeparator:="."
***

Voila et encore merci

Pogo


Bonjour Bogo,

Dim texte As String
Ligne = 1: Colonne = 1
Close #1

Dans la procédure proposée, une ligne de code est en trop :
Close #1 à supprimer


Salutations!



"michdenis" a écrit dans le message de news: euGsW7%
Bonjour Bogo,

Tu peux utiliser quelque chose dans le genre :

L'exemple suivant repose sur :

Dans mon fichier texte, j'ai 2 colonnes séparées par des points-virgules

Pour mon petit exemple, la procédure change de colonne après chaque 2 lignes. Ceci est réalisé à l'aide de cette ligne de code. Si
tu désires que ce soit 100 lignes tu modifies comme ceci : If Ligne Mod 3 = 100 Then
If Ligne Mod 3 = 0 Then

Tu dois effectivement modifier cette ligne de code pour insérer le chemin et le nom de ton fichier texte
Open "C:Test.txt" For Input As 1

'Choisis la feuille excel de destination.
With Worksheets("Feuil1")

Pour plus d'informations sur la méthode "TextToColumns" qui a plusieurs paramètres, tu vas faire un petit tour dans l'aide, tot y
est expliqué.
..Columns(A).TextToColumns

'-----------------------------------
Sub ouvrirfichiertexte()
Dim Ligne As Long, A As Integer
Dim Colonne As Long
Dim texte As String
Ligne = 1: Colonne = 1
Close #1
Open "C:Test.txt" For Input As 1

With Worksheets("Feuil1")
Do While Not EOF(1)
Line Input #1, texte
.Cells(Ligne, Colonne).Value = texte
Ligne = Ligne + 1
If Ligne Mod 3 = 0 Then
Colonne = Colonne + 3: Ligne = 1
End If
Loop
Close #1
For A = 1 To Colonne Step 3
.Columns(A).TextToColumns _
Cells(1, A), , , False, , True, , _
DecimalSeparator:="."
Next
End With
End Sub
'-----------------------------------


Salutations!



"pogo" a écrit dans le message de news:
Bonjour a tous

j ai un logiciel qui me donne des infon sous forme de 2 colonnes de chiffrs
sous format .txt.

quand j ouvre ce fichier avec excel, j ai aussi 2 colonnes, mais j ai 20
pages de donnees.

J aimerai pouvoir faire un "couper-coller" des valeurs des 2 colonnes vers
les colonnes suivantes lorsqu on arrive en bas de page, nu peu comme un
retour automatique a la ligne qui serait plutot un retour automatique en haut
de la page.

Merci d avance

pogo






Avatar
michdenis
Bonjour Pogo,

Si tu as pris le temps de lire les commentaires accompagnant ma réponse, la modification que tu dis avoir fait était déjà mentionné
...le texte se lisait comme suit : " tu désires que ce soit 100 lignes tu modifies comme ceci : If Ligne Mod 3 = 100 Then If Ligne
Mod 3 = 0 Then "

| ***
| pour changer de colonne au bout de 100 lignes il faut changer
| If Ligne Mod 3 = 0 Then en : If Ligne Mod 100 = 0 Then
| ***

Pour la faire cette modification, j'espère que cela ne t'a pas pris trop de temps temps !

;-)

| et
| ***
| For A = 1 To Colonne Step 3
| .Columns(A).TextToColumns _
| Cells(1, A), , , False, , True, , _
| DecimalSeparator:="."
|
|en
|
| For A = 1 To Colonne Step 3
| .Columns(A).TextToColumns _
| Cells(1, A), , , False, , True, , _
| DecimalSeparator:="."
|***


Salutations!