Mettre à jour des données sous Excel VBA

Résolu
louboul Messages postés 7 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 31 juillet 2012 - 23 juil. 2012 à 14:54
louboul Messages postés 7 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 31 juillet 2012 - 31 juil. 2012 à 15:21
Bonjour,
J'ai créée sous Excel VBA, une application contenant plusieurs fichiers sous différents dossiers.
Un de ces dossiers concerne l'année qui doit être traitée. Mon souci actuel est de devoir changer manuellement le chemin pour modifier l'année.
Aussi, je cherche comment écrire du code VBA, pour éviter toutes ces manipulations.
Merci par avance.


louboul

8 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
24 juil. 2012 à 16:56
@louboul, pourrais-tu expliquer un peu plus ?


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
23 juil. 2012 à 15:25
Bonjour.

Aucun rapport avec le C++, je déplace de "C++" vers "Visual Basic - VBA".
Merci à l'avenir de faire attention à la section ou tu postes.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
louboul Messages postés 7 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 31 juillet 2012
25 juil. 2012 à 14:48
Bonjour,
Mon application se décompose ainsi:
C:\Gestion\Annee2012\agents\x fichiers
C:\Gestion\Annee2012\voitures\x fichiers
C:\Gestion\Annee2012\horaires\x fichiers

Tous les fichiers contiennent de nombreuses macros dans lesquelles on retrouve le chemin indiqué ci dessus; mon but serait d'avoir un seul répertoire Gestion qui pourrait servir quelque
soit l'année, car a chaque changement d'année, je dois manuellement modifier le n° de l'année.
Merci
louboul
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
25 juil. 2012 à 22:51
Ça dépend où tu mets ces chemins.
Si tu les mets directement dans ton code, ce pourrait être quelque chose du genre:
"C:\Gestion\Annee" & Year(Date) & "\agents\x fichiers

Par contre, tu pourrais avoir une feuille qui contiendrait ces chemins et que tu lirais à partir de ta ou tes macros. Tu n'aurais qu'à changer la date dans une colonne d'Excel plutôt que partout dans tes macros. Ça me semble plus simple ainsi...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
louboul Messages postés 7 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 31 juillet 2012
29 juil. 2012 à 09:28
Bonjour,
Merci pour ces 2 hypothèses, je vais les tester...
A bientôt.


louboul
0
louboul Messages postés 7 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 31 juillet 2012
30 juil. 2012 à 20:27
Bonsoir,
J'ai testé la 1ére solution, et cela marche, mais je vais devoir intervenir sur toutes les macros sur lesquelles Annee 2012 doit être modifiée.
Par contre je ne vois pas comment écrire le code qui irait chercher le chemin sur une simple feuille de calcul.
A bientôt.

louboul
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
30 juil. 2012 à 23:31
Tu n'as qu'à créer une nouvelle feuille dans laquelle tu inscris tous les chemins et noms des fichiers tels que l'as décris au départ
C:\Gestion\Annee2012\agents\x fichiers
C:\Gestion\Annee2012\voitures\x fichiers
C:\Gestion\Annee2012\horaires\x fichiers

Donc, lorsque tu dois changer l'année des fichiers à lire, tu fais un Ctrl-H pour remplacer 2012 par 2013, disons...

Ton code n'a qu'à boucler la colonne où tu auras mis ces chemins/fichiers et faire ce qu'il y a à faire avec.

Je ne sais pas trop ce que doit faire ton ou tes programmes, mais tu peux soit boucler la colonne
nbLignes = MaFeuille.Cells(rows.count, "A").end(xlup).row
For i = 1 to nblignes
   Call TraiterFichier(MaFeuille.Range("A" & I))
next


soit transférer ces chemins dans un tableau et boucler ce tableau
MonTablo = MaFeuille.Range("A1:A" & nblignes).Value
Call TraiterFichier(MonTablo)


Mais peut-être ai-je mal compris le problème...(?)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
louboul Messages postés 7 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 31 juillet 2012
31 juil. 2012 à 15:21
Bonjour,
En fait, dans chaque dossier, agents, voitures, horaires, se trouvent environ 15 fichiers dans
lesquels les macros vont chercher l'information désirée.
La 1ère solution que j'ai testée fonctionne bien, mais je suis obligé de modifier le code de toutes les macros concernées, et elles sont nombreuses par fichiers.
A priori, quelle que soit la solution retenue, il faudra intervenir sur chacune des macros.
Merci pour les infos.


louboul
0
Rejoignez-nous