Tableau croisé dynamique base *.txt

Le
thib.lef
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4900011
Bonjour.
Tu peux utiliser Access, c'est très tendance, ou Excel2007.
Cordialement.
Daniel
"thib.lef"
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
Paul V
Le #4899911
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



MichDenis
Le #4618631
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"
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
MichDenis
Le #4618591
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"
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
Publicité
Poster une réponse
Anonyme