Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Variable "Public" non publique ! ?

3 réponses
Avatar
LANIMAL
Bonjour,
Je déclare en début d'un Module (du fichier bnq.xls):

Public Onglet As String

Puis dans ce module j'appelle une macro

Run "PERSO.xls!AdapterFormulesPointageCA"

La macro "AdapterFormulesPointageCA()" utilise la variable "Onglet"
laquelle est vide lors de l'exécution.

Cela signifierait-il qu'une exécution "Run"
ignore les déclarations "Public" faites ailleurs ?

Je peux comprendre, mais j'aimerais avoir la confirmation.

Merci

3 réponses

Avatar
Daniel.C
Bonjour.
Une variable n'est pas valable d'un classeur à l'autre. Modifie la
macro "AdapterFormulesPointageCA()" pour recevoir le paramètre "Onglet"
et passe celui-ci dans la commande Run.
Cordialement.
Daniel

Bonjour,
Je déclare en début d'un Module (du fichier bnq.xls):

Public Onglet As String

Puis dans ce module j'appelle une macro

Run "PERSO.xls!AdapterFormulesPointageCA"

La macro "AdapterFormulesPointageCA()" utilise la variable "Onglet"
laquelle est vide lors de l'exécution.

Cela signifierait-il qu'une exécution "Run"
ignore les déclarations "Public" faites ailleurs ?

Je peux comprendre, mais j'aimerais avoir la confirmation.

Merci
Avatar
michdenis
Bonjour,

Voici un exemple quant à la manière de passer une variable
comme paramètre dans une procédure. Comme on utilise
"optional" dans la déclaration du paramètre, la procédure
peut être appelée sans déclarer une valeur pour ce paramètre


'Déclaration de la variable dans le haut d'un module
Public Onglet As String

'-----------------------------
Sub test()
Dim LaMacro As String

Onglet = "Feuil3"
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro, Onglet
End Sub

'-------------------------------------
Sub Test1(Optional NomFeuille As String)
MsgBox Sheets(NomFeuille).Name
End Sub
'-------------------------------------

N.B - Si la macro est dans un module feuil, il faut faire
référence à celle-ci dans la ligne de code. Ici on parle
de la propriété "Name" de la feuille visible dans la
fenêtre de l'éditeur de code et non le nom de l'onglet

Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1", Onglet

Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1", Onglet





"LANIMAL" a écrit dans le message de groupe de discussion :
#
Bonjour,
Je déclare en début d'un Module (du fichier bnq.xls):

Public Onglet As String

Puis dans ce module j'appelle une macro

Run "PERSO.xls!AdapterFormulesPointageCA"

La macro "AdapterFormulesPointageCA()" utilise la variable "Onglet"
laquelle est vide lors de l'exécution.

Cela signifierait-il qu'une exécution "Run"
ignore les déclarations "Public" faites ailleurs ?

Je peux comprendre, mais j'aimerais avoir la confirmation.

Merci
Avatar
LANIMAL
Merci

J'ai tellement buté sur le pb, que je me suis cassé une cheville :-(((((
Je rentre juste de l'hopital.

A la prochaine ..... pas la cheville ! ! ! !


Daniel.C a écrit :
Bonjour.
Une variable n'est pas valable d'un classeur à l'autre. Modifie la macro
"AdapterFormulesPointageCA()" pour recevoir le paramètre "Onglet" et
passe celui-ci dans la commande Run.
Cordialement.
Daniel

Bonjour,
Je déclare en début d'un Module (du fichier bnq.xls):

Public Onglet As String

Puis dans ce module j'appelle une macro

Run "PERSO.xls!AdapterFormulesPointageCA"

La macro "AdapterFormulesPointageCA()" utilise la variable "Onglet"
laquelle est vide lors de l'exécution.

Cela signifierait-il qu'une exécution "Run"
ignore les déclarations "Public" faites ailleurs ?

Je peux comprendre, mais j'aimerais avoir la confirmation.

Merci