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

S

saadmechiche

Guest
Bonjour , j'aimerai savoir ce que signifie byval ; je la constate dans beaucoup de fonction
Merci
 
Re : signification byval

Salut,

Un petit clique sur "?" pour l'aide de Visual Basic et je trouve :
Utilisé avec ces objets, ByVal réfère à un objet et non à une méthode de passation de paramètres. Chacun des objets cités ci-dessus a une propriété Value que vous pouvez définir. Vous pouvez également passer cette valeur vers ou à partir d'une fonction. Comme vous pouvez modifier la valeur des membres de l'objet, les événements produisent des résultats cohérents avec le comportement de ByRef, même si la syntaxe de l'événement indique que le paramètre est ByVal.

Si cela peut te convenir 😉
 
Re : signification byval

bonsoir

Un exemple en complément de la réponse de Bruno:

Code:
Sub Test()
    Dim Donnee As Integer
    
    Donnee = 1
    
    MaProcedure_1 Donnee
    MsgBox Donnee
    
    MaProcedure_2 Donnee
    MsgBox Donnee
    
    MaProcedure_3 Donnee
    MsgBox Donnee
End Sub

'Passe la référence en argument:
'(la donnée initiale sera modifiée et prendra la  valeur
'résultant de l'argument).
'C'est la variable 'Donnee' qui est transmise à la sous procédure.
'La valeur réelle de cette dernière peut, de ce fait, être modifiée
'par la procédure à laquelle elle a été passée.
Sub MaProcedure_1(ByRef x As Integer)
    x = x * 2
End Sub

'Passe la valeur en argument:
'(la donnée initiale ne sera pas modifiée)
'C'est une copie de la variable qui est transmise à la sous procédure.
'La valeur réelle de cette dernière n'est donc pas modifiée par la procédure à laquelle
'elle est passée.
Sub MaProcedure_2(ByVal y As Integer)
    y = y * 2
End Sub

'ByRef est la valeur par défaut si elle n'est pas spécifiée.
Sub MaProcedure_3(z As Integer)
    z = z * 2
End Sub


Bonne soirée
MichelXld
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Agenda
Réponses
3
Affichages
238
Réponses
41
Affichages
1 K
Retour