Parler le VBA c'est pas totalement inné
Résolu/Fermé
A voir également:
- Parler le VBA c'est pas totalement inné
- Erreur 1004 vba ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- J'ai une gorge mais je ne peux pas parler - Forum Loisirs / Divertissements
- Find vba - Astuces et Solutions
- Vba range avec variable ✓ - Forum VB / VBA
2 réponses
xounay
Messages postés
320
Date d'inscription
lundi 14 novembre 2005
Statut
Membre
Dernière intervention
27 avril 2012
35
Modifié par xounay le 21/09/2011 à 20:47
Modifié par xounay le 21/09/2011 à 20:47
Salut je pense que si tu dois revoyer plus d'une valeur Il vaut mieux une sub avec des parametre passé en byRef plustot que plein de variable globales.
<code>
Sub
TestSub(Message As String)
Message = Message & "rajout"
End Sub
Reviens au meme que
TestSub(By Val Message As String)
Message = Message & "rajout"
End Sub
Mais est different que
TestSub(By Ref Message As String)
Message = Message & "rajout"
End Sub
Lors d'un byval une copi de la variable passé en parametre est stocké dans un variable local qui a donc une durée de vie limité a la sub.
Alors que lorsque tu utilises ByRef l'adresse memoire de la variable est passé en parametre donc les modification apporté a la variable passé en parametre seront effective..
En esperant t'avoir eclairé.
<code>
Sub
TestSub(Message As String)
Message = Message & "rajout"
End Sub
Reviens au meme que
TestSub(By Val Message As String)
Message = Message & "rajout"
End Sub
Mais est different que
TestSub(By Ref Message As String)
Message = Message & "rajout"
End Sub
Lors d'un byval une copi de la variable passé en parametre est stocké dans un variable local qui a donc une durée de vie limité a la sub.
Alors que lorsque tu utilises ByRef l'adresse memoire de la variable est passé en parametre donc les modification apporté a la variable passé en parametre seront effective..
En esperant t'avoir eclairé.
C'est pas genial mais j'ai trouvé ça
Sub CreateCode()
Dim celle As Range
Dim MyValue1 As Integer
Dim MyValue2 As Integer
Dim MyValue3 As Integer
Dim MyValue4 As Integer
For Each celle In Range("a1:a14")
Randomize
' Initialise le générateur de nombres aléatoires.
' Renvoie une valeur aléatoire comprise entre 1 et 6.
MyValue1 = CInt(Int((9 * Rnd()) + 1))
MyValue2 = CInt(Int((9 * Rnd()) + 1))
MyValue3 = CInt(Int((9 * Rnd()) + 1))
MyValue4 = CInt(Int((9 * Rnd()) + 1))
celle = MyValue1 & MyValue2 & MyValue3 & MyValue4
Next
End Sub
Sub CreateCode()
Dim celle As Range
Dim MyValue1 As Integer
Dim MyValue2 As Integer
Dim MyValue3 As Integer
Dim MyValue4 As Integer
For Each celle In Range("a1:a14")
Randomize
' Initialise le générateur de nombres aléatoires.
' Renvoie une valeur aléatoire comprise entre 1 et 6.
MyValue1 = CInt(Int((9 * Rnd()) + 1))
MyValue2 = CInt(Int((9 * Rnd()) + 1))
MyValue3 = CInt(Int((9 * Rnd()) + 1))
MyValue4 = CInt(Int((9 * Rnd()) + 1))
celle = MyValue1 & MyValue2 & MyValue3 & MyValue4
Next
End Sub