VBA - Déclarer/ Qualifier variable date

Rarara

XLDnaute Nouveau
Bonjour,

J'ai essayé de coder de sorte que si une cellule de la colonne D "date de réclamation" est nulle (des renvois sont fait en Feuil 2), la ligne entière contenant cette cellule nulle soit masquée. Si des liens sont complétés par la suite, le fait de cliquer sur le bouton fait réapparaître la ligne où la cellule de la colonne D est complétée. Jusque là tout va bien,voici le code ci-dessous:

Code:
Sub masquer_lignes _ si_cellules_nulles()
Dim ligne As Integer

For ligne = 5 To 245
    If Cells(ligne, 4) = "0" Then
        Rows(ligne & ":" & ligne).EntireRow.Hidden = True
    End If
Next

For ligne = 5 To 245
    If Cells(ligne, 4) > "0" Then
        Rows(ligne & ":" & ligne).EntireRow.Hidden = False
    End If
Next

End Sub

Ma problématique est la suivante: Ce code fonctionne si le format des cellules de la colonne D est "nombre" puisque un lien vide est renvoyé par "0".
Or, ma colonne D doit refléter des dates donc 2 options:
-Soit je garde cette base de code, et je rajoute une partie convertissant les cellules de nombres en dates
-Soit je choisi directement la variable de départ "Date" mais je n'arrive pas à la qualifier...En sachant que le renvoi vide =0 lorsque la cellule est au format nombre, et = 00/01/1900 au format date.

Pourriez-vous m'aider svp? Dans les deux cas je ne sais pas comment faire.
Merci pour votre gentillesse,
RM
 

Pièces jointes

  • Test masquer lignes cellules nulles.xlsm
    26.2 KB · Affichages: 29

Dranreb

XLDnaute Barbatruc
Re : VBA - Déclarer/ Qualifier variable date

Bonjour.

Essayez comme ça :
VB:
Sub masquer_cellules_nulles()
Dim L As Long
For L = 5 To 245
    Rows(L).Hidden = IsEmpty(Cells(L, "D").Value)
    Next L
End Sub

Je n'avais pas vu que cette colonne D contenait une formule.
En la changeant ainsi:
Code:
=SI(ESTNUM(Feuil2!B2);Feuil2!B2;"")
Ceci devrait marcher quel que soit le format :
VB:
Sub masquer_cellules_nulles()
Dim L As Long
For L = 5 To 245
    Rows(L).Hidden = VarType(Cells(L, "D").Value) = vbString
    Next L
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 136
dernier inscrit
Zoulander