Fichier txt dans excel

Résolu
dantes88 -  
 Madjb -
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
Configuration: Windows XP
Firefox 1.0.7

1 réponse

  1. dantes88
     
    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
    1. Madjb
       
      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