Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Besoin d'aide pour une macro complexe

  • Initiateur de la discussion Initiateur de la discussion Malone
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Malone

XLDnaute Nouveau
Bonjour,

Je sollicite l'aide des personnes qui voudront bien m'aider sur une macro qui devient un peu plus complexe que ce que j'ai fait jusqu'à maintenant. C'est pour ça que je préfère ouvrir un fil de discussion unique plutot que 10 post différents.

Explication :

Je dois mettre à jours une trentaine de fichier différent de la même manière à partir d'un classeur Excel unique (source) qui contient divers informations comptable.

1-/ Ce fichier est mis à jour tout les mois, le fichier change de place et de nom mais l'arboressence des dossiers est toujours la même. Par exemple on aura
C:/reporting/0109/nomsource0109.xls
C:/reporting/0209/nomsource0209.xls
Etc.
Je pense pouvoir faire ça mais je n'y suis pas encore

2-/Le fichier est mis à jour de la façon suivante:
A partir d'une msgbox l'utilisateur indique le mois à mettre à jour ex: 0909
La macro devra modifier les liaisons des fichiers (simple ctlr+H) et copier une ligne de formule sur le mois concerné dans le fichier.

Ce que j'essai de faire pour l'instant c'est de retrouver le mois concerné dans le fichier pour ensuite coller les formules (en jaune sur les violettes) avec le nouveau lien et réaliser divers petit calcul en automatique.

Mon problème est que ma LOOP bug lorsque je recherche le mois rentré dans la msgbox pour effectuer les actions

Je cherche ici à atteindre le mois 02/08 de la façon suivante :

Tant que la cellule est différente de "02/08" on passe une ligne en dessou et lorsqu'il là trouve on fera les actions de copie de formule.

Vous trouverez le fichier ci-joint
(j'ai du supprimer bcp de formule pr que le fichier soit moin lourd)


Je ne demande pas à ce que l'on me construise le fichier en entier mais juste un peu d'assistance.
Je vous remercie pour votre aide

Malone
 

Pièces jointes

Re : Besoin d'aide pour une macro complexe

Bonjour Messieurs!

J'ai trouvé le problème, j'aurai dut y penser plutôt car ce n'est pas la première fois que j'y suis confronté!

En fait après avoir ouvert le premier fichier la macro restait sur le premier fichier ActualV1 donc c'est normal qu'elle ne trouve pas la V2 à ouvrir, j'ai donc ajouté vers la fin de la loop un retour sur le fichier de base Maj Amortissement2

Code:
Do While Cells(LL, CC) <> "FIN"
    'Determination du fichier
    NomFichierF = Cells(LL, CC)
    
    CheminF = "C:\Documents and Settings\127003409\Desktop\Action en cours\New Methode AMORTISSEMENT\"
    Workbooks.Open Filename:=CheminF & NomFichierF

'On retourne sur le fichier MAJ Amortissement et la feuille Source qui détient les noms des fichiers suivant.
Windows("MAJ Amortissement2.xls").Activate
Sheets("Source").Select

    'Ligne suivante
    LL = LL + 1

Tout est rentré dans l'ordre et je peux avancer

Bonne journée 😀
 
Re : Besoin d'aide pour une macro complexe

Bonjour Malone,

Plus simple, plus rapide:

Sans oublier les . (point) devant les "Cells" (à défaut de les mettre sur les i😀)

ThisWorkbook référence le classeur qui contient la macro.
Code:
'Travaille à partir de ce classeur et de sa feuille "Source"
With ThisWorkBook.Sheets("Source")
Do While .Cells(LL, CC) <> "FIN"
    'Determination du fichier
    NomFichierF = .Cells(LL, CC)
    
    CheminF = "C:\Documents and Settings\127003409\Desktop\Action en cours\New Methode AMORTISSEMENT\"
    Workbooks.Open Filename:=CheminF & NomFichierF



    'Ligne suivante
    LL = LL + 1
    
Loop
End With

A+
 
Re : Besoin d'aide pour une macro complexe

Hello,

J'ai un problème dans ma macro, comme la macro est censé ouvrir différent fichier je dois redéfinir les fichiers à ouvrir avec la variable Nomfichier mais lorsque je fait :
Windows("NomFichierF").Activate
Cela ne fonctionne pas car la macro crois qu'il faut ouvrir une fichier qui se nomme NomFichierF.xls

J'ai essayé de faire un concatener de "&NomFichierF&" et créé une seconde variable NomFichierF2 = "&NomFichierF&" pour ouvrir Windows("NomFichierF2").Activate

mais ça ne passe pas évidement. Le problème est qu'il manque les guillements pour que la macro comprenne

J'espère avoir été clair dans mes explications

merci de votre aide
 
Re : Besoin d'aide pour une macro complexe

Je crois que le problème vient d'autre part car excel rajoute automatiquement les guillements à une variable, je creuse un peu...

C'est bon j'ai trouvé, ça bugais à cause d'une condition non remplie
 
Dernière édition:
Re : Besoin d'aide pour une macro complexe

Bonsoir Malone,

Je ne comprends pas bien ce que tu voulais car lorsque tu fais:

Code:
 Workbooks.Open Filename:=CheminF & NomFichierF
Le classeur devient actif donc pas besoin d'activer sa fenêtre, normalement.

Sinon la syntaxe pour
Code:
Windows("NomFichierF").Activate
c'est:
Code:
Windows(NomFichierF).Activate
Sans les guillemets, tout simplement.
A+
 
Re : Besoin d'aide pour une macro complexe

Salut Hasco,

Effectivement c'est ce que j'ai fais par la suite, le problème c'est qu'une fois arrivé sur la variable "mois" aucune valeur ne s'incrémentait alors qu'avant que je ne combine deux codes cela fonctionnait très bien. En remplacant "mois" par "moisval" ça foncionne.

Je ne sais pas si le problème vient du fait que certaines variables soient programmées dans VBA. Je me rappel qu'une fois j'ai nommé une variable "date" pour une msgbox et lorsque je saisissait une date mon horloge windows changeait aussi !

Bonne journée 😉
 
Re : Besoin d'aide pour une macro complexe

Bonjour Malone,

Je ne comprends pas. Nous parlions de NomFichierF et maintenant tu me parle de "mois"!????😕

Ce qui est sûr c'est que vba n'aime pas qu'on donne à une variable ou une macro ou fonction (ou autre) un mot réservé du langage comme Date...

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
299
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…