Utiliser une même macro avec plusieurs variable

Bonjour,

Pour optimiser ma rédaction de macros, j'ai réussi à faire dépendre une macro d'une variable String. Ainsi, il me suffit actuellement de copier-coller cette macro et de changer seulement le valeur de ce String pour adapter tout le fonctionnement de la macro.

Dans mes définitions de variables, il y a :

Dim QUEL As String

QUEL = "SAUVEGARDE"

Ainsi, j'ai juste à changer la valeur de QUEL pour que le reste de la macro tourne autour de SAUVEGARDE, ou toute autre valeur que j'indique.

Je voudrais savoir comment pousser cette optimisation, et simplement indiquer la valeur de QUEL et y appliquer la "macro source",

J'aurais ainsi la macro "QUEL_SOURCE", et les macros "QUEL_SAUVEGARDE" et "QUEL_CREATION", où respectivement la macro QUEL_SOURCE serait exécutée avec la valeur "SAUVEGARDE" pour QUEL, et "CREATION" pour QUEL.

Lors de mises à jour de la macro, j'aurais ainsi seulement à modifier QUEL_SOURCE, pour que toutes les macros en dépendant

prennent en compte les modifications.

Mes quelques recherches me mènent à supposer que je dois déclarer des éléments en Public, mais je sais pas lesquel, ni comment établir le lien entre la source et ses différentes occurences.

J'espère avoir été assez clair.

Merci de votre aide.

Bonjour Tristan2 le forum

le fichier il est ou??

la macro elle est ou ??

un fichier en pièce jointe les explications claires dedans et on va t'aider

des explications simples et précises STP

a+

Papou

Bonjour,

Tes explications sont, pour moi, assez confuses, désolé !

Postes un petit fichier exemple avec le type de cheminement que tu souhaites car il est possible que tes macros demandent un ou plusieurs arguments afin d'arriver à tes fins.

Tu peu avoir une macro principale qui va appeler d'autres macro en fonction des valeurs des arguments qu'elle reçoit !

Bonjour à tous,

effectivement très confus... Avec ce que j'ai compris après plusieurs relectures :

Sub Quel_Sauvegarde()
    Quel "Sauvegarde"
    Quel "Création"
End Sub

Sub Quel(mot As String)
    MsgBox mot
End Sub

eric

Bonjour,

Voici ma macro :

Sub CALENDAR_SAVE_Click()

'HHHHHHHHHHHHHHHHHHH DEBUT DEFINITION CALENDRIERS HHHHHHHHHHHHHHHHHHH
'LISTE DES MARQUEURS DE POSITION DES CALENDRIERS
Dim POS_QUOT As Integer

'LISTE DES NOMS DES CALENDRIERS
Dim QUOT As String

'DEFINITION DES NOMS DES CALENDRIERS
QUOT = "_QUOTIDIEN"

'DEFINITION DES MARQUEURS DE POSITION DES CALENDRIERS
POS_QUOT = Sheets("CONFIG").Columns("A").Find(QUOT, , xlValues, xlWhole).Row

'HHHHHHHHHHHHHHHHHHH FIN DEFINITION CALENDRIERS HHHHHHHHHHHHHHHHHHH

'IDENTIFIANT DE LA FREQUENCE
Dim POS_FREQ As Integer
Dim FREQ As String, QUEL_FREQ As String

'SELECTION DE LA BOX CIBLEE
QUEL_FREQ = "FREQUENCE DE SAUVEGARDE TSM"

'POSITION DE LA FREQUENCE CIBLEE
POS_FREQ = Sheets("CONFIG").Columns("C").Find(QUEL_FREQ, , xlValues, xlWhole).Row + 1

'VALEUR DE LA FREQUENCE CIBLEE
FREQ = Sheets("CONFIG").Range("C" & POS_FREQ)

Select Case FREQ

        Case Is = "QUOTIDIEN"
        Application.DisplayAlerts = False
        Sheets("CONFIG").Range("B" & POS_QUOT & ":D" & POS_QUOT).Copy Sheets("CONFIG").Range("C" & POS_FREQ + 2 & ":D" & POS_FREQ + 2)
        Application.DisplayAlerts = True

    End Select

End Sub

J'ai écrit (...copié-collé) plusieurs fois cette macro, et dans chaque occurrence j'ai juste changé la valeur de la variable QUEL_FREQ.

Au lieu de copier-coller mon modèle, je voudrais savoir s'il est possible de l'appeler, en indiquant seulement la valeur de la variable QUEL_FREQ.

Dans Unix, que je connais mieux que VBA, si ça peut aider, ça serait comme l'argument d'un script:

J'aurais le script CALENDRIER.ksh qui contiendrait:

echo ceci est le calendrier de $1 .

Et j'aurais plusieurs scripts qui y feraient appel:

TSM.ksh contiendrait :

CALENDRIER.ksh TSM

Et il afficherait "ceci est le calendrier de TSM ."

REBOOT.ksh contiendrait:

CALENDRIER.ksh REBOOT

Et il afficherait "ceci est le calendrier de REBOOT ."

Là, je cherche à obtenir une macro CALENDRIER, que je pourrais utiliser avec différentes valeurs de QUEL_FREQ. La réponse que je cherche est probablement proche de ce qu'a écrit eriiic.

Merci de votre aide et du temps passé à me lire.

Bonjour,

La réponse que je cherche est probablement proche de ce qu'a écrit eriiic

Et tu n'arrives pas à le faire ?

eric

Je n'avais pas testé ta proposition, mais ta question m'a poussé à le faire, et c'est exactement ce que je cherchais !

Merci beaucoup eriiic.

Bonjour à tous,

Je n'avais pas testé ta proposition

bah oui Eriiic, à quoi cela sert-il que tu donnes des réponses ???

bonne journée

Papou

C'est de ma faute, j'ai oublié de le préciser...

Rechercher des sujets similaires à "utiliser meme macro variable"