Lettre en tant que parametre dans une fonction en VBA

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

SAMWRC

XLDnaute Occasionnel
Bonjour,

Je voudrais creer une fonction VBA dans une macro que j'appellerai dans mon programme principal en donnant comme argument une lettre (par exemple C, qui correspond a une colonne).

Comment dois-je declarer mon argument dans la fonction ?

Sub Copy_formula(column_number As Characters)
Range(column_number & "2").Select
Selection.AutoFill Destination:=Range(column_number & "2:" & column_number & lastrow)
End Sub

Merci d'avance
 
Re : Lettre en tant que parametre dans une fonction en VBA

bonsoir Sam,

Avec ceci peut-être

Code:
Sub Copy_formula(column_Letter As String)
Range(column_Letter & "2").Select
Selection.AutoFill Destination:=Range(column_Letter & "2:" & column_Letter & lastrow)
End Sub

Mais où est définie lastrow?

A+
 
Re : Lettre en tant que parametre dans une fonction en VBA

Bonjour SamWRC, le forum 🙂,
Logiquement, c'est plutôt
Code:
column_number As String
Bonne soirée 😎
Add: rebonsoir Hasco... Bon, ça tombe bien, je dois aller préparer ma salade, on se télescopera plus... Bonne soirée
 
Dernière édition:
Re : Lettre en tant que parametre dans une fonction en VBA

Salut,

Sub Copy_formula(Byval column_number As String)
Range(column_number & "2").Select
Selection.AutoFill Destination:=Range(column_number & "2:" & column_number & lastrow)
End Sub

Prend l'habitude de definir aussi la methode de passage du parametre c'est a dire si tu veux passer la valeur (Byval) ou la variable (Byref). Sache que par defaut si tu ne specifis rien VBA utilise ByRef.
Dans ce cas si la valeur de ta variable passée en parametre change dans la sub ou la fonction appelé elle sera aussi changée dans la variable d'origine.

Exemple:

Code:
Sub Test()
   Dim MonNom As String, MomNomDeFamille As String
   MonNom = "James Bond"
   MomNomDeFamille = ExtraireNomDeFamille(MonNom)
   MsgBox "Vous Etes : " & MonNom _
      & vbCrLf & "Votre Nom de Famille est :  " & MomNomDeFamille
End Sub

Function ExtraireNomDeFamille(ByVal NonRecuEnParametre As String) As String
    NonRecuEnParametre = Right(NonRecuEnParametre, InStr(1, StrReverse(NonRecuEnParametre), Chr(32)) - 1)
    ExtraireNomDeFamille = NonRecuEnParametre
End Function

Premier essait avec Byval :

la reponse sera :

Vous Etes : James Bond
Votre Nom de Famille est : Bond

deuxieme essait avec rien ou ByRef :

la reponse sera :

Vous Etes : Bond <--- regarde bien ici
Votre Nom de Famille est : Bond

dans ce dernier cas la valeur de ta variable d'origine a elle aussi changer.
D'ou l'importance de specifier la methode😉

A+🙂
 
Dernière édition:
- 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
283
Retour