[RESOLU] VBA - Déclaration de variables particulière

  • Initiateur de la discussion Initiateur de la discussion Orodreth
  • 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 !

Orodreth

XLDnaute Impliqué
Bonjour à tous et à toutes,

Enfin quand je dis déclaration ... C'est un grand mot, la plupart des variables ne sont pas déclarées.

Je dois reprendre des codes VBA faits par d'autres, les remettre à plat, les corriger, éventuellement les faire évoluer, histoire que se remettent à fonctionner les applications.

Je suis en train de relire les codes en question, et certaines variables me surprennent un peu.

Par exemple, dans le code suivant:
Code:
Function WsExist(Nom$) As Boolean
     On Error Resume Next
     WsExist = Sheets(Nom).Index
End Function

Je comprends ce que fait la fonction dans sa globalité, mais l'argument passé "Nom$" et la variable dans le code "Nom" m'étonnent un peu.
Il semble évident, au vu de la fonction, que les deux variables font référence au même objet donc ... le "$" dans l'argument de la fonction sert à quoi ?

Je me pose la même question concernant le "&" que j'ai vu passé aussi, en suffixe de variables là encore.

Des subtilités du langage que je ne connais pas encore ?

Si quelqu'un peut m'expliquer, merci d'avance. Ça n'a pas l'air d'être hyper gênant pour la correction de code, mais ça me perturbe un peu.

Cordialement,
Orodreth
 
Dernière édition:
Re : VBA - Déclaration de variables particulière

Bonjour Orodreth, bonjour le forum,

Code:
Function WsExist(Nom$) As Boolean
     On Error Resume Next
     WsExist = Sheets(Nom).Index
End Function

Cela signifie que la fonction WsExist est de type Booléenne. Elle va donc renvoyer comme résultat Vrai ou Faux. Elle a besoin de l'argument Nom qui est de type String (c'est ce qu'indique le $ à la fin).
Su tu as, par exemple, un onglet qui se nomme Menu, tu peux écrire dans n'importe quelle cellule de n'importe quel onglet :
Code:
=WsExist("Menu")
À la validation par la touche [Entrée] tu verras s'affichier dans le même cellule : Vrai.

J'ai cherché à quoi correspond & dans l'aide VBA mais j'ai pas trouvé. Je n'utlise jamais ces caractères pour rendre les codes plus lisibles...

[Édition]
Bonjour PierreJean, on s'est croisé...

 
Dernière édition:
Re : VBA - Déclaration de variables particulière

Bonjour pierrejean, Robert, le fil, le forum

Merci pour vos explications.
Donc ça équivaut à une déclaration de variable. Du coup, le code devient plus lisible.

Par contre, j'en viens à me poser la question sur l'extrait de code suivant:

Code:
Private Sub importer_Click()
  
      Application.ScreenUpdating = False
      Application.EnableCancelKey = xlErrorHandler

      Dim Arr
      Arr = Split("Liste_de_Interventions")
      Application.DisplayAlerts = False
      For i = 0 To UBound(Arr)
           S$ = Arr(i)
      ...
      ...

Si j'ai bien compris ce que tu viens d'expliquer pierrejean, la ligne S$ = Arr(i) équivaut à Dim S as String = Arr(i).
On peut donner une valeur à une variable qu'on déclare directement sur la même ligne ?

Merci d'avance,
Cordialement,
Orodreth
 
Dernière édition:
Re : VBA - Déclaration de variables particulière

Re

Salut ROBERT toujours heureux de te croiser !!

Effectivement c'est bien ce qu'il se passe
Arr etant declaré en Variant (par defaut ; et obligatoirement puisqu'il contiendra par la suite un tableau) peut contenir tout type de variable
S$=Arr(i) transforme le ieme contenu de Arr en String et le stocke dans la variable S
 
- 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
2
Affichages
1 K
J
Réponses
21
Affichages
3 K
Retour