livedraz
XLDnaute Nouveau
Bonjour à tous !
Alors apres avoir tourné, retourné et ratatourné sur le forum, je me decide enfin à poster ma question.
Je ne trouve pas la réponse et meme si j'ai bien en tete le mode de fonctionnement impossible de mettre en place quelquechose qui me satisfasse pleinement.
J'ai un fichier texte sous la forme suivante :
Wayne Mcmillan SF all 16 5 /17 0 /5 6 /10 1 0 6 1 5 3 20:26
Mika Livedraz PG all 8 4 /4 0 /0 0 /0 1 4 2 0 3 0 24:00
...
(voici juste 2 lignes, ce sont des lignes de stats basket. Y'en a plein apres ...)
Je voudrais recuperer ca dans mon fichier excel.
Au debut j'ai mis en place manuellement le principe d'importation de données externes, a chaque ouverture du classeur les données étaient mise a jour. Nickel.
Mais j'avais le probleme de devoir redefinir l'emplacement de mon fichier .txt si jamais je deplacais l'ensemble (fichier .xls et fichier .txt).
J'ai décidé d'enregistrer une macro alors que je definissait mon enregistrement de données.
A cette macro j'ai ajouté les lignes suivantes pour ne pas avoir a me soucier d'un deplacement eventuel des 2 fichiers :
Ce qui me donne la macro complete suivante :
J'ai placé le code sur l'objet "ThisWorkBook" afin que le code se lance à chaque démarrage.
Résultat des courses : Ben ca marche assez bien.
Sauf que chaque fois que j'ouvre mon classeur excel et bien celui me créé une nouvelle importation de données (forcement puisque c'est ce qu'est sencé faire ce code). Ca me donne au final autant de requetes d'importation que de fois ou j'ouvre mon classeur
Exemple : j'ai ouvert 7 fois mon classeur ...
Je voudrais donc que chaque fois que j'ouvre mon classeur, ca m'importe mes stats à jour, d'un fichier qui serait toujours dans le meme repertoire que mon classeur (quelque soit ce repertoire).
Merci d'avance a vous ... je suis tout ouï !
Alors apres avoir tourné, retourné et ratatourné sur le forum, je me decide enfin à poster ma question.
Je ne trouve pas la réponse et meme si j'ai bien en tete le mode de fonctionnement impossible de mettre en place quelquechose qui me satisfasse pleinement.
J'ai un fichier texte sous la forme suivante :
Wayne Mcmillan SF all 16 5 /17 0 /5 6 /10 1 0 6 1 5 3 20:26
Mika Livedraz PG all 8 4 /4 0 /0 0 /0 1 4 2 0 3 0 24:00
...
(voici juste 2 lignes, ce sont des lignes de stats basket. Y'en a plein apres ...)
Je voudrais recuperer ca dans mon fichier excel.
Au debut j'ai mis en place manuellement le principe d'importation de données externes, a chaque ouverture du classeur les données étaient mise a jour. Nickel.
Mais j'avais le probleme de devoir redefinir l'emplacement de mon fichier .txt si jamais je deplacais l'ensemble (fichier .xls et fichier .txt).
J'ai décidé d'enregistrer une macro alors que je definissait mon enregistrement de données.
A cette macro j'ai ajouté les lignes suivantes pour ne pas avoir a me soucier d'un deplacement eventuel des 2 fichiers :
Code:
nomfichier = "TEXT;" & ActiveWorkbook.Path & "\stats.txt"
Range("A2").Select
With ActiveSheet.QueryTables.Add(Connection:= _
nomfichier, Destination:=Range( _
"A2"))
Ce qui me donne la macro complete suivante :
Code:
Private Sub Workbook_Open()
nomfichier = "TEXT;" & ActiveWorkbook.Path & "\stats.txt"
Range("A2").Select
With ActiveSheet.QueryTables.Add(Connection:= _
nomfichier, Destination:=Range( _
"A2"))
.Name = "MacroStats"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileOtherDelimiter = "/"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=-3
End Sub
J'ai placé le code sur l'objet "ThisWorkBook" afin que le code se lance à chaque démarrage.
Résultat des courses : Ben ca marche assez bien.
Sauf que chaque fois que j'ouvre mon classeur excel et bien celui me créé une nouvelle importation de données (forcement puisque c'est ce qu'est sencé faire ce code). Ca me donne au final autant de requetes d'importation que de fois ou j'ouvre mon classeur
Exemple : j'ai ouvert 7 fois mon classeur ...
Je voudrais donc que chaque fois que j'ouvre mon classeur, ca m'importe mes stats à jour, d'un fichier qui serait toujours dans le meme repertoire que mon classeur (quelque soit ce repertoire).
Merci d'avance a vous ... je suis tout ouï !