Automatiser l'insertion de fichiers texte

Salut cousinhub et merci de continuer à chercher !

bien ... j'ai fait ce que tu as dit mais toujours la même chose.

j'ai essayé avec Oo pour voir et là j'ai un message d'erreur qui dit : Une erreur de structure de script s'est produite lors de l'exécution du script vnd.sun.star.script:Standard.lireFichier_txt?language=Basic~location=document de Basic. Message : The following Basic script could not be found.

Library: "Standard"

Module:"lireFichier_txt"

method:"

location:"document"

Bon, p'têt qu'Oo ne peut pas lire les scripts basic écrits avec Excel ? C'est la version 3.0.0

Et je comprends pas comment ça a marché pour 1 champ hier et puis plus !

Sais-tu créer un script similaire avec Oo ? peut-être que ça marcherait ?

Ou alors faut que je cherche un Excel plus récent ..

bonne soirée

-- 22 Juil 2010, 14:38 --

j'ai retrouvé dans mes cd un Office 2003 Edition PME. j'ai donc fait la MAJ de Excel ... mais le résultat était toujours le même. En allant voir la macro, j'ai vu qu'il y en avais chaque fois deux PERSO.xls!Lire_texte_txt et Lire_texte_txt (quelque chose comme ça)

Du coup, je me suis dit qu'il devait y avoir un emmêlement de pinceaux entre les différents répertoires que j'avais créés et donc j'en ai recréé un sur une autre partition où il n'y avait eu aucun de ces fichiers. Et là, miracle ! ça marche !!!

donc, sans doute n'est-ce pas un problème de compatibilité de version EXCEL mais parce qu'il y avait interférence alors que j'avais chaque fois créé des répertoires différents ...

Bien ... maintenant y a plus qu'à : comment fais-je pour récupérer le script pour mon fichier.xls complet ?

Merci ! je pense que c'est la dernière longueur !

-- 22 Juil 2010, 17:23 --

hé bé voilà ça y est !

puisque sur une autre partition, ton script fonctionnait mais pas si je le copiais dans mon xls complet, j'ai fait l'inverse : copier dans le xls de test tous mes enregistrements, puis mettre dans le répertoire tous mes txt. Et ça a marché !!!

je te ferais bien la bise, tiens, si t'étais pas si loin !

Si tu as encore un peu de courage, y a-t-il moyen de faire la même chose mais il n'afficherait que le chemin de fichiers pdf correspondants ?

J'ai rempli la colonne avec ="fichiers\pdf\" & MINUSCULE($B$2:$B$1417) & ".pdf"

Il m'a donc rempli chaque ligne avec le chemin vers le pdf qui porte aussi le même nom que la référence. Mais le hic, c'est que j'ai pas un pdf pour chaque enregistrement et je voudrais donc automatiser le remplissage de la colonne afin qu'il n'y ait pas d'erreur, donc qu'il ne remplisse chaque cellule que s'il y a effectivement un pdf correspondant.

Si tu n'en as pas encore trop marre ...

Merci pour ce que tu as déjà fait et merci d'avance ...

Bonjour,

Après mûres réflexions, j'ai modifié le premier code comme ceci :

Sub lireFichier_txt()
Dim LePath As String, Resultat As String
Dim Fich As String
Dim T
T = Timer
With Columns("T:T")
    .WrapText = True
    .ColumnWidth = 125.14
End With
Application.ScreenUpdating = False
LePath = ThisWorkbook.Path & "\" ' à adapter
ChDir LePath
Fich = Dir(LePath & "\" & "*.txt")
Do While Fich <> ""
    Set c = Columns(2).Find(Left(Fich, Len(Fich) - 4))
        If Not c Is Nothing Then
            Open LePath & "\" & Fich For Input As #1
                Do While Not EOF(1)
                    Line Input #1, Cible 'boucle sur chaque ligne du fichier texte
                   Resultat = Resultat & Cible & vbLf
                Loop
                c.Offset(0, 18) = Left(Resultat, Len(Resultat) - 1)
                Resultat = ""
            Close #1
        End If
    Fich = Dir
Loop
Cells.VerticalAlignment = xlCenter
Rows.EntireRow.AutoFit
MsgBox Timer - T
End Sub

Si tu as encore le courage de tester, dans les conditions réelles de ton PC...

Pour l'autre question, ce code ci-dessous te met en colonne "S", (que tu peux modifier, bien sûr), le nom du fichier "pdf" correspondant, avec lien hypertexte...(en cliquant dessus, tu l'ouvres...)

Sub Fichier_pdf()
Dim LePath As String
Dim Fich As String
With Columns("S:S")
    .WrapText = True
    .ColumnWidth = 50
End With
Application.ScreenUpdating = False
LePath = ThisWorkbook.Path & "\" ' à adapter
ChDir LePath
Fich = Dir(LePath & "\" & "*.pdf")
Do While Fich <> ""
    Set c = Columns(2).Find(Left(Fich, Len(Fich) - 4))
        If Not c Is Nothing Then
            c.Offset(0, 17).Hyperlinks.Add Anchor:=c.Offset(0, 17), Address:=LePath & "/" & Fich, _
                TextToDisplay:=Fich
        End If
    Fich = Dir
Loop
Cells.VerticalAlignment = xlCenter
Rows.EntireRow.AutoFit
End Sub

Nota, si tu modifies la colonne S, n'oublie pas de modifier l'offset (c.offset(0,17)) où 17 correspond à la colonne S, vu qu'on part de la colonne B...(2 + 17, soit colonne 19 soit colonne S)

Bonne journée

pardon, j'ai commencé une réponse tout à l'heure mais le PC a planté ...

Ce serait bien le comble que je n'aie plus de courage pour tester un nouveau truc alors que toi tu y as passé du temps ! de plus, même si j'ai jamais eu le temps de me mettre au VBA, la programmation est quelque chose qui me plaît ! donc j'ai testé et là, génial, ça marche absolument bien même en me remettant dans la même config qu'hier.

Alors, si tu veux bien, explique-moi ce que tu as changé.

Le script pour le pdf est au poil et affiche bien les liens.

Est-ce qu'on peut afficher l'icône pdf et les mots "Fiche produit" plutôt que le lien en clair ?

Tu me tires une sérieuse épine hors du pied ! Merci infiniment !

Bonne nuit

Bonjour,

j'ai juste changé cette ligne :

Open LePath & "\" & Fich For Input As #1

afin de bien déterminer l'emplacement du fichier à ouvrir...

Par contre, pour l'icône Pdf, ça va pas être simple....

Par contre, tu peux modifier le nom du lien ainsi :

c.Offset(0, 17).Hyperlinks.Add Anchor:=c.Offset(0, 17), Address:=LePath & "/" & Fich, _
                TextToDisplay:="Fiche produit"

Suffit de remplacer Fich par "Fiche produit"

Désolé pour l'icône, mais je pense que tu alourdirais ton fichier inutilement....

Bonne soirée

Merci Cousinhub, je vais tester ça, j'ai encore l'am devant moi !

Ca m'a bien aidé car pas simple de réunir en un seul fichier xls des données éparpillées un peu partout !

Merci pour ton aide !

Cousinhub, si tu me lis encore, j'aurais encore une ch'ite question maintenant que tout roule (j'ai pu importer tous mes noms de fichiers grâce à toi, quelle que soit leur extension ) : je voudrais savoir s'il y a moyen de rajouter le chemin vers l'icone pdf dans la macro insérant les liens vers les pdf ?

Merci d'avance

Rechercher des sujets similaires à "automatiser insertion fichiers texte"