Bonjour,
Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un
format texte pour toutes les colonnes. Cela me permet de faire des
modifications plus facilement dans excel et ensuite j'enregistre le fichier
en txt pour traitement dans une application où il faut que ce fichier soit
en txt.
Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation
de texte je change le format de chaque colonne en choisissant texte dans le
format des données en colonne de l'étape 3 de l'assistant.
Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes
dire : j'ouvre ce fichier avec toutes les colonnes en format texte.
Merci
Caroual
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour Caroual,
Essaie ceci :
'--------------------------------- Sub Test() Dim Chemin As String Dim Fichier As String Dim Texte As String Dim Sep As String Dim X As Long Dim Sh As Worksheet Dim A As Long, B As Integer
'-------Variable à définir------- 'où est situé ton fichier Chemin = "c:UsersDmDocuments" 'nom de ton fichier texte Fichier = "Test.txt" ' le séparateur employé dans ton fichier texte Sep = vbTab 'Le nom de la feuille du classeur où seront copiées les données Set Sh = ThisWorkbook.Worksheets("Feuil1") '--------------------------------- B = NombreColonnes(Chemin & Fichier, vbTab) Sh.Range("A1:B" & B).EntireColumn.NumberFormat = "@" X = FreeFile If Dir(Chemin & Fichier) <> "" Then Open Chemin & Fichier For Input As #X Do While Not EOF(X) Input #X, Texte If Texte <> "" Then t = Split(Texte, Sep) A = A + 1 Sh.Range("A" & A).Resize(, UBound(t, 1) + 1) = t End If Loop Close #X End If derlig = Sh.Range("A" & Cells.Rows.Count).End(xlUp)(2).Row Sh.Range("A" & derlig, "A" & Cells.Rows.Count).EntireRow.Delete End Sub '--------------------------------- Function NombreColonnes(Fichier As String, Sep As String)
Dim A As String, B As Integer Open Fichier For Input As 1 Do While Not EOF(1) Input #1, A If A <> "" Then Exit Do End If Loop Close NombreColonnes = _ Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1 End Function '---------------------------------
"Caroual" a écrit dans le message de groupe de discussion :
Bonjour, Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un format texte pour toutes les colonnes. Cela me permet de faire des modifications plus facilement dans excel et ensuite j'enregistre le fichier en txt pour traitement dans une application où il faut que ce fichier soit en txt. Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation de texte je change le format de chaque colonne en choisissant texte dans le format des données en colonne de l'étape 3 de l'assistant. Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes dire : j'ouvre ce fichier avec toutes les colonnes en format texte. Merci Caroual
Bonjour Caroual,
Essaie ceci :
'---------------------------------
Sub Test()
Dim Chemin As String
Dim Fichier As String
Dim Texte As String
Dim Sep As String
Dim X As Long
Dim Sh As Worksheet
Dim A As Long, B As Integer
'-------Variable à définir-------
'où est situé ton fichier
Chemin = "c:UsersDmDocuments"
'nom de ton fichier texte
Fichier = "Test.txt"
' le séparateur employé dans ton fichier texte
Sep = vbTab
'Le nom de la feuille du classeur où seront copiées les données
Set Sh = ThisWorkbook.Worksheets("Feuil1")
'---------------------------------
B = NombreColonnes(Chemin & Fichier, vbTab)
Sh.Range("A1:B" & B).EntireColumn.NumberFormat = "@"
X = FreeFile
If Dir(Chemin & Fichier) <> "" Then
Open Chemin & Fichier For Input As #X
Do While Not EOF(X)
Input #X, Texte
If Texte <> "" Then
t = Split(Texte, Sep)
A = A + 1
Sh.Range("A" & A).Resize(, UBound(t, 1) + 1) = t
End If
Loop
Close #X
End If
derlig = Sh.Range("A" & Cells.Rows.Count).End(xlUp)(2).Row
Sh.Range("A" & derlig, "A" & Cells.Rows.Count).EntireRow.Delete
End Sub
'---------------------------------
Function NombreColonnes(Fichier As String, Sep As String)
Dim A As String, B As Integer
Open Fichier For Input As 1
Do While Not EOF(1)
Input #1, A
If A <> "" Then
Exit Do
End If
Loop
Close
NombreColonnes = _
Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1
End Function
'---------------------------------
"Caroual" <param@orange.fr> a écrit dans le message de groupe de discussion :
eBOHAzTDKHA.1488@TK2MSFTNGP03.phx.gbl...
Bonjour,
Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un
format texte pour toutes les colonnes. Cela me permet de faire des
modifications plus facilement dans excel et ensuite j'enregistre le fichier
en txt pour traitement dans une application où il faut que ce fichier soit
en txt.
Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation
de texte je change le format de chaque colonne en choisissant texte dans le
format des données en colonne de l'étape 3 de l'assistant.
Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes
dire : j'ouvre ce fichier avec toutes les colonnes en format texte.
Merci
Caroual
'--------------------------------- Sub Test() Dim Chemin As String Dim Fichier As String Dim Texte As String Dim Sep As String Dim X As Long Dim Sh As Worksheet Dim A As Long, B As Integer
'-------Variable à définir------- 'où est situé ton fichier Chemin = "c:UsersDmDocuments" 'nom de ton fichier texte Fichier = "Test.txt" ' le séparateur employé dans ton fichier texte Sep = vbTab 'Le nom de la feuille du classeur où seront copiées les données Set Sh = ThisWorkbook.Worksheets("Feuil1") '--------------------------------- B = NombreColonnes(Chemin & Fichier, vbTab) Sh.Range("A1:B" & B).EntireColumn.NumberFormat = "@" X = FreeFile If Dir(Chemin & Fichier) <> "" Then Open Chemin & Fichier For Input As #X Do While Not EOF(X) Input #X, Texte If Texte <> "" Then t = Split(Texte, Sep) A = A + 1 Sh.Range("A" & A).Resize(, UBound(t, 1) + 1) = t End If Loop Close #X End If derlig = Sh.Range("A" & Cells.Rows.Count).End(xlUp)(2).Row Sh.Range("A" & derlig, "A" & Cells.Rows.Count).EntireRow.Delete End Sub '--------------------------------- Function NombreColonnes(Fichier As String, Sep As String)
Dim A As String, B As Integer Open Fichier For Input As 1 Do While Not EOF(1) Input #1, A If A <> "" Then Exit Do End If Loop Close NombreColonnes = _ Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1 End Function '---------------------------------
"Caroual" a écrit dans le message de groupe de discussion :
Bonjour, Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un format texte pour toutes les colonnes. Cela me permet de faire des modifications plus facilement dans excel et ensuite j'enregistre le fichier en txt pour traitement dans une application où il faut que ce fichier soit en txt. Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation de texte je change le format de chaque colonne en choisissant texte dans le format des données en colonne de l'étape 3 de l'assistant. Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes dire : j'ouvre ce fichier avec toutes les colonnes en format texte. Merci Caroual
Caroual
Cela marche mais j'avoue ne pas avoir tout compris. Je vais en profiter pour creuser EOF que je ne connaissais pas. Merci encore une fois. Caroual
"MichDenis" a écrit dans le message de news: %
Bonjour Caroual,
Essaie ceci :
'--------------------------------- Sub Test() Dim Chemin As String Dim Fichier As String Dim Texte As String Dim Sep As String Dim X As Long Dim Sh As Worksheet Dim A As Long, B As Integer
'-------Variable à définir------- 'où est situé ton fichier Chemin = "c:UsersDmDocuments" 'nom de ton fichier texte Fichier = "Test.txt" ' le séparateur employé dans ton fichier texte Sep = vbTab 'Le nom de la feuille du classeur où seront copiées les données Set Sh = ThisWorkbook.Worksheets("Feuil1") '--------------------------------- B = NombreColonnes(Chemin & Fichier, vbTab) Sh.Range("A1:B" & B).EntireColumn.NumberFormat = "@" X = FreeFile If Dir(Chemin & Fichier) <> "" Then Open Chemin & Fichier For Input As #X Do While Not EOF(X) Input #X, Texte If Texte <> "" Then t = Split(Texte, Sep) A = A + 1 Sh.Range("A" & A).Resize(, UBound(t, 1) + 1) = t End If Loop Close #X End If derlig = Sh.Range("A" & Cells.Rows.Count).End(xlUp)(2).Row Sh.Range("A" & derlig, "A" & Cells.Rows.Count).EntireRow.Delete End Sub '--------------------------------- Function NombreColonnes(Fichier As String, Sep As String)
Dim A As String, B As Integer Open Fichier For Input As 1 Do While Not EOF(1) Input #1, A If A <> "" Then Exit Do End If Loop Close NombreColonnes = _ Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1 End Function '---------------------------------
"Caroual" a écrit dans le message de groupe de discussion :
Bonjour, Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un format texte pour toutes les colonnes. Cela me permet de faire des modifications plus facilement dans excel et ensuite j'enregistre le fichier en txt pour traitement dans une application où il faut que ce fichier soit en txt. Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation de texte je change le format de chaque colonne en choisissant texte dans le format des données en colonne de l'étape 3 de l'assistant. Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes dire : j'ouvre ce fichier avec toutes les colonnes en format texte. Merci Caroual
Cela marche mais j'avoue ne pas avoir tout compris.
Je vais en profiter pour creuser EOF que je ne connaissais pas.
Merci encore une fois.
Caroual
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23LVCqIUDKHA.1376@TK2MSFTNGP02.phx.gbl...
Bonjour Caroual,
Essaie ceci :
'---------------------------------
Sub Test()
Dim Chemin As String
Dim Fichier As String
Dim Texte As String
Dim Sep As String
Dim X As Long
Dim Sh As Worksheet
Dim A As Long, B As Integer
'-------Variable à définir-------
'où est situé ton fichier
Chemin = "c:UsersDmDocuments"
'nom de ton fichier texte
Fichier = "Test.txt"
' le séparateur employé dans ton fichier texte
Sep = vbTab
'Le nom de la feuille du classeur où seront copiées les données
Set Sh = ThisWorkbook.Worksheets("Feuil1")
'---------------------------------
B = NombreColonnes(Chemin & Fichier, vbTab)
Sh.Range("A1:B" & B).EntireColumn.NumberFormat = "@"
X = FreeFile
If Dir(Chemin & Fichier) <> "" Then
Open Chemin & Fichier For Input As #X
Do While Not EOF(X)
Input #X, Texte
If Texte <> "" Then
t = Split(Texte, Sep)
A = A + 1
Sh.Range("A" & A).Resize(, UBound(t, 1) + 1) = t
End If
Loop
Close #X
End If
derlig = Sh.Range("A" & Cells.Rows.Count).End(xlUp)(2).Row
Sh.Range("A" & derlig, "A" & Cells.Rows.Count).EntireRow.Delete
End Sub
'---------------------------------
Function NombreColonnes(Fichier As String, Sep As String)
Dim A As String, B As Integer
Open Fichier For Input As 1
Do While Not EOF(1)
Input #1, A
If A <> "" Then
Exit Do
End If
Loop
Close
NombreColonnes = _
Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1
End Function
'---------------------------------
"Caroual" <param@orange.fr> a écrit dans le message de groupe de
discussion :
eBOHAzTDKHA.1488@TK2MSFTNGP03.phx.gbl...
Bonjour,
Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant
un
format texte pour toutes les colonnes. Cela me permet de faire des
modifications plus facilement dans excel et ensuite j'enregistre le
fichier
en txt pour traitement dans une application où il faut que ce fichier soit
en txt.
Actuellement avec vba j'ouvre mon fichier et avec l'assistant
d'importation
de texte je change le format de chaque colonne en choisissant texte dans
le
format des données en colonne de l'étape 3 de l'assistant.
Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de
colonnes
dire : j'ouvre ce fichier avec toutes les colonnes en format texte.
Merci
Caroual
Cela marche mais j'avoue ne pas avoir tout compris. Je vais en profiter pour creuser EOF que je ne connaissais pas. Merci encore une fois. Caroual
"MichDenis" a écrit dans le message de news: %
Bonjour Caroual,
Essaie ceci :
'--------------------------------- Sub Test() Dim Chemin As String Dim Fichier As String Dim Texte As String Dim Sep As String Dim X As Long Dim Sh As Worksheet Dim A As Long, B As Integer
'-------Variable à définir------- 'où est situé ton fichier Chemin = "c:UsersDmDocuments" 'nom de ton fichier texte Fichier = "Test.txt" ' le séparateur employé dans ton fichier texte Sep = vbTab 'Le nom de la feuille du classeur où seront copiées les données Set Sh = ThisWorkbook.Worksheets("Feuil1") '--------------------------------- B = NombreColonnes(Chemin & Fichier, vbTab) Sh.Range("A1:B" & B).EntireColumn.NumberFormat = "@" X = FreeFile If Dir(Chemin & Fichier) <> "" Then Open Chemin & Fichier For Input As #X Do While Not EOF(X) Input #X, Texte If Texte <> "" Then t = Split(Texte, Sep) A = A + 1 Sh.Range("A" & A).Resize(, UBound(t, 1) + 1) = t End If Loop Close #X End If derlig = Sh.Range("A" & Cells.Rows.Count).End(xlUp)(2).Row Sh.Range("A" & derlig, "A" & Cells.Rows.Count).EntireRow.Delete End Sub '--------------------------------- Function NombreColonnes(Fichier As String, Sep As String)
Dim A As String, B As Integer Open Fichier For Input As 1 Do While Not EOF(1) Input #1, A If A <> "" Then Exit Do End If Loop Close NombreColonnes = _ Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1 End Function '---------------------------------
"Caroual" a écrit dans le message de groupe de discussion :
Bonjour, Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un format texte pour toutes les colonnes. Cela me permet de faire des modifications plus facilement dans excel et ensuite j'enregistre le fichier en txt pour traitement dans une application où il faut que ce fichier soit en txt. Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation de texte je change le format de chaque colonne en choisissant texte dans le format des données en colonne de l'étape 3 de l'assistant. Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes dire : j'ouvre ce fichier avec toutes les colonnes en format texte. Merci Caroual
MichDenis
Sur cette ligne de code dans la procédure proposée, change le vbtab pour la variable sep
B = NombreColonnes(Chemin & Fichier, VbTab) Pour B = NombreColonnes(Chemin & Fichier, Sep)
Sur cette ligne de code dans la procédure proposée,
change le vbtab pour la variable sep
B = NombreColonnes(Chemin & Fichier, VbTab)
Pour
B = NombreColonnes(Chemin & Fichier, Sep)
Sur cette ligne de code dans la procédure proposée, change le vbtab pour la variable sep
B = NombreColonnes(Chemin & Fichier, VbTab) Pour B = NombreColonnes(Chemin & Fichier, Sep)
FS
Bonjour,
Autre approche possible, cette ligne de code met au format texte l'ensemble des cellules d'une feuille de calcul :
Cells.NumberFormat = "@"
Tu peux, je pense, l'inclure au tout début de ta macro (avant l'importation elle-même).
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
Caroual a écrit :
Bonjour, Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un format texte pour toutes les colonnes. Cela me permet de faire des modifications plus facilement dans excel et ensuite j'enregistre le fichier en txt pour traitement dans une application où il faut que ce fichier soit en txt. Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation de texte je change le format de chaque colonne en choisissant texte dans le format des données en colonne de l'étape 3 de l'assistant. Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes dire : j'ouvre ce fichier avec toutes les colonnes en format texte. Merci Caroual
Bonjour,
Autre approche possible, cette ligne de code met au format texte
l'ensemble des cellules d'une feuille de calcul :
Cells.NumberFormat = "@"
Tu peux, je pense, l'inclure au tout début de ta macro (avant
l'importation elle-même).
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
Caroual a écrit :
Bonjour,
Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un
format texte pour toutes les colonnes. Cela me permet de faire des
modifications plus facilement dans excel et ensuite j'enregistre le fichier
en txt pour traitement dans une application où il faut que ce fichier soit
en txt.
Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation
de texte je change le format de chaque colonne en choisissant texte dans le
format des données en colonne de l'étape 3 de l'assistant.
Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes
dire : j'ouvre ce fichier avec toutes les colonnes en format texte.
Merci
Caroual
Autre approche possible, cette ligne de code met au format texte l'ensemble des cellules d'une feuille de calcul :
Cells.NumberFormat = "@"
Tu peux, je pense, l'inclure au tout début de ta macro (avant l'importation elle-même).
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
Caroual a écrit :
Bonjour, Je cherche à ouvrir un fichier txt avec vba excel 2003 tout en conservant un format texte pour toutes les colonnes. Cela me permet de faire des modifications plus facilement dans excel et ensuite j'enregistre le fichier en txt pour traitement dans une application où il faut que ce fichier soit en txt. Actuellement avec vba j'ouvre mon fichier et avec l'assistant d'importation de texte je change le format de chaque colonne en choisissant texte dans le format des données en colonne de l'étape 3 de l'assistant. Cela marche bien mais j'aimerais pouvoir quelque soit le nombre de colonnes dire : j'ouvre ce fichier avec toutes les colonnes en format texte. Merci Caroual