Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Bonjour.
Ca dépend essentiellement de la taille de ce fichier. S'il n'y a pas de
marque de fin d'enregistrement, le fichier est considéré comme un seul
enregistrement; et il est chargé en mémoire. Il y a deux options (par
VBA, j'ai peur); soit le fichier entier peut être chargé en mémoire ou
pas. La première solution est simple, la seconde plus compliquée.
J'attends ta réponse avant de construire une usine à gaz.
Cordialement.
Daniel
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
Bonjour.
Ca dépend essentiellement de la taille de ce fichier. S'il n'y a pas de
marque de fin d'enregistrement, le fichier est considéré comme un seul
enregistrement; et il est chargé en mémoire. Il y a deux options (par
VBA, j'ai peur); soit le fichier entier peut être chargé en mémoire ou
pas. La première solution est simple, la seconde plus compliquée.
J'attends ta réponse avant de construire une usine à gaz.
Cordialement.
Daniel
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
Bonjour.
Ca dépend essentiellement de la taille de ce fichier. S'il n'y a pas de
marque de fin d'enregistrement, le fichier est considéré comme un seul
enregistrement; et il est chargé en mémoire. Il y a deux options (par
VBA, j'ai peur); soit le fichier entier peut être chargé en mémoire ou
pas. La première solution est simple, la seconde plus compliquée.
J'attends ta réponse avant de construire une usine à gaz.
Cordialement.
Daniel
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
Place ce code dans le module et lorsque tu as fini ton
importation de ton fichier .csv dans excel, tu appelles
cette macro en prenant soin d'adapter le nom de la feuille
où se retrouve tes données
'-----------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range
Dim A As Long, B As Long, Nb As Long
With Worksheets("Feuil1") '`aadapter
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Nb = Rg.Rows.Count
Application.EnableEvents = False
Application.ScreenUpdating = False
For A = 1 To Nb Step 26
B = B + 1
Set Rg1 = .Range("A" & A & ":A" & A + 25)
.Range("A" & B).Resize(, Rg1.Rows.Count) = _
Application.Transpose(.Range("A" & A & ":A" & A + 25))
Rg1 = ""
Next
End With
Application.EnableEvents = True
End Sub
'-----------------------------------
"Jacques" a écrit dans le message de groupe de discussion
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Place ce code dans le module et lorsque tu as fini ton
importation de ton fichier .csv dans excel, tu appelles
cette macro en prenant soin d'adapter le nom de la feuille
où se retrouve tes données
'-----------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range
Dim A As Long, B As Long, Nb As Long
With Worksheets("Feuil1") '`aadapter
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Nb = Rg.Rows.Count
Application.EnableEvents = False
Application.ScreenUpdating = False
For A = 1 To Nb Step 26
B = B + 1
Set Rg1 = .Range("A" & A & ":A" & A + 25)
.Range("A" & B).Resize(, Rg1.Rows.Count) = _
Application.Transpose(.Range("A" & A & ":A" & A + 25))
Rg1 = ""
Next
End With
Application.EnableEvents = True
End Sub
'-----------------------------------
"Jacques" <jac_be@hotmail.com> a écrit dans le message de groupe de discussion
upK8AMDnJHA.6060@TK2MSFTNGP05.phx.gbl...
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Place ce code dans le module et lorsque tu as fini ton
importation de ton fichier .csv dans excel, tu appelles
cette macro en prenant soin d'adapter le nom de la feuille
où se retrouve tes données
'-----------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range
Dim A As Long, B As Long, Nb As Long
With Worksheets("Feuil1") '`aadapter
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Nb = Rg.Rows.Count
Application.EnableEvents = False
Application.ScreenUpdating = False
For A = 1 To Nb Step 26
B = B + 1
Set Rg1 = .Range("A" & A & ":A" & A + 25)
.Range("A" & B).Resize(, Rg1.Rows.Count) = _
Application.Transpose(.Range("A" & A & ":A" & A + 25))
Rg1 = ""
Next
End With
Application.EnableEvents = True
End Sub
'-----------------------------------
"Jacques" a écrit dans le message de groupe de discussion
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Place ce code dans le module et lorsque tu as fini ton
importation de ton fichier .csv dans excel, tu appelles
cette macro en prenant soin d'adapter le nom de la feuille
où se retrouve tes données
'-----------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range
Dim A As Long, B As Long, Nb As Long
With Worksheets("Feuil1") '`aadapter
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Nb = Rg.Rows.Count
Application.EnableEvents = False
Application.ScreenUpdating = False
For A = 1 To Nb Step 26
B = B + 1
Set Rg1 = .Range("A" & A & ":A" & A + 25)
.Range("A" & B).Resize(, Rg1.Rows.Count) = _
Application.Transpose(.Range("A" & A & ":A" & A + 25))
Rg1 = ""
Next
End With
Application.EnableEvents = True
End Sub
'-----------------------------------
"Jacques" a écrit dans le message de groupe de discussion
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Place ce code dans le module et lorsque tu as fini ton
importation de ton fichier .csv dans excel, tu appelles
cette macro en prenant soin d'adapter le nom de la feuille
où se retrouve tes données
'-----------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range
Dim A As Long, B As Long, Nb As Long
With Worksheets("Feuil1") '`aadapter
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Nb = Rg.Rows.Count
Application.EnableEvents = False
Application.ScreenUpdating = False
For A = 1 To Nb Step 26
B = B + 1
Set Rg1 = .Range("A" & A & ":A" & A + 25)
.Range("A" & B).Resize(, Rg1.Rows.Count) = _
Application.Transpose(.Range("A" & A & ":A" & A + 25))
Rg1 = ""
Next
End With
Application.EnableEvents = True
End Sub
'-----------------------------------
"Jacques" <jac_be@hotmail.com> a écrit dans le message de groupe de discussion
upK8AMDnJHA.6060@TK2MSFTNGP05.phx.gbl...
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Place ce code dans le module et lorsque tu as fini ton
importation de ton fichier .csv dans excel, tu appelles
cette macro en prenant soin d'adapter le nom de la feuille
où se retrouve tes données
'-----------------------------------
Sub test()
Dim Rg As Range, Rg1 As Range
Dim A As Long, B As Long, Nb As Long
With Worksheets("Feuil1") '`aadapter
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Nb = Rg.Rows.Count
Application.EnableEvents = False
Application.ScreenUpdating = False
For A = 1 To Nb Step 26
B = B + 1
Set Rg1 = .Range("A" & A & ":A" & A + 25)
.Range("A" & B).Resize(, Rg1.Rows.Count) = _
Application.Transpose(.Range("A" & A & ":A" & A + 25))
Rg1 = ""
Next
End With
Application.EnableEvents = True
End Sub
'-----------------------------------
"Jacques" a écrit dans le message de groupe de discussion
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Tu adaptes le nom du fichier à ouvrir:
Les données se copient dans la feuille active du classeur
en débutant en A1 lorsque la procédure est lancé.
'---------------------------------------
Sub Ouvrir fichierCSV()
Dim X As Long, Nb As Long
Dim tblo As Variant
Dim Temp As String
Dim A As Long, B As Long
Dim Fichier As String
Fichier = "C:Denis.csv" 'à adapter
X = FreeFile
Open Fichier For Input As #X
Do While EOF(X) = False
Input #X, myVar
texte = texte & myVar
Loop
tblo = Split(texte, ";")
Nb = UBound(tblo)
For A = 0 To Nb
Temp = Temp & tblo(A) & ";"
If A Mod 26 = 0 Then
If A > 0 Then
B = B + 1
Range("A" & B).Resize(, 26) = Split(Temp, ";")
Temp = ""
End If
End If
Next
Close #X
End Sub
'---------------------------------------
"Jacques" a écrit dans le message de groupe de
u#g#
Bonjour,
L'importation dans Excel ne peut se faire puisque Excel considère qu"il y
de colonnes!
C'est la première chose que j'ai faite en espèrant que dans Excel on
définir le nombre de colonne lors de l'importation. Mais ce n'est pas le
Je dois d'abord traiter le fichier txt avant de l'importer dans Excel.
Merci
"MichDenis" a écrit dans le message de
news:
> Place ce code dans le module et lorsque tu as fini ton
> importation de ton fichier .csv dans excel, tu appelles
> cette macro en prenant soin d'adapter le nom de la feuille
> où se retrouve tes données
>
> '-----------------------------------
> Sub test()
> Dim Rg As Range, Rg1 As Range
> Dim A As Long, B As Long, Nb As Long
> With Worksheets("Feuil1") '`aadapter
> Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
> Nb = Rg.Rows.Count
> Application.EnableEvents = False
> Application.ScreenUpdating = False
> For A = 1 To Nb Step 26
> B = B + 1
> Set Rg1 = .Range("A" & A & ":A" & A + 25)
> .Range("A" & B).Resize(, Rg1.Rows.Count) = _
> Application.Transpose(.Range("A" & A & ":A" & A + 25))
> Rg1 = ""
> Next
> End With
> Application.EnableEvents = True
> End Sub
> '-----------------------------------
>
>
>
> "Jacques" a écrit dans le message de groupe de
:
>
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est
> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26
> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle
>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
>
Tu adaptes le nom du fichier à ouvrir:
Les données se copient dans la feuille active du classeur
en débutant en A1 lorsque la procédure est lancé.
'---------------------------------------
Sub Ouvrir fichierCSV()
Dim X As Long, Nb As Long
Dim tblo As Variant
Dim Temp As String
Dim A As Long, B As Long
Dim Fichier As String
Fichier = "C:Denis.csv" 'à adapter
X = FreeFile
Open Fichier For Input As #X
Do While EOF(X) = False
Input #X, myVar
texte = texte & myVar
Loop
tblo = Split(texte, ";")
Nb = UBound(tblo)
For A = 0 To Nb
Temp = Temp & tblo(A) & ";"
If A Mod 26 = 0 Then
If A > 0 Then
B = B + 1
Range("A" & B).Resize(, 26) = Split(Temp, ";")
Temp = ""
End If
End If
Next
Close #X
End Sub
'---------------------------------------
"Jacques" <jac_be@hotmail.com> a écrit dans le message de groupe de
u#g#u3LnJHA.3944@TK2MSFTNGP06.phx.gbl...
Bonjour,
L'importation dans Excel ne peut se faire puisque Excel considère qu"il y
de colonnes!
C'est la première chose que j'ai faite en espèrant que dans Excel on
définir le nombre de colonne lors de l'importation. Mais ce n'est pas le
Je dois d'abord traiter le fichier txt avant de l'importer dans Excel.
Merci
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de
news:7823165B-D63C-4336-A81D-1288F5D06AD5@microsoft.com...
> Place ce code dans le module et lorsque tu as fini ton
> importation de ton fichier .csv dans excel, tu appelles
> cette macro en prenant soin d'adapter le nom de la feuille
> où se retrouve tes données
>
> '-----------------------------------
> Sub test()
> Dim Rg As Range, Rg1 As Range
> Dim A As Long, B As Long, Nb As Long
> With Worksheets("Feuil1") '`aadapter
> Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
> Nb = Rg.Rows.Count
> Application.EnableEvents = False
> Application.ScreenUpdating = False
> For A = 1 To Nb Step 26
> B = B + 1
> Set Rg1 = .Range("A" & A & ":A" & A + 25)
> .Range("A" & B).Resize(, Rg1.Rows.Count) = _
> Application.Transpose(.Range("A" & A & ":A" & A + 25))
> Rg1 = ""
> Next
> End With
> Application.EnableEvents = True
> End Sub
> '-----------------------------------
>
>
>
> "Jacques" <jac_be@hotmail.com> a écrit dans le message de groupe de
:
> upK8AMDnJHA.6060@TK2MSFTNGP05.phx.gbl...
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est
> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26
> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle
>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
>
Tu adaptes le nom du fichier à ouvrir:
Les données se copient dans la feuille active du classeur
en débutant en A1 lorsque la procédure est lancé.
'---------------------------------------
Sub Ouvrir fichierCSV()
Dim X As Long, Nb As Long
Dim tblo As Variant
Dim Temp As String
Dim A As Long, B As Long
Dim Fichier As String
Fichier = "C:Denis.csv" 'à adapter
X = FreeFile
Open Fichier For Input As #X
Do While EOF(X) = False
Input #X, myVar
texte = texte & myVar
Loop
tblo = Split(texte, ";")
Nb = UBound(tblo)
For A = 0 To Nb
Temp = Temp & tblo(A) & ";"
If A Mod 26 = 0 Then
If A > 0 Then
B = B + 1
Range("A" & B).Resize(, 26) = Split(Temp, ";")
Temp = ""
End If
End If
Next
Close #X
End Sub
'---------------------------------------
"Jacques" a écrit dans le message de groupe de
u#g#
Bonjour,
L'importation dans Excel ne peut se faire puisque Excel considère qu"il y
de colonnes!
C'est la première chose que j'ai faite en espèrant que dans Excel on
définir le nombre de colonne lors de l'importation. Mais ce n'est pas le
Je dois d'abord traiter le fichier txt avant de l'importer dans Excel.
Merci
"MichDenis" a écrit dans le message de
news:
> Place ce code dans le module et lorsque tu as fini ton
> importation de ton fichier .csv dans excel, tu appelles
> cette macro en prenant soin d'adapter le nom de la feuille
> où se retrouve tes données
>
> '-----------------------------------
> Sub test()
> Dim Rg As Range, Rg1 As Range
> Dim A As Long, B As Long, Nb As Long
> With Worksheets("Feuil1") '`aadapter
> Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
> Nb = Rg.Rows.Count
> Application.EnableEvents = False
> Application.ScreenUpdating = False
> For A = 1 To Nb Step 26
> B = B + 1
> Set Rg1 = .Range("A" & A & ":A" & A + 25)
> .Range("A" & B).Resize(, Rg1.Rows.Count) = _
> Application.Transpose(.Range("A" & A & ":A" & A + 25))
> Rg1 = ""
> Next
> End With
> Application.EnableEvents = True
> End Sub
> '-----------------------------------
>
>
>
> "Jacques" a écrit dans le message de groupe de
:
>
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est
> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26
> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle
>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
>
Re,
Un grand merci
Jacques
"MichDenis" a écrit dans le message de
news:Tu adaptes le nom du fichier à ouvrir:
Les données se copient dans la feuille active du classeur
en débutant en A1 lorsque la procédure est lancé.
'---------------------------------------
Sub Ouvrir fichierCSV()
Dim X As Long, Nb As Long
Dim tblo As Variant
Dim Temp As String
Dim A As Long, B As Long
Dim Fichier As String
Fichier = "C:Denis.csv" 'à adapter
X = FreeFile
Open Fichier For Input As #X
Do While EOF(X) = False
Input #X, myVar
texte = texte & myVar
Loop
tblo = Split(texte, ";")
Nb = UBound(tblo)
For A = 0 To Nb
Temp = Temp & tblo(A) & ";"
If A Mod 26 = 0 Then
If A > 0 Then
B = B + 1
Range("A" & B).Resize(, 26) = Split(Temp, ";")
Temp = ""
End If
End If
Next
Close #X
End Sub
'---------------------------------------
"Jacques" a écrit dans le message de groupe de
discussion :u#g#
Bonjour,
L'importation dans Excel ne peut se faire puisque Excel considère qu"il y
a tropde colonnes!
C'est la première chose que j'ai faite en espèrant que dans Excel on
puissedéfinir le nombre de colonne lors de l'importation. Mais ce n'est pas le
cas.Je dois d'abord traiter le fichier txt avant de l'importer dans Excel.
Merci
"MichDenis" a écrit dans le message de
news:
> Place ce code dans le module et lorsque tu as fini ton
> importation de ton fichier .csv dans excel, tu appelles
> cette macro en prenant soin d'adapter le nom de la feuille
> où se retrouve tes données
>
> '-----------------------------------
> Sub test()
> Dim Rg As Range, Rg1 As Range
> Dim A As Long, B As Long, Nb As Long
> With Worksheets("Feuil1") '`aadapter
> Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
> Nb = Rg.Rows.Count
> Application.EnableEvents = False
> Application.ScreenUpdating = False
> For A = 1 To Nb Step 26
> B = B + 1
> Set Rg1 = .Range("A" & A & ":A" & A + 25)
> .Range("A" & B).Resize(, Rg1.Rows.Count) = _
> Application.Transpose(.Range("A" & A & ":A" & A + 25))
> Rg1 = ""
> Next
> End With
> Application.EnableEvents = True
> End Sub
> '-----------------------------------
>
>
>
> "Jacques" a écrit dans le message de groupe de
discussion:
>
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est
séparée> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26
colonnes.> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle
ligne ?>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
>
Re,
Un grand merci
Jacques
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de
news:C1760552-EA46-4EE5-835B-D83702112453@microsoft.com...
Tu adaptes le nom du fichier à ouvrir:
Les données se copient dans la feuille active du classeur
en débutant en A1 lorsque la procédure est lancé.
'---------------------------------------
Sub Ouvrir fichierCSV()
Dim X As Long, Nb As Long
Dim tblo As Variant
Dim Temp As String
Dim A As Long, B As Long
Dim Fichier As String
Fichier = "C:Denis.csv" 'à adapter
X = FreeFile
Open Fichier For Input As #X
Do While EOF(X) = False
Input #X, myVar
texte = texte & myVar
Loop
tblo = Split(texte, ";")
Nb = UBound(tblo)
For A = 0 To Nb
Temp = Temp & tblo(A) & ";"
If A Mod 26 = 0 Then
If A > 0 Then
B = B + 1
Range("A" & B).Resize(, 26) = Split(Temp, ";")
Temp = ""
End If
End If
Next
Close #X
End Sub
'---------------------------------------
"Jacques" <jac_be@hotmail.com> a écrit dans le message de groupe de
discussion :
u#g#u3LnJHA.3944@TK2MSFTNGP06.phx.gbl...
Bonjour,
L'importation dans Excel ne peut se faire puisque Excel considère qu"il y
a trop
de colonnes!
C'est la première chose que j'ai faite en espèrant que dans Excel on
puisse
définir le nombre de colonne lors de l'importation. Mais ce n'est pas le
cas.
Je dois d'abord traiter le fichier txt avant de l'importer dans Excel.
Merci
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de
news:7823165B-D63C-4336-A81D-1288F5D06AD5@microsoft.com...
> Place ce code dans le module et lorsque tu as fini ton
> importation de ton fichier .csv dans excel, tu appelles
> cette macro en prenant soin d'adapter le nom de la feuille
> où se retrouve tes données
>
> '-----------------------------------
> Sub test()
> Dim Rg As Range, Rg1 As Range
> Dim A As Long, B As Long, Nb As Long
> With Worksheets("Feuil1") '`aadapter
> Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
> Nb = Rg.Rows.Count
> Application.EnableEvents = False
> Application.ScreenUpdating = False
> For A = 1 To Nb Step 26
> B = B + 1
> Set Rg1 = .Range("A" & A & ":A" & A + 25)
> .Range("A" & B).Resize(, Rg1.Rows.Count) = _
> Application.Transpose(.Range("A" & A & ":A" & A + 25))
> Rg1 = ""
> Next
> End With
> Application.EnableEvents = True
> End Sub
> '-----------------------------------
>
>
>
> "Jacques" <jac_be@hotmail.com> a écrit dans le message de groupe de
discussion
:
> upK8AMDnJHA.6060@TK2MSFTNGP05.phx.gbl...
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est
séparée
> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26
colonnes.
> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle
ligne ?
>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
>
Re,
Un grand merci
Jacques
"MichDenis" a écrit dans le message de
news:Tu adaptes le nom du fichier à ouvrir:
Les données se copient dans la feuille active du classeur
en débutant en A1 lorsque la procédure est lancé.
'---------------------------------------
Sub Ouvrir fichierCSV()
Dim X As Long, Nb As Long
Dim tblo As Variant
Dim Temp As String
Dim A As Long, B As Long
Dim Fichier As String
Fichier = "C:Denis.csv" 'à adapter
X = FreeFile
Open Fichier For Input As #X
Do While EOF(X) = False
Input #X, myVar
texte = texte & myVar
Loop
tblo = Split(texte, ";")
Nb = UBound(tblo)
For A = 0 To Nb
Temp = Temp & tblo(A) & ";"
If A Mod 26 = 0 Then
If A > 0 Then
B = B + 1
Range("A" & B).Resize(, 26) = Split(Temp, ";")
Temp = ""
End If
End If
Next
Close #X
End Sub
'---------------------------------------
"Jacques" a écrit dans le message de groupe de
discussion :u#g#
Bonjour,
L'importation dans Excel ne peut se faire puisque Excel considère qu"il y
a tropde colonnes!
C'est la première chose que j'ai faite en espèrant que dans Excel on
puissedéfinir le nombre de colonne lors de l'importation. Mais ce n'est pas le
cas.Je dois d'abord traiter le fichier txt avant de l'importer dans Excel.
Merci
"MichDenis" a écrit dans le message de
news:
> Place ce code dans le module et lorsque tu as fini ton
> importation de ton fichier .csv dans excel, tu appelles
> cette macro en prenant soin d'adapter le nom de la feuille
> où se retrouve tes données
>
> '-----------------------------------
> Sub test()
> Dim Rg As Range, Rg1 As Range
> Dim A As Long, B As Long, Nb As Long
> With Worksheets("Feuil1") '`aadapter
> Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
> Nb = Rg.Rows.Count
> Application.EnableEvents = False
> Application.ScreenUpdating = False
> For A = 1 To Nb Step 26
> B = B + 1
> Set Rg1 = .Range("A" & A & ":A" & A + 25)
> .Range("A" & B).Resize(, Rg1.Rows.Count) = _
> Application.Transpose(.Range("A" & A & ":A" & A + 25))
> Rg1 = ""
> Next
> End With
> Application.EnableEvents = True
> End Sub
> '-----------------------------------
>
>
>
> "Jacques" a écrit dans le message de groupe de
discussion:
>
> Bonjour,
>
> Je reçois d'une compagnie un fichier texte dont chaque valeur est
séparée> par un ";"
>
> Le problème (pour moi) est que toutes les valeurs sont l'une derrière
> l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26
colonnes.> Comment inmporter le fichier dans excel ?
>
> Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle
ligne ?>
> Si non, comment faire pour traiter ce fichier (via VBA)
>
>
> Merci de vos réponses
>
>
>
> Jacques
>
Bonjour,
Le fichier est considéré comme un seul enregistrement et peut être chargé en
mémoire...
Merci
"Daniel.C" a écrit dans le message de
news:Bonjour.
Ca dépend essentiellement de la taille de ce fichier. S'il n'y a pas de
marque de fin d'enregistrement, le fichier est considéré comme un seul
enregistrement; et il est chargé en mémoire. Il y a deux options (par
VBA, j'ai peur); soit le fichier entier peut être chargé en mémoire ou
pas. La première solution est simple, la seconde plus compliquée.
J'attends ta réponse avant de construire une usine à gaz.
Cordialement.
DanielBonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Bonjour,
Le fichier est considéré comme un seul enregistrement et peut être chargé en
mémoire...
Merci
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
news:uiuTHOEnJHA.3876@TK2MSFTNGP02.phx.gbl...
Bonjour.
Ca dépend essentiellement de la taille de ce fichier. S'il n'y a pas de
marque de fin d'enregistrement, le fichier est considéré comme un seul
enregistrement; et il est chargé en mémoire. Il y a deux options (par
VBA, j'ai peur); soit le fichier entier peut être chargé en mémoire ou
pas. La première solution est simple, la seconde plus compliquée.
J'attends ta réponse avant de construire une usine à gaz.
Cordialement.
Daniel
Bonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques
Bonjour,
Le fichier est considéré comme un seul enregistrement et peut être chargé en
mémoire...
Merci
"Daniel.C" a écrit dans le message de
news:Bonjour.
Ca dépend essentiellement de la taille de ce fichier. S'il n'y a pas de
marque de fin d'enregistrement, le fichier est considéré comme un seul
enregistrement; et il est chargé en mémoire. Il y a deux options (par
VBA, j'ai peur); soit le fichier entier peut être chargé en mémoire ou
pas. La première solution est simple, la seconde plus compliquée.
J'attends ta réponse avant de construire une usine à gaz.
Cordialement.
DanielBonjour,
Je reçois d'une compagnie un fichier texte dont chaque valeur est séparée
par un ";"
Le problème (pour moi) est que toutes les valeurs sont l'une derrière
l'autre. Ce que je sais ,c'est qu'un enregistrement comporte 26 colonnes.
Comment inmporter le fichier dans excel ?
Est-il possible de lui dire que toutes les 26 ; c'est une nouvelle ligne ?
Si non, comment faire pour traiter ce fichier (via VBA)
Merci de vos réponses
Jacques