Besoin d'aide pour EXCEL//VB

Besoin d'aide pour EXCEL//VB - Divers - Programmation

Marsh Posté le 05-01-2005 à 17:25:49    

Bonjour à tous !
 
J’aurais besoin de vos lumières !
J’ai un petit TAF et je dois avouer que mes connaissances sont bien maigres dans le domaine de l’informatique.
 
Alors voilà ma plaie :
 
Je dois faire une petite application qui lit et traite des données présentent dans différents fichiers .txt (3 pour être précis) et le remet dans un autre fichier .txt
 
J’avais donc pensé au tout bête Excel complété par Visual Basic Editor.
 
Pour faire simple :
3 fichiers à importer sous Excel et à traiter. (fichier 1, fichier 2 et fichier 3)
1 fichier à exporter (fichier_fin)
 
Le problème n°1 :
Je n’arrive pas à importer le fichier 1 par code VB (oui oui je suis incompétent) , juste par macro, qui me met alors les données dans un autre projet, m’obligeant ensuite de faire une copie vers la feuille 1 puis de fermer le nouveau projet. Qui me met ensuite le message suivant :
Le Presse-papiers contient une grande quantité d’informations. Voulez-vous avoir la possibilité de coller ces informations dans une autre document ultérieurement ?
 

Citation :

*Pour les enregistrer dans le Presse-papiers afin de pouvoir les coller ultérieurement, cliquer sur Oui.
*Pour les supprimer du Presse-papiers et libérer de la mémoire, cliquez sur Non.
  Oui  Non  Annuler


 
 
Dans le fichier 1 il y a un nombre conséquent de ligne qui se présente chacune sous cette forme :

Citation :

BCV0412024115207409030         0,0000        -2,0700         0,00001


 
Voici ce que donne la macro en VB :
 

Citation :

Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 05/01/05 par s011037
'
 
'
    Workbooks.OpenText FileName:="C:\Rep\fichier1.txt", Origin _
        :=xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array _
        (0, 1), Array(26, 1), Array(37, 1), Array(56, 1))
    Cells.Select
    Selection.Copy
    ActiveWindow.WindowState = xlNormal
    Windows("Classeur4" ).Activate
    Range("A1" ).Select
    ActiveSheet.Paste
    ActiveWindow.WindowState = xlMinimized
    ActiveWindow.Close
    ActiveWindow.WindowState = xlNormal
End Sub


Elle se trouve dans le répertoire « module » du projet.
 
Si quelqu’un donc pourrait me montrer comment faire le code VB ou bien une macro qui mette directement dans la feuille 1 du classeur, ça serait fort aimable.  :D  

Reply

Marsh Posté le 05-01-2005 à 17:25:49   

Reply

Marsh Posté le 05-01-2005 à 20:15:23    

Ou bien même si vous avez une autre solution en tête, je suis preneur :)

Reply

Marsh Posté le 05-01-2005 à 20:40:37    

j'ai vu dans le VBA d'excel 2000 la fonction OpenTextFile qui permet de lire un fichier texte :

Code :
  1. Const ForReading = 1, ForWriting = 2, ForAppending = 3
  2.     Dim fs, f
  3.     Set fs = CreateObject("Scripting.FileSystemObject" )
  4.     Set openedFile = fs.OpenTextFile("c:\IS0.log", ForReading)
  5.     s = openedFile.ReadLine


pour toutes les méthodes/propriété pour lire le fichier ouvert aller voir http://msdn.microsoft.com/library/ [...] stream.asp
Après tu n'as qu'à utiliser Split pour séparer les colonnes... ça permettra de faire les choses plus proprement surement :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed