PB avec cellule vide dans tableau

Bonjour le forum

J'ai un souci avec un code que j'applique sur plusieurs colonne en boucle.

Ce code passe en revu les cellules dans des colonnes et recherche la date la plus récente afin de ma la

faire afficher dans les cellules de la ligne 3 de ces mêmes colonnes

Mon souci c'est que j'ai des cellules vides dans ces colonnes et du coup j'ai une "erreur d'exécution '13': Incompatibilité de type

Je pense que cela vient de mes cellules vides, mais je ne sais pas comment faire pour que le code ignore les cellules si elles sont vides

Je place le fichier en pièce jointe

D'avance je vous remercie pour votre aide et pour votre disponibilté

eole-33, le forum,

Dans le fichier fourni, est-ce bien la macro à vérifier ?

Car, elle ne traite aucune date ou cellule vide 8- //

LaCéline

Bonjour LaCéline

Merci pour ta dispo

Toutes mes excuses voici un nouveau fichier avec le code

cliquez sur "En cours" en haut à gauche

eole-33, le forum,

Dans une condition, s'il n'y a qu'un traitement après le Then ... tel :

If DateValue(Cells(Lig1, 32)) > memo1 Then
    memo1 = DateValue(Cells(Lig1, 32))
End If

On peut améliorer ainsi :

If DateValue(Cells(Lig1, 32)) > memo1 Then memo1 = DateValue(Cells(Lig1, 32))

Pour le problème des cellules vides, on peut traiter ainsi :

For Lig3 = 4 To Range("BC65536").End(xlUp).Row
     If Cells(Lig3, 55) <> "" Then
          If DateValue(Cells(Lig3, 55)) > memo3 Then memo3 = DateValue(Cells(Lig3, 55))
      End If
Next Lig3

LaCéline

Ok super ça marche impec

For lig7 = 4 To Range("r65536").End(xlUp).Row
          If Cells(lig7, 18) <> "" Then
          If DateValue(Cells(lig7, 18)) < memo7 Then memo7 = DateValue(Cells(lig7, 18))
      End If
        Next lig7
        'Mettre le résultat en r3
        Cells(3, 18) = memo7

Du coup, j'ai un autre souci quand, dans le code, si j'inverse le ">"par "<" jai toujours "00/01/1900" qui s'affiche et pas ma date car cette fois ci je voudrais la date la moins récente

En tout cas merci pour ton aide et ta disponibilité

eole-33, le forum,

La colonne R du fichier fourni est vide; j'y ai donc copier des dates pour le test.

Au départ memo7 était vide, d'où l'erreur.

memo7 = 12-12-2222  ' donner une date loin dans le futur
For lig7 = 4 To Range("r65536").End(xlUp).Row
     If Cells(lig7, 18) <> "" Then
          If DateValue(Cells(lig7, 18)) < memo7 Then memo7 = DateValue(Cells(lig7, 18))
      End If
Next lig7
            'Mettre le résultat en r3
Cells(3, 18) = memo7

En cherchant la date la plus basse, memoX doit être initialisé avec une date plus grande que la date la plus grande possible des données du chiffrier.

À l'inverse, en cherchant la date la plus haute, memoX pourrait être initialisé avec une date plus ancienne que la plus ancienne possible des données du chiffrier.

LaCéline

Merci pour ta réponse LaCéline, mais je ne sais pas toi,

mais en ("R3") moi le code m'affiche "-2222"

du coup en mettant "12 / 12 / 1917" ça fonctionne

merci pour ton aide

eole-33, le forum,

eole-33 a écrit :

... mais en ("R3") moi le code m'affiche "-2222"

du coup en mettant "12 / 12 / 1917" ça fonctionne ...

C'est très curieux que ça fonctionne. Si tu fais afficher temporairement la date en R3 avec l'année sur 4 chiffres, est-ce bien l'année 2017 (ou 2016 selon le fichier que tu as soumis en exemple) ?

Ce n'est peut-être que le séparateur "-" ou "/" qui est en cause

"12/12/2222" devrait être mieux.

Au risque de me répéter :

En cherchant la date la plus basse, memoX doit être initialisé avec une date plus grande que la date la plus grande possible des données du chiffrier. exemple : "12/12/2222"

À l'inverse, en cherchant la date la plus haute, memoX pourrait être initialisé avec une date plus ancienne que la plus ancienne possible des données du chiffrier. exemple : "01/01/1922"

LaCéline

Bonjour LaCeline

Apparemment je fonctionne maintenant avec ta manière.

Par contre si j'ai une colonne de vide, donc pas de date le code m'affiche "memo" par défaut au lieu de me laisser la cellule vide


Euh pardon, quand je dis "memo" , c'esl la valeur "12/12/2222" qui s'affiche

par contre je me posais la question si je pouvais faire la même chose, mais au lieu que ce soit des dates, ce soit des valeurs et du coup faire remonter par défaut la valeur la plus souvent rencontrée dans la même colonne et juste celle-la

eole-33, le forum,

Si c'est un irritant ... Il faudrait voir le code final pour voir d'où cela provient.

LaCéline

Rechercher des sujets similaires à "vide tableau"