Valeur variable dans une macro

choufleuri

XLDnaute Nouveau
Re bonjour à tous,

Puisque vous êtes si fort, un autre petit problème que je n'arrive pas à résoudre.

J'ai un classeur (devis 2009) dans lequel j'ai créé une macro qui enregistre sous un nouveau nom (celui du nouveau client REF NOM CLIENT) et qui place ce nouveau classeur dans un dossier de mon PC, dossier de stockage donc de tous les devis client de mon entreprise.

Le problème est que dans le classeur "parent" j'ai aussi une MACRO qui valide un devis, et qui une fois le devis accepté par le client, incrémente un compteur FACTURE et place toutes les données de l'affaire dans un autre classeur spécifique (FACTURES) de façon à avoir un tableau de bord financier de toutes les affaires.

Cette Macro ne fonctionne pas car le contenu de la macro contient la référence du classeur parent, donc je suis obligé chaque fois de modifier manuellement la macro en mettant le nouveau nom de classeur crée.

Je me demandais s'il était possible lors de la création du classeur fils d'intégrer une variable pour qu'une fois le "classeur fils" enregistré le contenu de la macro soit modifié avec le nom du nouveau classeur.

J'espère avoir été clair dans mes explications, je vous laisse ci-après le contenu de la macro.

EN GRAS ce qui devrait varié

et sachant que la variable se trouve dans le classeur parent
en K2 et dans la feuille CLIENT


Sub validation_facture()
'
' validation_facture Macro
'

'
Windows("Factures.xlsx").Activate
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Windows("DEVIS 2009.xls").Activate
Range("A53:AH53").Select
Selection.Copy
Windows("Factures.xlsx").Activate
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A3").Select
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Windows("DEVIS 2009.xls").Activate
ActiveWindow.SmallScroll Down:=-27
End Sub


Accessoirement quelle est la commande à rajouter pour que lors du collage
des infos dans le classeur facture, cette nouvelle ligne insérer prenne la mise en forme
des lignes en dessous?????

Merci pour ceux qui auront le courage de me lire jusqu'au bout.

Choufleuri
 
Dernière édition:

choufleuri

XLDnaute Nouveau
Re : Valeur variable dans une macro

Je n'ai pas essayé la méthode de Jean-Marcel, je verrais ça demain matin; mais par contre je vais tenter de vous expliquer un peu mieux, mais pas facile!!!

En fait j'ai un classeur DEVIS 2009
Lorsque je dois créer un nouveau devis, j'ai fait une MACRO qui copie ce classeur dans un dossier de mon PC et qui le renomme avec le nom du client.
donc DEVIS 2009 devient par ex: DUSCHMOLL

Dans ce classeur DEVIS 2009 il y a une macro résidente, qui me permet, lorsque le devis est accepté par le client, d'incrémenter un compteur de facture et d'envoyer dans le classeur FACTURE toutes les informations comptables du nouveau client.

Le problème vient du fait que la macro écrite dans DEVIS 2009 ne fonctionne plus dans le nouveau classeur puisque son nom a changé.
ex: dans le classeur DUSCHMOLL la macro appelle "Windows("DEVIS 2009.xls").Activate"
bien sur si je change manuellement la macro en mettant "Windows("DUSCHMOLL.xls").Activate" là ça fonctionne. d'où ma question, est il possible de remédier a la modif manuelle en modifiant la macro dans le classeur DEVIS 2009??

J'espère avoir été plus clair, j'avoue que cela est difficile d'expliquer mon problème; j'ai peut être mal architecturé mon système au départ.

Merci en tous cas de votre aide

Choufleuri
 
Dernière édition:

choufleuri

XLDnaute Nouveau
Re : Valeur variable dans une macro

Je m'enmêle les pinceaux avec cette histoire!!!! ;-)

En fait j'ai 2 macros dans le classeur DEVIS 2009 :

CREATION D'UN NOUVEAU CLASSEUR DANS UN DOSSIER DU PC
une qui crée une copie de DEVIS 2009 dans un dossier bien spécifique de mon PC, après avoir rentré toutes les informations clients. et renommer cette copie du nom du client ex:(DUSCHMOLL).


VALIDATION FACTURE

une deuxième macro, que je lance dans le classeur copié (DUSCHMOLL) lorsque ce devis est validé, en effet je la lance par un bouton, mais le problème est que dans le code ce cette deuxième macro, le classeur appelé par la macro est DEVIS 2009 alors qu'il devrait être DUSCHMOLL.

Merci de ton aide Jean-Marcel
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
80

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib