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

Tableau croisé dynamique base *.txt

4 réponses
Avatar
thib.lef
Bonjour =E0 tous,

Je travaille dans une entreprise et cherche =E0 cr=E9er un TCD =E0 partir
d'une source externe, ma source =E9tant un fichier texte.
Je vais donc dans le ' rapport de TCD ', clique sur ' source de
donn=E9es externes ', puis ' obtenir les donn=E9es ', et je s=E9lectionne
une base de donn=E9es pour fichiers *.txt.
Le probl=E8me est que Excel ne reconnait pas les colonnes (toutes les
colonnes du fichier source se retrouvent sur une seule colonne).
Je ne veux pas que ma base soit d=E9j=E0 dans Excel car le nombre de
lignes est limit=E9 =E0 65 000 dans Excel


Quelqu'un aurait-il une solution ?

Cordialement,

Thib.lef

4 réponses

Avatar
Daniel
Bonjour.
Tu peux utiliser Access, c'est très tendance, ou Excel2007.
Cordialement.
Daniel
"thib.lef" a écrit dans le message de news:

Bonjour à tous,

Je travaille dans une entreprise et cherche à créer un TCD à partir
d'une source externe, ma source étant un fichier texte.
Je vais donc dans le ' rapport de TCD ', clique sur ' source de
données externes ', puis ' obtenir les données ', et je sélectionne
une base de données pour fichiers *.txt.
Le problème est que Excel ne reconnait pas les colonnes (toutes les
colonnes du fichier source se retrouvent sur une seule colonne).
Je ne veux pas que ma base soit déjà dans Excel car le nombre de
lignes est limité à 65 000 dans Excel


Quelqu'un aurait-il une solution ?

Cordialement,

Thib.lef
Avatar
Paul V
Hello à tous,

Vraisemblablement un problème de séparateur dans ton fichier texte.
Essaye les autres format de fichier texte comme cvs.

A+

Paul V

Bonjour à tous,

Je travaille dans une entreprise et cherche à créer un TCD à partir
d'une source externe, ma source étant un fichier texte.
Je vais donc dans le ' rapport de TCD ', clique sur ' source de
données externes ', puis ' obtenir les données ', et je sélectionne
une base de données pour fichiers *.txt.
Le problème est que Excel ne reconnait pas les colonnes (toutes les
colonnes du fichier source se retrouvent sur une seule colonne).
Je ne veux pas que ma base soit déjà dans Excel car le nombre de
lignes est limité à 65 000 dans Excel


Quelqu'un aurait-il une solution ?

Cordialement,

Thib.lef



Avatar
MichDenis
Si ton fichier texte est au format .csv et que le séparateur décimale est le ;

Voici un petit exemple de procédure pour former un Pivottable
la première ligne du fichier est considérée comme la ligne d'étiquette

Bien que l'on peut extraire les données d'un fichier .txt avec le séparateur "Espace"
ou "Tab" dans un recordset pour transférer ces données vers Excel, le recordset
d'ADO considère toute la ligne du fichier texte comme un seul champ... ce qui
est problématique pour la construction d'un PivotTable...! Il est peut être possible
d'utiliser un autre "Provider" pour les extensions .txt => à vérifier !


'----------------------------------
Sub Test()

Dim cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim Chemin As String, File As String
Chemin = "c:"
File = "Denis.csv"

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & Chemin & ";" _
& "Extended Properties='text;FMTÞlimited'"

Rs.Open "Select * from [" & File & "]", cnn, _
adOpenStatic, adLockOptimistic, adCmdText

With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = _
"OLEDB;" & cnn.ConnectionString
.CommandType = xlCmdTable
.CommandText = Array("denis.csv")
.MaintainConnection = True
.CreatePivotTable TableDestination:=Range("A3"), _
TableName:="PivotTable1"
End With
With ActiveSheet.PivotTables("PivotTable1")
.SmallGrid = False
.PivotCache.RefreshPeriod = 0
ss = Rs.Fields(1).Name
With .PivotFields(Rs.Fields(1).Name)
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields(Rs.Fields(1).Name)
.Orientation = xlColumnField
.Position = 1
End With
With .PivotFields(Rs.Fields(1).Name)
.Orientation = xlDataField
.Position = 1
End With
End With

