Fichier txt dans excel

Résolu/Fermé
dantes88 - 16 avril 2008 à 14:51
 Madjb - 17 avril 2008 à 14:30
Bonjour,

Nouvelle en programation et sur ce forum je me permet de vous demander de l'aide.
Je suis actuelement en train d'en baver s'évère (il parait que c'est comme ça qu'on apprend...).
Donc je vous résume la chose:

En gros j'ai 3 fichiers *.txt (et yen aura indefiniment)placer sur internet:

- fichier *.txt : organisme (liste des entreprises avec leur lien *.txt)
- fichier *.txt : données entreprise alfa
- fichier *.txt : données entreprise beta
- etc ..

Je dois faire un fichier excel qui va chercher les données pour ces trois fichiers
en mettant sur la premiere feuille la liste des entreprises donc le contenu du fichier
texte entreprise. (Jusque là c'est bon.J'ai fait un bouton qui met a jour la Feuil1 d'excel).

et sur les autres feuilles le contenu des autre fichier txt.....

En gros à la fin ca fait feuille1 sommaire avec liste et liens des fichiers txt,
feuille 2 contenu du fichier txt organisme 1,
feuille 3 contenu du fichier txt organisme 2 etc...

Donc je suis déjà arrivée péniblement à faire une boucle qui liste les entreprises et créer une feuille pour chacune mais je n'arrive pas à faire afficher en plus le contenu avec la commande QueryTables le contenu des fichiers entreprises dans leur propre feuille.

Ayant passer une bonne partie de ma journée d'hier ainsi que d'aujourd'hui, je suis un peu désespérée..quelqu'un a t-il une idée ??

-----
Pour être plus prècis dans mon explication , j'ai des fichiers texte sur internet qui comporte des données.
Avec eux j'ai un fichier primaire (toujours texte) qui liste les diffirents fichiers texte de données.

exemple:
A B
entreprise1 http:\\..............
entreprise2 htpp:\\.........

Sur la feuil1 dans excel je génère le fichier primaire qui liste les autres fichiers
je voudrais au final que le contenu de chaque fichier listé apparraisse dans sa feuille à lui.

J'ai déja une boucle qui fait une feuille pour chaque entreprise
Faut-il faire une boucle en prenant les adresse dan sla deuxme colonne et faire des QueryTables dans les bonnes pages ??


Merci d'avance
A voir également:

1 réponse

J'y arrive presque

Donc pour l'instant j'ai fait cela mais la boucle a du mal à fonctionner.
Si vous voyez de grosses erreurs n'hésitez pas , merci ...(même des petites )

[CODE]
Sub remplir(feuille As Worksheet, nom As String, con As String, dest As Range)

With feuille.QueryTables.Add(con, dest)
.Name = nom
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With

End Sub
[\CODE]


[CODE]
Sub feuilles()
Dim NewSheet As Worksheet
Dim SName As String
Dim sURl As String
Dim Boucle As Integer


DerniereValeur = Worksheets("Feuil1").Range("A1:A50").Find("").Row

For Boucle = 1 To DerniereValeur - 1
SName = Worksheets("Feuil1").Range("A" & Boucle).Text
sURl = Worksheets("Feuil1").Range("B" & Boucle).Text
Set NewSheet = Worksheets(SName)
If Worksheets(SName).Name = SName Then

Else
Call Worksheets.Add(After:=Worksheets(Worksheets.Count - 1))
Set NewSheet = Worksheets.Item(Worksheets.Count - 1)
NewSheet.Name = SName
End If
Call remplir(NewSheet, SName, sURl, NewSheet.Range("A1"))
Next
Set NewSheet = Nothing

End Sub
[\CODE]
0
Voila la solution:


Sub remplir(feuille As Worksheet, nom As String, con As String, dest As Range)

With feuille.QueryTables.Add(con, dest)
.Name = nom
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = True
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
'entire ou delete pour mise à jour
.RefreshStyle = xlInsertEntireCells

.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With

End Sub


Sub feuilles()
Dim NewSheet As Worksheet
Dim SName As String
Dim sURl As String
Dim Boucle As Integer
Dim DerniereValeur As Long

DerniereValeur = Worksheets("Feuil1").Range("A1:A50").Find("").Row - 1
MsgBox DerniereValeur
For Boucle = 1 To DerniereValeur
SName = Worksheets("Feuil1").Range("A" & Boucle).Text
sURl = "url;" & Worksheets("Feuil1").Range("B" & Boucle).Text

Set NewSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
NewSheet.Name = SName
Call remplir(NewSheet, SName, sURl, NewSheet.Range("A1"))


Next
Set NewSheet = Nothing

End Sub
0