macro recopiant texte du notepad

N

Nann

Guest
Bonjour tout le monde,


Je me lance dans la programmation en vba 'avec les yeux plus gros que le ventre' probablement.

J'aurais besoin d'un bon coup de main pour plusieur sujets
mais le premier qui me préoccupe est celui-ci:

Je désire savoir si il existe une ou plusieur manière de récuppérer le contenue complet d'un fichier ouvert sous notepad et de le coller sous excel par le biais d'une macro :eek:
 

albert

XLDnaute Occasionnel
bonsoir Nann,

je n'ai pas notepad, mais je suppose que tu l'enregistres en .txt ?

dans ce cas, tu enregistres une macro(outils/macro/nouvelle macro, puis tu ouvres ton fichier, tu convertis le .txt (données/convertir; ensuite tu copies le contenu obtenu pour le coller dans le classeur qui contient la macro
puis enfin, tu arrêtes la macro et tu l'enregistres.
si tu es en panne, envoie un fichier notepad en zip avec du contenu, pour faire un exemple

albert
 
N

Nann

Guest
Bonsoir Albert,

En fait ce sont des fichiers avec differentes extension exemple:
*.gen , *.pcb se sont des fichiers issus d'un machine

mais en fait ce n'est pas de notepad dont je me sert
mais le bloc-notes de windows car quand je double clique sur ce fichier , WIN me propose d'utiliser le web pour trouver le soft approprié ou de selectionner un fichier dans une liste
et j'ai sélectionné bloc-notes et non comme je l'avais écris précédement Notepad désolé

En fait je veux juste récuppérer le contenue du fichier ouvert avec un macro lancée sous Excel et recopier le tout sur Excel


Merci pour ton début d'aide ;)
 

albert

XLDnaute Occasionnel
En effe,t il y a, NOTEPAD.EXE dans C:\\WINDOWS, qui ouvre le bloc-notes (je ne m’en sers jamais)

Je t’envoie un exemple. Il faut mettre le dossier bloc-notes sur C:\\
puis tu exécutes la macro1
Code:
Sub Macro1()

   ' ChDir 'C:\\bloc-notes'
    Workbooks.OpenText Filename:='C:\\bloc-notes\\transfert.txt', Origin:= _
        xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
    
    '----------------
     Windows('transfert.txt').Activate
    Range('A1').Select
    Selection.Copy
    Windows('Classeur1.xls').Activate
    Range('A1').Select
    ActiveSheet.Paste
End Sub
 
M

max

Guest
bonjour
et merci de t'être occupé de mon problème qu'apparemment ta macro n'a pas vraiment solutionné car elle bloque en cours d'éxécution (voir capture d'écran ds fichier joint).
Le chemin de notepad.exe est
c:\\windows\\system32\\notepad.exe
en dehors du fait que la macro bloque sur un argument que je ne maîtrise absolument pas, est-ce ce chemin que je devrais introduire ds la macro pour ouvrir 1.txt et 2.txt ensuite ???
merci encore pour ton aide
cordialement
max
:)
 

albert

XLDnaute Occasionnel
bonjour max,

Je n’ai pas trouvé la capture d’écran.
:)
Ce que tu peux faire, c’est de signaler la ligne sur laquelle il y a bug, c’est le meilleur moyen pour trouver une solution.

Le chemin de notepad.exe que tu donnes est utile si tu veux ouvrir une feuille vierge, dans ce cas tu utilises shell
Lien supprimé

Si tu veux ouvrir 1.txt et 2.txt ensuite, ce sont des fichiers que tu as toi même enregistrés, il faut donc que tu indiques le chemin de l’endroi où tu as enregistré ces fichiers.
Tu n’as pa réussi à t’en sortir avec la réponse de Gibson94 ? Lien supprimé
 
M

max

Guest
Sub Macro1()

' ChDir 'C:\\bloc-notes'
Workbooks.OpenText Filename:='C:\\bloc-notes\\transfert.txt', Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True

'----------------
Windows('transfert.txt').Activate
Range('A1').Select
Selection.Copy
Windows('Classeur1.xls').Activate
Range('A1').Select
ActiveSheet.Paste
End Sub
_______________________________________________________________
TrailingMinusNumbers:= est surligné à l'arrêt de la macro avec le message suivant :
Erreur de compilation:
Argument nommé introuvable
 

albert

XLDnaute Occasionnel
supprime la ligne qui ne marche pas, tu tois avoir une version différente de la mienne (excel 2003,
Code:
Workbooks.OpenText Filename:='C:\\bloc-notes\\transfert.txt', Origin:= _
        xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)
    
    '----------------
     Windows('transfert.txt').Activate
    Range('A1').Select
    Selection.Copy
    Windows('Classeur1.xls').Activate
    Range('A1').Select
    ActiveSheet.Paste
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Max, Albert, le Forum

En fait NotePad ou Bloc-Notes c'est exactement la même chose, c'est simplement le nom français.

Sinon une autre approche, car je passerai plutôt par un Statement Open qui t'enverrait directement les données dans la Feuille Excel Voulue(ici 'Collecting')

Option Explicit

Const TheFullPath As String = 'C:\Documents and Settingste\Thierry\My Documents\TheFile.gen' '<<< A Adapter
Const TheSheetName As String = 'Collecting'

Sub ImportTXT()
Dim WSImport As Worksheet
Dim Record As String
Dim Container As Variant
Dim i As Integer, ii As Integer, iii As Integer

i = 1

Set WSImport = Worksheets(TheSheetName)

Open TheFullPath For Input As #1

&nbsp; &nbsp;
Do While Not EOF(1)
&nbsp; &nbsp; &nbsp; &nbsp; Line
Input #1, Record
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; Container = Split(Record, Chr(32))
'<<<< Chr(32) = Space
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'(59 pour le point virgule, 9 pour Tabulation ...)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
For ii = 1 To UBound(Container) + 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; iii = ii - 1
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WSImport.Cells(i, ii) = Container(iii)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next ii
&nbsp; &nbsp; i = i + 1
&nbsp; &nbsp;
Loop
Close #1

End Sub


Bon Dimanche
[ol]@+Thierry[/ol]
 
M

max

Guest
OK, j'ai pu obtenir un résultat enfin satisfaisant bien que ne reprenant pas ta suggestion ... ton aide m'a quand même été très précieuse, merci donc et bonne soirée.
max


Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 02/10/2005 par max
'

'
ChDir 'C:\\bloc-notes'
Workbooks.OpenText Filename:='C:\\bloc-notes\\transfert.txt', Origin:= _
xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, _
1), Array(12, 1), Array(15, 1), Array(21, 1), Array(26, 1))
Windows('Classeur1.xls').Activate
End Sub

:)
 
M

max

Guest
Merci pour ton aide, j'ai pu résoudre mon problème ...
Bonne soirée.
Ce forum est vraiment sympa ...
max


Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 02/10/2005 par max
'

'
ChDir 'C:\\bloc-notes'
Workbooks.OpenText Filename:='C:\\bloc-notes\\transfert.txt', Origin:= _
xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, _
1), Array(12, 1), Array(15, 1), Array(21, 1), Array(26, 1))
Windows('Classeur1.xls').Activate
End Sub
 

albert

XLDnaute Occasionnel
Bonsoir max, @+Thierry, le forum,

Content que ton pb soit résolu.
Si tu as 2 fichiers, il te faudra faire une boucle avec la solution de Gibson94, et si tu veux faire de gros progrès, travaille la solution @+Thierry

« Ce forum est vraiment sympa ... »
J’ai tout appris sur ce forum, avec Vériland, Ti, @+Thierry, Monique… et tant d’autres que je ne saurais tous les citer.
A présent, je commence à me débrouiller un peu, à mon tour d’aider ceux qui galèrent (dans la limite de mes compétences)

albert
 

Discussions similaires

Statistiques des forums

Discussions
312 473
Messages
2 088 716
Membres
103 932
dernier inscrit
clotilde26