' Close the connections and clean up.
Rs.Close: cnn.Close
Set Rs = Nothing: Set cnn = Nothing
Set cmdCommand = Nothing
Set rstRecordSet = Nothing
Set cnnConn = Nothing

End Sub
'----------------------------------



"thib.lef" a écrit dans le message de news:

Bonjour à tous,

Je travaille dans une entreprise et cherche à créer un TCD à partir
d'une source externe, ma source étant un fichier texte.
Je vais donc dans le ' rapport de TCD ', clique sur ' source de
données externes ', puis ' obtenir les données ', et je sélectionne
une base de données pour fichiers *.txt.
Le problème est que Excel ne reconnait pas les colonnes (toutes les
colonnes du fichier source se retrouvent sur une seule colonne).
Je ne veux pas que ma base soit déjà dans Excel car le nombre de
lignes est limité à 65 000 dans Excel


Quelqu'un aurait-il une solution ?

Cordialement,

Thib.lef
Avatar
MichDenis
J'ai omis de mentionner que tu dois ajouter la référence suivante
dans la fenêtre de l'éditeur de code

"Microsoft Activex Data Object 2.x librairy"




Si ton fichier texte est au format .csv et que le séparateur décimale est le ;

Voici un petit exemple de procédure pour former un Pivottable
la première ligne du fichier est considérée comme la ligne d'étiquette

Bien que l'on peut extraire les données d'un fichier .txt avec le séparateur "Espace"
ou "Tab" dans un recordset pour transférer ces données vers Excel, le recordset
d'ADO considère toute la ligne du fichier texte comme un seul champ... ce qui
est problématique pour la construction d'un PivotTable...! Il est peut être possible
d'utiliser un autre "Provider" pour les extensions .txt => à vérifier !


'----------------------------------
Sub Test()

Dim cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim Chemin As String, File As String
Chemin = "c:"
File = "Denis.csv"

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & Chemin & ";" _
& "Extended Properties='text;FMTÞlimited'"

Rs.Open "Select * from [" & File & "]", cnn, _
adOpenStatic, adLockOptimistic, adCmdText

With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = _
"OLEDB;" & cnn.ConnectionString
.CommandType = xlCmdTable
.CommandText = Array("denis.csv")
.MaintainConnection = True
.CreatePivotTable TableDestination:=Range("A3"), _
TableName:="PivotTable1"
End With
With ActiveSheet.PivotTables("PivotTable1")
.SmallGrid = False
.PivotCache.RefreshPeriod = 0
ss = Rs.Fields(1).Name
With .PivotFields(Rs.Fields(1).Name)
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields(Rs.Fields(1).Name)
.Orientation = xlColumnField
.Position = 1
End With
With .PivotFields(Rs.Fields(1).Name)
.Orientation = xlDataField
.Position = 1
End With
End With

' Close the connections and clean up.
Rs.Close: cnn.Close
Set Rs = Nothing: Set cnn = Nothing
Set cmdCommand = Nothing
Set rstRecordSet = Nothing
Set cnnConn = Nothing

End Sub
'----------------------------------



"thib.lef" a écrit dans le message de news:

Bonjour à tous,

Je travaille dans une entreprise et cherche à créer un TCD à partir
d'une source externe, ma source étant un fichier texte.
Je vais donc dans le ' rapport de TCD ', clique sur ' source de
données externes ', puis ' obtenir les données ', et je sélectionne
une base de données pour fichiers *.txt.
Le problème est que Excel ne reconnait pas les colonnes (toutes les
colonnes du fichier source se retrouvent sur une seule colonne).
Je ne veux pas que ma base soit déjà dans Excel car le nombre de
lignes est limité à 65 000 dans Excel


Quelqu'un aurait-il une solution ?

Cordialement,

Thib.lef