[vba] autoopen mis a jour

R

Ronan

Guest
Bonjour a tous,

j'ai un fichier csv ( par exemple test.csv) qui est lancé automatiquement dans Excel. Ce fichier contient une macro autoopen qui permet de faire un tableau directement en fonction de ces données !

Or ce fichier peut etre modifié via un traitement de texte (par exemple ajout ou suprresion d'une ligne)

Je voudrais donc que lorsqe ce fichier s'ouvre une fois modifié, la macro autoopen gere cet évenement et refait le tableau avec les nouvelles données!

Cela est il possible ??

Merci de votre aide !
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Ronan

La réponse en l'état de ton énnoncé est non.

Tu ne pouuras pas inclure de macro dans un fichier CSV.

Par contre tu devrais t'orienter vers un classeur 'Interface.xls' qui ouvrira ce CSV et gérera la/les mise(s) en forme nécessaire(s) pour ton tableau...

Bon Après Midi
@+Thierry
 
R

Ronan

Guest
Salut Thierry et merci de ton aide,

en fait j'ai entendu parler des macros dont une macro nommé 'AutoOpen' qui permet d'etre lancée juste au démarrage de ce fichier.

Ce que je pensais, c'est d'affecter une macro 'autoOpen' relatif a c e fichier ce qui ferait qu'a chaque ouverture, un tableau est créé en fonction des nouvelles données.

Je me disais qu'il existe bien une solution en programmation VBA permettant de calculer le nombre de ligne et en fonction de ca me générer le tableau (voir meme le graphique corespondant)

C'est bien cela qui est impossible ?
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Ronan

Non, ce qui est Impossible :

=> inclure de macro dans un fichier CSV


Oui, ce qui est Possible :

=> programmation VBA permettant de calculer le nombre de
ligne

Exemple :

Sub NBligne ()
Dim L as Long

L = Range('A65536').End(XlUp).Row

MsgBox L & ' est la dernière ligne non vide de la Feuille Active'

End Sub

...

Sinon AutoOpen est à proscrire... Remplacée par une Macro évènementielle 'WorkBook_Open' depuis Excel 97

Exemple :


Bon Après Midi
@+Thierry

Message édité par: _Thierry, à: 08/07/2005 15:06
 
R

Ronan

Guest
Ok merci

donc la meilleure solution est celle que tu disais d'avoir une interface.
Ainsi, j'appuis sur un bouton qui va me chercher le fichier voulu puis effectue les traitements .

Tous ca de mniere automatique!

C'est bien ca ?
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Ronan,

Oui c'est bien ceci...

Exemple dans ton Fichier 'InterFace.xls' tu exécutes ce Code

Option Explicit

Const MyCSV As String = 'C:\\Documents and Settings\\TE\\My Documents\\Book1.csv' 'A ADAPTER

Sub OpenMyCSV()
Dim L As Long
Dim i As Long

    Workbooks.Open MyCSV

            L = Range('A65536').End(xlUp).Row

               
For i = 1 To L
                    Range('A' & i).Interior.ColorIndex = 3
               
Next

End Sub

Ce code mettra en Rouge l'Interieur des Cellules de la première colonne de ton fichier CSV 'Book1.csv'....

Bon Week End
@+Thierry

PS Attention au Chemin dans la Constante... les Slash sont Mangés dans ce Forum !!!
 
R

Ronan

Guest
Merci beaucoup de ton aide !!

Tu auras remarqué que je suis pas tres fort en VBA mais il faut perseverer !! et je vais y arriver !

Je me demandais quelque chose, quand tu parles d 'interface.xls' cela signifie quoi en fait? c'est un fichier ? je lance interface.xls en cliquant dessus et cela me déclenche automatiquement mes macros que tu m' as décrit plus haut ? ce qui me permet d'avoir mon fichier formater correctement ?

Merci beaucoup, ces questions peuvent paraitre 'bete' mais il faut que je passe par la !! désolé
 

_Thierry

XLDnaute Barbatruc
Repose en paix
RE RE RE Ronan !!! ;)

Oui tout à fait !

En fait il peut se nommer 'Ronan.xls' ou 'toto.xls' c'est un simple fichier Excel, tu colles dedans une macro comme celles que je t'ai proposée, et tu affectes un Bouton à cette macro...

Si tu ne veux pas de bouton, alors remontes à mon Post où je te montre le GIF animé, tu mets ta macro à la place du MsgBox 'Hello'...

Ce fichier Excel deviendra ton 'Interface' de pilotage de ton fichier CSV...

Bonne Fin de Vendredi
@+Thierry
 
R

Ronan

Guest
Rebonjour tous le monde,

j'ai réalisé une macro avec l'enregistreur de macro qui me permet d'importer un fichier .csv. Cette macro sépare bien toutes les données en mettant une seule par case.

Par contre lorsque je modifie le fichier a importer, la macro n'en tient pas compte.

Comment je pourrais faire pour que cet macro importe bien a chaque fois le fichier modifié ??

Merci.
 
R

Ronan

Guest
Bonjour tous le monde,

J'ai pas mal avancé et je me replonge dans le code VBA,

Je teste actuellement le code de Thierry,

Sub NBligne ()
Dim L as Long

L = Range('A65536').End(XlUp).Row

*****

End Sub


Mais je voudrais, a la place des '*****' avoir un code qui me permettent de récupérer les données qui se trouvent dans la cellule A ou B toujours a la ligne L

Mais je n'arrive pas a m'en sortir!

Si quelqu'un peut m'aider
Merci de votre aide.

Ronan
 

Discussions similaires

Statistiques des forums

Discussions
312 589
Messages
2 090 027
Membres
104 350
dernier inscrit
mohamedismaelmesbeh@gmail