Bonjour, Le 23/05/2019 à 15:23, Jacquouille a écrit :
Bonjour En VBA, peut-on considérer que ISEMPTY(x) soit l'équivalent de "" ? Etre vide, est-ce la même chose que contenir ""(rien) ?
Dans la doc, il parle de variable initialisée ou pas, donc a priori la valeur "" signifierai que la variable est initialisée sur ""
MichD
Bonjour, Un petit exemple, 3 procédures presque identiques. La seule différence est le type de la variable S. À moins que la variable S soit déclarée "AS Variant", dans tous les autres cas, IsEmpty(A) est faux. Une variable de type Variant peut-être n'importe quoi, un nombre, un texte, un tableau (array) ou un objet (Range, Worksheet, workbook). Une variable de type String contient "" donc pas vide. Une variable de type Long ou integer... contient 0 donc pas vide Une variable de type "Variant" peut être "" ou 0 jusqu'au moment où l'usager lui attribuera une valeur, par conséquent elle est vide. '------------------ Sub test1() Dim S As String A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test2() Dim S As Long A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test3() Dim S As Variant A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test4() Dim S As Variant, B() A = B() MsgBox IsEmpty(A) End Sub '------------------ MichD
Bonjour,
Un petit exemple, 3 procédures presque identiques. La seule différence
est le type de la variable S. À moins que la variable S soit déclarée
"AS Variant", dans tous les autres cas, IsEmpty(A) est faux. Une
variable de type Variant peut-être n'importe quoi, un nombre, un texte,
un tableau (array) ou un objet (Range, Worksheet, workbook).
Une variable de type String contient "" donc pas vide.
Une variable de type Long ou integer... contient 0 donc pas vide
Une variable de type "Variant" peut être "" ou 0 jusqu'au moment où
l'usager lui attribuera une valeur, par conséquent elle est vide.
'------------------
Sub test1()
Dim S As String
A = S
MsgBox IsEmpty(A)
End Sub
'------------------
Sub test2()
Dim S As Long
A = S
MsgBox IsEmpty(A)
End Sub
'------------------
Sub test3()
Dim S As Variant
A = S
MsgBox IsEmpty(A)
End Sub
'------------------
Sub test4()
Dim S As Variant, B()
A = B()
MsgBox IsEmpty(A)
End Sub
'------------------
Bonjour, Un petit exemple, 3 procédures presque identiques. La seule différence est le type de la variable S. À moins que la variable S soit déclarée "AS Variant", dans tous les autres cas, IsEmpty(A) est faux. Une variable de type Variant peut-être n'importe quoi, un nombre, un texte, un tableau (array) ou un objet (Range, Worksheet, workbook). Une variable de type String contient "" donc pas vide. Une variable de type Long ou integer... contient 0 donc pas vide Une variable de type "Variant" peut être "" ou 0 jusqu'au moment où l'usager lui attribuera une valeur, par conséquent elle est vide. '------------------ Sub test1() Dim S As String A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test2() Dim S As Long A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test3() Dim S As Variant A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test4() Dim S As Variant, B() A = B() MsgBox IsEmpty(A) End Sub '------------------ MichD
Jacquouille
Bonjour Oufti, ça va pas alléger mon neurone, cette démo. Pas facile à décortiquer, mais on essaie. Que veulent dire les () dans ton expression: A = B() ? Bonne journée. Jacques " Le vin est au repas ce que le parfum est à la femme." . "MichD" a écrit dans le message de groupe de discussion : qc6l36$hp6$ Bonjour, Un petit exemple, 3 procédures presque identiques. La seule différence est le type de la variable S. À moins que la variable S soit déclarée "AS Variant", dans tous les autres cas, IsEmpty(A) est faux. Une variable de type Variant peut-être n'importe quoi, un nombre, un texte, un tableau (array) ou un objet (Range, Worksheet, workbook). Une variable de type String contient "" donc pas vide. Une variable de type Long ou integer... contient 0 donc pas vide Une variable de type "Variant" peut être "" ou 0 jusqu'au moment où l'usager lui attribuera une valeur, par conséquent elle est vide. '------------------ Sub test1() Dim S As String A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test2() Dim S As Long A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test3() Dim S As Variant A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test4() Dim S As Variant, B() A = B() MsgBox IsEmpty(A) End Sub '------------------ MichD
Bonjour
Oufti, ça va pas alléger mon neurone, cette démo.
Pas facile à décortiquer, mais on essaie.
Que veulent dire les () dans ton expression: A = B() ?
Bonne journée.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qc6l36$hp6$1@gioia.aioe.org...
Bonjour,
Un petit exemple, 3 procédures presque identiques. La seule différence
est le type de la variable S. À moins que la variable S soit déclarée
"AS Variant", dans tous les autres cas, IsEmpty(A) est faux. Une
variable de type Variant peut-être n'importe quoi, un nombre, un texte,
un tableau (array) ou un objet (Range, Worksheet, workbook).
Une variable de type String contient "" donc pas vide.
Une variable de type Long ou integer... contient 0 donc pas vide
Une variable de type "Variant" peut être "" ou 0 jusqu'au moment où
l'usager lui attribuera une valeur, par conséquent elle est vide.
'------------------
Sub test1()
Dim S As String
A = S
MsgBox IsEmpty(A)
End Sub
'------------------
Sub test2()
Dim S As Long
A = S
MsgBox IsEmpty(A)
End Sub
'------------------
Sub test3()
Dim S As Variant
A = S
MsgBox IsEmpty(A)
End Sub
'------------------
Sub test4()
Dim S As Variant, B()
A = B()
MsgBox IsEmpty(A)
End Sub
'------------------
Bonjour Oufti, ça va pas alléger mon neurone, cette démo. Pas facile à décortiquer, mais on essaie. Que veulent dire les () dans ton expression: A = B() ? Bonne journée. Jacques " Le vin est au repas ce que le parfum est à la femme." . "MichD" a écrit dans le message de groupe de discussion : qc6l36$hp6$ Bonjour, Un petit exemple, 3 procédures presque identiques. La seule différence est le type de la variable S. À moins que la variable S soit déclarée "AS Variant", dans tous les autres cas, IsEmpty(A) est faux. Une variable de type Variant peut-être n'importe quoi, un nombre, un texte, un tableau (array) ou un objet (Range, Worksheet, workbook). Une variable de type String contient "" donc pas vide. Une variable de type Long ou integer... contient 0 donc pas vide Une variable de type "Variant" peut être "" ou 0 jusqu'au moment où l'usager lui attribuera une valeur, par conséquent elle est vide. '------------------ Sub test1() Dim S As String A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test2() Dim S As Long A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test3() Dim S As Variant A = S MsgBox IsEmpty(A) End Sub '------------------ Sub test4() Dim S As Variant, B() A = B() MsgBox IsEmpty(A) End Sub '------------------ MichD
MichD
Dans cette ligne de code : Dim S As Variant, B() B() c'est la manière de déclarer une variable "Tableau -array". Comme cette ligne débute par DIM, on n’est pas tenu d'écrire Dim pour chacune des variables. Ce serait différent si chacune des variables S et B() étaient déclarés sur chacune leur ligne. On peut ajouter selon le contenu qu'aura le tableau, dim B() As String OU As Long ... lorsque le type n'est pas défini expressément, on suppose que B() as Variant. MichD
Dans cette ligne de code :
Dim S As Variant, B()
B() c'est la manière de déclarer une variable "Tableau -array". Comme
cette ligne débute par DIM, on n’est pas tenu d'écrire Dim pour chacune
des variables. Ce serait différent si chacune des variables S et B()
étaient déclarés sur chacune leur ligne.
On peut ajouter selon le contenu qu'aura le tableau,
dim B() As String OU As Long ... lorsque le type n'est pas défini
expressément, on suppose que B() as Variant.
Dans cette ligne de code : Dim S As Variant, B() B() c'est la manière de déclarer une variable "Tableau -array". Comme cette ligne débute par DIM, on n’est pas tenu d'écrire Dim pour chacune des variables. Ce serait différent si chacune des variables S et B() étaient déclarés sur chacune leur ligne. On peut ajouter selon le contenu qu'aura le tableau, dim B() As String OU As Long ... lorsque le type n'est pas défini expressément, on suppose que B() as Variant. MichD
Jacquouille
Merci Denis Plus j'en apprends sur Excel, plus je constate le "grand vide - empty" dans mon cerveau. Je crois que je n'arriverai jamais à boucher tous les trous.... -)) Et dire que je suis toujours en 2003. (2019-2003. Plus que 16 versions à apprendre) Bonne fin de journée, et de semaine dans la bonne humeur. https://www.youtube.com/watch?v=Gl8AFljtG7U Jacques " Le vin est au repas ce que le parfum est à la femme." . "MichD" a écrit dans le message de groupe de discussion : qc8ga4$ki3$ Dans cette ligne de code : Dim S As Variant, B() B() c'est la manière de déclarer une variable "Tableau -array". Comme cette ligne débute par DIM, on n’est pas tenu d'écrire Dim pour chacune des variables. Ce serait différent si chacune des variables S et B() étaient déclarés sur chacune leur ligne. On peut ajouter selon le contenu qu'aura le tableau, dim B() As String OU As Long ... lorsque le type n'est pas défini expressément, on suppose que B() as Variant. MichD
Merci Denis
Plus j'en apprends sur Excel, plus je constate le "grand vide - empty" dans
mon cerveau.
Je crois que je n'arriverai jamais à boucher tous les trous.... -))
Et dire que je suis toujours en 2003. (2019-2003. Plus que 16 versions à
apprendre)
Bonne fin de journée, et de semaine dans la bonne humeur.
https://www.youtube.com/watch?v=Gl8AFljtG7U
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"MichD" a écrit dans le message de groupe de discussion :
qc8ga4$ki3$1@gioia.aioe.org...
Dans cette ligne de code :
Dim S As Variant, B()
B() c'est la manière de déclarer une variable "Tableau -array". Comme
cette ligne débute par DIM, on n’est pas tenu d'écrire Dim pour chacune
des variables. Ce serait différent si chacune des variables S et B()
étaient déclarés sur chacune leur ligne.
On peut ajouter selon le contenu qu'aura le tableau,
dim B() As String OU As Long ... lorsque le type n'est pas défini
expressément, on suppose que B() as Variant.
Merci Denis Plus j'en apprends sur Excel, plus je constate le "grand vide - empty" dans mon cerveau. Je crois que je n'arriverai jamais à boucher tous les trous.... -)) Et dire que je suis toujours en 2003. (2019-2003. Plus que 16 versions à apprendre) Bonne fin de journée, et de semaine dans la bonne humeur. https://www.youtube.com/watch?v=Gl8AFljtG7U Jacques " Le vin est au repas ce que le parfum est à la femme." . "MichD" a écrit dans le message de groupe de discussion : qc8ga4$ki3$ Dans cette ligne de code : Dim S As Variant, B() B() c'est la manière de déclarer une variable "Tableau -array". Comme cette ligne débute par DIM, on n’est pas tenu d'écrire Dim pour chacune des variables. Ce serait différent si chacune des variables S et B() étaient déclarés sur chacune leur ligne. On peut ajouter selon le contenu qu'aura le tableau, dim B() As String OU As Long ... lorsque le type n'est pas défini expressément, on suppose que B() as Variant. MichD