> Tous les forums > Forum Bureautique
 Excel VBA Null ?Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Debrief
  Posté le 12/10/2018 @ 12:38 
Aller en bas de la page 
Astucien

Bonjour les Artistes,

Comment expliquer ça ?

Sub a()
Dim v As Variant
Dim b As Boolean


v = Null

'MsgBox "v = Null - VarType(v) = " & VarType(v) & vbCrLf & _
"VarType(v) = vbNull est " & (VarType(v) = vbNull) & vbCrLf & _
"IsNull(v) est " & IsNull(v) & vbCrLf & _
"v = Null est " & (v = Null) <- ne s'affiche pas !!!

If v = Null Then b = True Else b = False
MsgBox "v = Null - VarType(v) = " & VarType(v) & vbCrLf & _
"VarType(v) = vbNull est " & (VarType(v) = vbNull) & vbCrLf & _
"IsNull(v) est " & IsNull(v) & vbCrLf & _
"v = Null est " & b

End Sub

Cordialement,
D.

Publicité
vieuxmonsieur
 Posté le 12/10/2018 à 12:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour JP,

Ne serais-ce pas l'absence de données dans la feuille qui en serait la cause ?

Debrief
 Posté le 12/10/2018 à 13:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour vieuxmonsieur,

Non, ça ne peut pas en être la cause. Il n'y a pas de référence à la feuille dans ce code.

Cordialement,
D.

ferrand
 Posté le 12/10/2018 à 19:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut Debrief !

Problème de syntaxe à mon avis...

Tu dois tester avec IsNull pour avoir un renvoi booléen. Toute autre utilisation ne peut que propager le Null (v étant nul, ne contient pas de données valide, ne peut que renvoyer un Null, qui n'est pas une valeur booléenne.

Ton If masque de fait une erreur 94 en faisant renvoyer false car Null ne peut donner lieu à un calcul Null = Null !

Cordialement.

NB- Mais intéressant de soulever une telle question !

Debrief
 Posté le 12/10/2018 à 22:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut Ferrand,

Tu a peut-être trouvé une piste. En tous cas c'est juste un truc auquel il faut faire gaffe même si on va naturellement tester isNull(v) ou moins naturellement VarType(v) = vbNull.

Cette question s'est posée à moi car les valeurs par défaut des propriétés des formats (Font, Interior, Borders, Gradient, FormatColor) dans les Format Conditions viennent en isNull(Variant) et il a fallu que je comprenne bien comment les détecter et manipuler dans une prochaine version à venir de l'Export/Import des MFC beaucoup beaucoup plus élaborée que les précédentes.

Cordialement,
D.

ferrand
 Posté le 13/10/2018 à 00:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Ah ! Tu poursuis... !

Effectivement, je n'ai pendant longtemps regardé Null que de loin, n'en ayant pas eu l'usage, jusqu'à ce que je tombe sur une procédure où c'était un test essentiel (histoire de détection de couleurs diverses de fond et de police...) Par exemple tu testes si la couleur de police d'une cellule ne te renvoie pas nul, si pas nul, tu peux récupérer la couleur, si nul c'est que le texte n'est que partiellement colorée ou avec plusieurs couleurs, et tu passes à la détection caractère par caractère...

Depuis j'ai pu m'en resservir dans quelques cas (rares tout de même) pour éviter une gestion d'erreur.

Cordialement. @+

Debrief
 Posté le 13/10/2018 à 05:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'essaierai ton histoire de Null sur couleur de font de cellule.

Et oui, je poursuis, comme un damné obstiné, et y ai passé des heures pour un truc qui n'intéresse quasiment personne . Mais bon, j'arrive à la fin et crois avoir surmonté les plus gros problèmes, les subtilités de l'association Color et ColorIndex, les états d'âmes de certains ThemeColor, les objets peu connus/utilisés comme les Gradients, les différences de types et de valeurs par défaut des propriétés des formats entre cellule et Format Conditions, la gestion des priorités, toutes choses que j'ai commentées pour en garder une trace.

@+
D.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
EXCEL Cellule avec donnée invisible
gif animé dans tableau Excel
erreur à l'ouverture d'un classeur excel 2016
Ligne de commande excel 2003
fichier excel xls pour conso énergie
Comment bloquer fichier Excel (plusieurs feuilles) sauf en lecture
Recherche un programme Excel pour faire mes comptes
copier un fichier excel
Fichier Excel partager en lecture seul
Excel VBA: Où sont les icônes vbQuestion, vbInformation, vbExclamation ?
Plus de sujets relatifs à Excel VBA Null ?
 > Tous les forums > Forum Bureautique