Vérifier si une date est comprise entre deux dates - VBA

Bonjour à tous

J'ai lu pas mal de sujet similaire mais tous le traiter en excel, mwa je le voudrais en vba

Je m'explique

Je sélectionne plusieurs ligne et vérifie si dans la première colonne (des lignes sélectionnés) si la date présente est comprise entre deux dates définies plutôt par les variables vdate1 et vdate2.

Si la date est comprise dans ma période, je déplace la ligne entière, sinon je supprime la ligne.

Mon problème est que je n'arrive pas à vérifier si la date est bonne ou non.

Pour,infos mes variables sont en format date, et la date présente dans la cellule est sous le format classique DD/MM/AAAA

Merci de votre aide

Bonjour

Crdlt

Impossible de t'envoyer un fichier (je l'aurai déjà fais )

C'est un fichier entreprise, et comprends énormément de macros différentes et imbriquées entre elles.....

Sorry

Bonjour,

Il est si difficile de créer un classeur exemple représentatif de tes données?

Aide nous à t'aider.

Cdlt.

Je ne demande que sa

Si joints une partie du code qui me permet de faire ce que je veux.

Ce qui reste à faire est en gras: vérifier que la date de ma cellule A14999 est comprise entre vdate1 et vdate2

Je récupère les valeurs sur un autre fichier excel.

L'utilisateur utilise une boite de dialogue pour renseigner les dates et le nom du classeur.

Le code suivant permet de récupérer les données sur l'autre classeur puis de les traiter .

Aujourd'hui seul la condition des données est si dans la ligne il y a "P2" (Permet de trier les bonnes lignes des mauvaises ) je voudrais rajouter dans cette condition mon pb de date

Sub Miseajour()
i = 1
nom = ActiveWorkbook.Name 'récup nom classeurs
vcmd = MAJ.vcmd

Windows(vcmd).Activate 'change classeur

Sheets("CG. Eure").Select 'selectionne liste commande
vder = Range("L1048576").End(xlUp).Address
Range("A23:" & vder).Select
Selection.Copy
vcpt = Selection.Rows.Count 'compte nombre ligne

Windows(nom).Activate 'reviens sur le classeur
Sheets("Synthèse Débours P2").Select 'colle
Range("A14999").Select
Selection.PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Do While i <= vcpt 'tri ligne
    If (Range("D14999") = "P2") Then '[b]comprise entre date et <> liste présente[/b]
        vder = Range("C10001").End(xlUp).Offset(1, 0).Address 'Insert nouvelle ligne
        Range(vder).Select
        Selection.EntireRow.Insert

        Range("A15000").Copy 'copie date
        ActiveCell.Offset(0, 3).Select
        Selection.PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        Range("B15000").Copy 'copie nom collège
        ActiveCell.Offset(0, -3).Select
        Selection.PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        Range("E15000").Copy 'copie prix
        ActiveCell.Offset(0, 5).Select
        Selection.PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        Range("H15000").Copy 'copie designation
        ActiveCell.Offset(0, -3).Select
        Selection.PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        Range("G15000").Copy 'copie fournisseur
        ActiveCell.Offset(0, 2).Select
        Selection.PasteSpecial paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        Range("A8").Copy 'copie formule ref
        ActiveCell.Offset(0, -6).Select
        Selection.PasteSpecial paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

        Range("B8").Copy 'copie formule ref
        ActiveCell.Offset(0, 1).Select
        Selection.PasteSpecial paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

        Range("D8").Copy 'copie formule
        ActiveCell.Offset(0, 2).Select
        Selection.PasteSpecial paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

        Rows("14999:15000").Select 'suppr ligne
        Selection.Delete Shift:=xlUp
    Else
        Rows("14999:14999").Select 'suppr ligne
        Selection.Delete Shift:=xlUp
    End If
    i = i + 1
Loop
capture

Bonjour le forum, alors j'ai découverts la fonction DateDiff, et me la suis approprié

Du coup je vérifie si ma date voulue est comprise dans ma période choisi par le biais de deux datediff

vdiff1 = DateDiff("d", vdate1, Range("A14999").Value) 'vérifie si date comprise dans periode demandée
vdiff2 = DateDiff("d", Range("A14999").Value, vdate2)

La réponse me permet d'éffectuer mon si plus tard... avec mes autres conditions

If (Range("D14999") = "P2" And vdiff1 >= 0 And vdiff2 >= 0 And vcompteur <> 1) Then 

Et sa marche !!!! Merci comme même le Forum

Rechercher des sujets similaires à "verifier date comprise entre deux dates vba"