Bonjour,
Est il possible de crée une macro qui permet d'ouvrir tout les fichiers wordpad contenu dans un dossier et de copier le contenu sur un seul fichier excel merci
et comment faire
Bonjour,
Est il possible de crée une macro qui permet d'ouvrir tout les fichiers wordpad contenu dans un dossier et de copier le contenu sur un seul fichier excel merci
et comment faire
Oui ! Tu as de nombreux exemples pour ouvrir tous les fichiers d'un répertoire sur ce forum ou sur Contribuez Excel. Tu tapes "répertoire" ou "liste" dans la recherche sur ce forum
Pour un fichier.rtf, tu dois l'ouvrir sous word et récupérer son contenu.
Tu as également plusieurs exemples de création d'instances de Word et d'ouverture de document. La seule différence étant l'extension du fichier en question. Regarde là aussi dans Contribuez Excel en faisant une recherche sur le forum avec le mot clé "Word"
Enfin, si tu as un pb, tu nous montres ce que tu as fait, on pourra t'aider
Bonne journée
Dans l'aide en ligne, tu as un paquet d'informations qui t'expliquent la gestion des fichiers en VBA (instructions "Open", "Close", etc...). Tu as également des informations dans des tutos et la FAQ sur le site.
Cherche déjà à remuer tout ça, et s'il te manque des élements alors là on pourra t'aider à y ajouter un plus.![]()
Pour le moment je n'ai encore rien fais sur VBA je fais que du papier.
Mais je ne sais pas comment faire sachant que je touche a VBA depuis seulement 2 semaines mais j'ai les idées pour mettre tout sa en place.
Je prendrais des renseignements aprés merci
Tiens-nous au courant.
Le cas échéant, continue sur cet même discussion![]()
J'ai trouver un topic parlant de sa , cependant j'ajoute un peu de difficulté, mes fichiers de base sont en wordpad et lorsque je les ouvrent sur excel il y a une manipulation automatique a réglé
Ma macro doit se faire de cette maniere :
- passez les fichiers en wordpad en format Excel de maniere spéciale , ensuite copier l'ensemble des fichiers wordpad convertit en format excel vers un fichier qui regroupe toute les informations .
S'il ne s'agit pas de l'import d'un objet "document Word", je doute qu'Excel puisse ouvrir les fichiers RTF qui ont un format de fichier créé pour être lu par la plupart des logiciels de traitement de texte. L'important ici, c'est "Texte".
En outre, un RTF n'est pas un txt.
Un tableur comme Excel n'est pas un traitement de texte et, à moins que je ne me trompe (je ne connais pas tout tant s'en faut) tu dois passer par un logiciel de la gamme Office de traitement de texte et je ne vois guère que Word pour faire ça.
Donc, ouverture du fichier depuis Word, et donc ouverture d'une application Word depuis Excel, ouverture de ton fichier, copie dans Word, Collage dans Excel.
Maintenant, je ne sais sous quelle forme tu veux le contenu puisque tu ne l'as pas précisé.
A+
C'est un fichier de chiffre séparé par des virgule qui est trés bien géré par excel et qui a l'ouverture permet de bien cadré les nombres dans des colonnes et de les séparé c'est bien pour cela que j'utilise Excel
Si tes fichiers sont des .txt (ils s'ouvrent avec le bloc notes ou le wordpad ça dépend...), eh bien le plus pratique sera de se servir de la gestion de fichiers avec la solution que je t'ai proposé.
Si ce sont des fichiers faits pour le wordpad, regarde à quoi ça ressemble si tu les ouvres avec le bloc notes, et s'il n'y a rien d'autre que tes chiffres séparés par virgule, alors là aussi tu pourras ouvrir les ficheirs comme ça.
Sinon ben comme te l'a dit ouskel'n'or va falloir toucher à l'ouverture d'applications depuis Excel, et tu auras beaucoup de boulot pour y arriver.
Bonjour,
le terme "compilation" dans ta demande porte à confusion.
Mais sur base de l'évolution de ce fil, et de tes explications, les solutions qui te sont proposées devraient fonctionner.
Tu peux aussi intégrer un fichier texte à un endroit donné, via ce genre de code:
et en gérant la destination, tu peux stocker les données les unes après les autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\DATA\example.txt", _ Destination:=Range("A1")) .Name = "example" .FieldNames = True .RowNumbers = False End With End Sub
(NB, ce code est très facile à généré via l'enregistreur de macro)
S'ils sont gérés par Excel, alors il te suffit d'une boucle sur les fichiers de ton répertoire et de copier les feuilles.
Je te donne le code mais n'y reviens plus
Exécute la macro Appel en adaptant le répertoire *****
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub appel() Dim chemin As String Application.ScreenUpdating = False chemin = "D:\NomDuRépertoire\" '***** Lister chemin Application.ScreenUpdating = True End SubTu as tout ce qu'il faut dans l'aide en ligne pour lister les fichier du répertoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Function Lister(chemin As String) Dim Nomfich As String Nomfich = Dir(chemin & "\*.txt") Do While Nomfich <> "" Workbooks.OpenText Filename:=chemin & Nomfich, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _ ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True ActiveSheet.Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Sheets.Count) Nomfich = Dir() Loop End Function
En outre si tu avais enregistré une macro en faisant, tu aurais eu la syntaxe pour l'ouverture des fichiers texte et la copy des feuilles.
Essai de comprendre ce code, il te servira pour lister d'autres types de fichier et à gérer la copie de feuille d'un classeur à l'autre.
Bonne journée
Bonjour,
Merci pour vos réponses, dsl de ne pas avoir répondu avant je n'était pas la.
Je vais essayer et vous tient au courant des éventuelles soucis que je rencontrerais merci
Re bonjour Ouskel'n'or, j'ai essayer la macro mais je n'y comprend pas grand chose sachant que rien ne se lance, je n'ai pas assez d'experience sur VB dsl .
Le but est dans un premier temps de lister les fichiers dans le dossier ? dans ce cas la pourrait- on utiliser une macro qui liste tout les fichiers s contenu dans le dossier et l'utiliser ensuite ?
Merci de me répondre
J'ai deja une macro qui permet de recuperer et de lister les nom des fichiers contenu dans un dossier , serait 'il possible de construire ma macro sur cette base ??
Pour ceux qui veulent l'essayer, elle permet de repertorié et lister les fichiers present dans un dossier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 Function selectFolder() As String Dim myDlgOpen As FileDialog Dim DirName As String selectFolder = "" Set myDlgOpen = Application.FileDialog(msoFileDialogFolderPicker) myDlgOpen.Show If myDlgOpen.SelectedItems.Count > 0 Then DirName = myDlgOpen.SelectedItems.Item(1) End If selectFolder = DirName End Function Sub Liste() Dim ScanFic As Office.FileSearch Dim NomFic As Variant Dim Diag As String Dim Nbr As Long Dim I As Long Dim pathway As String Dim Pathfic As String Dim FileName As String Dim SubFolderAsk As Boolean pathway = selectFolder If Len(pathway) > 0 Then If MsgBox("Voulez-vous appliquer cette tache aux sous-dossiers ?", vbYesNo) = vbYes Then SubFolderAsk = True Else SubFolderAsk = False End If Set ScanFic = Application.FileSearch With ScanFic .NewSearch .LookIn = pathway .SearchSubFolders = SubFolderAsk .MatchTextExactly = True .FileType = msoFileTypeAllFiles Nbr = .Execute Diag = Format(Nbr, "0 ""fichiers trouvés""") I = 2 For Each NomFic In .FoundFiles I = I + 1 FileName = ExtractFileName(NomFic) Pathfic = Left(NomFic, Len(NomFic) - Len(FileName)) Sheets("Sheet1").Cells(I, 2).Value = UCase(Pathfic) Sheets("Sheet1").Cells(I, 3).Value = LCase(FileName) Next MsgBox Diag End With Else MsgBox "Looser !" End If End Sub Public Function ExtractFileName(filespec) As String Dim x As Variant x = Split(filespec, Application.PathSeparator) ExtractFileName = x(UBound(x)) End Function
la fonction "Public Function Lister(chemin As String)" que je t'ai donnée liste les fichiers d'un répertoire et les ouvre. Il suffit de remplacer "chemin = "D:\NomDuRépertoire\" par le chemin de ton répertoire sans oublier "\" à la fin.
Que veux-tu de plus ?
Comprends-tu mieux le code que tu proposes ?Envoyé par Tinien
La macro que j'ai est une macro faite par un ami qui me la expliquer ( a peu prés), mais mon but est de pouvoir rassembler sur une seul feuille les données contenut sur tout les document wordpad contenu dans le dossier et j'y arrive pas .
De plus avec la macro que tu ma proposer la fonction lister bug. ( j'ai Office En anglais).
Si tu ne réponds pas aux questions qu'ils te posent, Tinien, tu vas être mal barré.
Et notamment une réponse qui est essentielle : à quel format sont donc ces fichiers "wordpad" ? Déjà si tu indiquais l'extension ce serait bien (.txt, .rtf, .csv ?).
Les fichiers sont-ils lisibles ou non via le notepad (et non wordpad) ?
Et quand tu dis "C'est un fichier de chiffre séparé par des virgule qui est trés bien géré par excel et qui a l'ouverture permet de bien cadré les nombres dans des colonnes et de les séparé c'est bien pour cela que j'utilise Excel ", s'agit-il du formatage des fichiers à intégrer ou du résultat final que tu veux obtenir ?
Parce que là je me demande si tu n'aurais pas simplement des fichiers csv à intégrer, ce qui est simple à faire mais encore faudrait-il le savoir.![]()
Bonjour neupont,
Les fichiers sont en .dta ; lisible sur notepad et wordpad,
Je te presente une ligne type présente sur les fichiers :
Je posséde plusieurs centaines de fichiers comme sa, contenant un nombre de ligne indéterminée, et je voudrais avoir toutes ces données dans une feuille excel, avec une manipulation a l'ouverture, excel sépare tout :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 212;0000027;0050;40005518; 2752,30; 539,45; 3291,75;941743
Je voudrais donc faire une macro qui permet de faire ceci, merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Workbooks.OpenText FileName:= _ "", Origin:= _ 932, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _ , Space:=False, Other:=False, _ TrailingMinusNumbers:=True
Au vu de la disposition de tes nombres, j'en déduis que la lecture de tes fichiers avec l'instruction Open est la seule à adopter.
Bref, tu vas devoir potasser l'aide en ligne, les tutos et les FAQ (à mon avis de l'aide pour savoir se servir de la lecture de fichiers c'est pas ce qui manque), et il faut également que tu maîtrise un minimum la manipulation de chaînes de caractères (là encore il doit y avoir beaucoup d'aides, surtout que l'aide en ligne donne des exemples).
Je te dis juste comment je procèderais. je lirais tout le fichier d'un seul coup (avec l'instruction Get) en le stockant dans une seule variable, et ensuite je ferais une boucle qui en extrait un à un les différents nombres pour les coller dans la feuille Excel.
Ce n'est pas insurmontable, mais je n'ai pas envie de passer 30-60 minutes à te pondre un code tout cuit que tu ne comprendras pas.
Le probleme est que je n'est pas accés a l'aide en ligne :s donc je n'arrive pas a trouver ce qu'il faut pourrais tu m'aider d'avantage ou pas ?
Tu as l'aide en ligne de VBA (qui est sur ton PC en apopuyant sur F1), les tutos et les FAQ du site: je pense que tu peux chercher un peu quand même.
C'est pas compliqué pourtant: tu ouvres ton fichier, tu le lis et mémorise son contenu dans une variable, tu le ferme et tu découpe la variable en morceaux que tu colles dans Excel. Rien de bien sorcier, si on s'en donne les moyens.
De l'aide? Tu auras besoin de:
-Open, Get et Close pour ton fichier
-des fonctions de traitement des chaînes de caractères: Instr, Mid (ou Left ça dépend des goûts)
-et c'est tout!
Partager