Alerte Date du mois

fred777

XLDnaute Junior
Bonjour le forum,

J'ai une base de donnée qui contient en colonne AY des dates de fin de contrat. A l'ouverture, je voudrai une alerte pour toutes les lignes dont le contrat arrive à échéance le mois courant.

Voici mon code

Private Sub Workbook_Open()
'Définition des variables :
Dim ColDossier As String, ColDate As String
'Affectation des variables
ColDossier = "A"
ColDate = "AY"
'Départ de la boucle à la dernière cellule de la feuille
ActiveCell.SpecialCells(xlLastCell).Select
Cells(ActiveCell.Row, ColDate).Select
Selection.End(xlUp).Select
'Début Boucle :
Do While ActiveCell.Row > 1 'pas d'action sur les lignes 1 à 1
If ActiveCell.Value > 1 And ActiveCell.Value < Date + 15 Then 'controle valeur de date
MsgBox "Attention contrat " & _
IIf(Cells(ActiveCell.Row, ColDossier).Value = "", _
Cells(ActiveCell.Row, ColDossier).End(xlUp).Value, _
Cells(ActiveCell.Row, ColDossier).Value) & _
" à renouveler !" 'affiche le message
End If
ActiveCell.Offset(-1, 0).Select 'passe une ligne
Loop
'Fin Boucle.
End Sub

Le code fonctionne pour les contrats qui sont arrivés à échéance depuis + de 15 jours, mais ce que je souhaite ce sont les contrats qui sont à échéance le mois en cours (entre le 1er du mois et le 30 ou 31). Exemple si aujourd'hui le 22/10/2014, je souhaite être alerté sur toutes les échéances d'octobre. Je n'arrive pas à adapter ce code.

Merci d'avance.
 

Paf

XLDnaute Barbatruc
Re : Alerte Date du mois

re

Le plus simple est sans doute de joindre une copie du classeur sans données confidentielles, pour pouvoir mener des tests, vérifier le type de données (et éventuellement réécrire cette boucle basée sur des activecell que je n'aime pas)

A+
 

Staple1600

XLDnaute Barbatruc
Re : Alerte Date du mois

Re

fred777
Au passage: Pourquoi passer par une macro ?
Un simple Filtre automatique avec comme critère le mois en cours t'afficherai les contrats à echéances
(et en utilisant les affichages personnalisés, il te suffirait ensuite d'un seul clic pour voir les dates recherchées)
 

fred777

XLDnaute Junior
Re : Alerte Date du mois

Bonjour Staple,

En fait au départ j'ai un formulaire me permettant de filtrer ma BDD avec différents critères. Je souhaitais à l'aide de 2 TextBox (TextBox1= date1) et (TextBox2= date2) demander un filtrage par exemple de tous les contrats arrivant à échéance entre date1 (TextBox1) et date2 (TextBox2). Sachant que les dates de fin de contrats se trouvent en Colonne "AY".

Exemple : je voudrai tous les contrats arrivant à échéance entre le 17 septembre 2014 et le 26 novembre 2014.

Mais je bloque sur le critère. Voici mon bout de code.

Private Sub CmdVoir_Click()

'NomJeuneFille
If ComboBox2.ListIndex <> -1 Then
jeunefille = ComboBox2.Value
Criteres = Criteres & "(bdd!AQ2 = """ & jeunefille & """) * "
End If

'Statut
If CboStatut.ListIndex <> -1 Then
statut = CboStatut.Value
Criteres = Criteres & "(bdd!H2 = """ & statut & """) * "
End If

'Date1
If TextBox2.Value <> "" Then
Datedebut = TextBox2.Value
Criteres = Criteres & "(bdd!AY2 >= """ & Format(TextBox2, "dd/mm/yyyy") & """) * "
End If


'Date2
If TextBox3.Value <> "" Then
Datefin = TextBox3.Value
Criteres = Criteres & "(bdd!AY2 <= """ & Format(TextBox3, "dd/mm/yyyy") & """) * "
End If


Criteres = "=" & Criteres & "1"
Sheets("filtre").Range("A2").Value = Criteres


Sheets("filtre").Activate
Range("zonebdd").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4:AZ4"), Unique:=False


If Range("filtre!A5").Value = "" Then
MsgBox ("Aucun nom ne répond à tous vos critères")


ElseIf Range("filtre!A5").Value <> "" Then
ActiveWorkbook.Names.Add Name:="Fiche", RefersToR1C1:= _
"=OFFSET(filtre!R5C2,,,COUNTA(filtre!C2)-1)"
Unload frmCriteres
frmSelect.Show

Else
nom = Range("A5").Value
With Sheets("bdd").Range("A:A")
Set C = .Find(Titre, LookIn:=xlValues, LookAt:=xlWhole)
If Not C Is Nothing Then Lig = C.Row
End With
Unload frmCriteres

End If

End Sub

Hélas, ce critère ne fonctionne pas.
 

fred777

XLDnaute Junior
Re : Alerte Date du mois

Bonjour à tous,

Merci staple, j'ai bien compris et je sais faire, mais ce n'est pas cela que je souhaite faire. Je souhaite intervenir uniquement sur un formulaire.

Tous mes critères fonctionnent bien mis à part le critère sur les dates.

Personne pour m'aider ?

Merci d'avance et bonne journée à tous.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87