Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Incompatibilité de type lors de l'utilisation de Datediff

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

M

marida

Guest
Bonjour,

je souhaite utiliser la fonction datediff sur les cellules visibles après un filtre en VBA mais j'ai une erreur d'incompatibilité de type.
Voir PJ

merci pour votre aide.
 

Pièces jointes

Re : Incompatibilité de type lors de l'utilisation de Datediff

Bonjour,

J'ai seulement touché à cette section.

En haut de ton module, écris cette expression : Option Explicit

Cela va t'obliger à déclarer chacune des variables de la procédure
et apporter certaines corrections quant à l'orthographe s'il y a lieu.

Au lieu de la variable ligne, je l'ai remplacé par "Cell", elle est plus
"parlante". Il faut la déclarer As Range

VB:
With Worksheets(1)
    DerLig = .Cells.Find(What:="*", _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious).Row
    With Range("A1:F" & DerLig)
        .AutoFilter Field:=var2, Operator:= _
            xlFilterValues, Criteria1:="=*Saint Jean*"
    End With
End With
With Worksheets(1)
    With .Range("_FilterDataBase")
        Set maplage = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
    End With
End With
For Each Cell In maplage.Columns(3).Cells
    If Cell <> "" And Cell.Offset(, 2) <> "" Then
        s = DateDiff("d", Cell, Cell.Offset(, 2))
        If etat > 0 Then
            Retour = Retour + 1
        End If
    End If
    Worksheets(2).Cells(11, 7).Value = Retour
Next
 
Dernière édition:
Re : Incompatibilité de type lors de l'utilisation de Datediff

Bonjour,

et merci pour ton aide.

cette fois -ci je n'ai pas d'erreur mais je n'obtiens toujours pas de résultat pour la variable Retour;
et je préfère garder les variables var et var1 les colonnes date de début et de fin ne sont pas figés.
lors d'un autre téléchargement ces données peuvent se retrouver dans la colonne 1 par exemple,
t'as pu avoir une valeur pour "Retour" de ton coté?

merci
 
Re : Incompatibilité de type lors de l'utilisation de Datediff

Merci MichD : la variable retour s'affichait sur la feuille 2 je n'ai pas fait attention:
Merci PierreJean: Si j'ai bien compris avant de calculer la différence entre la date , la fonction Isdate vérifie d'abord qu'elles sont valides... je n'ai jamais eu ce problème avant. c'est nécessaire de passer par là ou c'est le fait d'avoir utiliser le filtre qui impose cela
 
Re : Incompatibilité de type lors de l'utilisation de Datediff

Re

La ligne contenant "date de debut" est incluse dans la definition de MaPlage
Pour passer outre ,la seule possiblité que j'aie vue est effectivement de controler que l'on a bien affaire à des dates
Le Filtre n'est donc pour rien dans le bug initial
 
Re : Incompatibilité de type lors de l'utilisation de Datediff

Cette ligne de code est problématique :

Set MaPlage = Worksheets(1).UsedRange.SpecialCells(xlCellTypeVisible)

Dans toutes les cellules visibles sont incluses les cellules de la ligne de titre.
Lors de la première boucle, tu le fais sur la ligne de titre et comme ce n'est
pas des dates, cela fait planter ta procédure!

Cette façon de faire permet d'exclure la ligne de titre de la plage résultat d'un filtre

_FilterDataBase est le nom (collection Names) que donne Excel à l'ensemble de la
plage filtrée dès qu'un filtre est exécuté. Par conséquent, on peut l'utiliser comme
dans l'exemple suivant :

With Worksheets(1)
With .Range("_FilterDataBase")
Set maplage = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible) '<<<<====
End With
End With
 
- 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

Réponses
9
Affichages
247
Réponses
16
Affichages
683
Réponses
2
Affichages
241
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…