Fonction de recherche VBA

Résolu
lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerais utiliser une fonction de recherche dans mon classeur:

J'ai une colonne A avec des taches à faire, et une colonne B avec la date de réalisation des taches

j'aimerais que à chaque ouverture du classeur, un boite de dialogue s'ouvre et affiche le contenu de la cellule A (la tache) à coté de la cellule B correspondant au jour

J'ai bien essayé d'y arriver tout seul en regardant des modèles sur des forums mais c'est au delas de mes capacités!

Merci de votre aide



2 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour

Macro à mettre dans ThisWorkbook (Faire ALt F11 pour ouvrir editeur, double-clic sur ThisWorkbook dans arborescence copier-et coller la macro dans la page et fermer éditeur

Private Sub Workbook_Open()
For n = 2 To 30 ' boucle sur les lignes 2 à 30 - modifier ici les n°s de lignes si nécessaire
' si la date en colonne B correspond à aujourd'hui alors on relève dans variable x le N° de la ligne
If CDate(Sheets(1).Range("B" & n)) = Date Then x = n 
 Next
'Message affichant la tache inscrite en ligne x
MsgBox ("Tache pour aujourd'hui : " & Sheets(1).Range("A" & x))
End Sub


Cdlmnt
Via
0
lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   1
 
En effet cela fonctionne parfaitement
Mais j'ai oublié de préciser qu'une même date revient plusieurs fois et que donc la recherche doit relever toutes les occurrences
J'espère que cela ne complique pas trop la tache

En tout cas un grand merci pour ton aide Via55!

(Et aussi merci pour les explications en vert au moins je comprend ce que je fais)
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
Ok, dans ce cas :
Private Sub Workbook_Open()
taches=" A faire aujourd'hui "
For n = 2 To 30 ' boucle sur les lignes 2 à 30 - modifier ici les n°s de lignes si nécessaire
' si la date en colonne B correspond à aujourd'hui alors on relève la tache et on l'ajoute en allant à la ligne
If CDate(Sheets(1).Range("B" & n)) = Date Then taches=taches & chr(10) &
Sheets(1).Range("A" & n)
next n
'Message affichant les taches
MsgBox  taches  
End Sub
0
lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   1
 
Ce code ne fonctionne pas, :s
Quand je l'ai copié il y avait une erreur de compilation j'ai supposé que la ligne 6 devait se trouver sur la ligne 5 car je trouvais cela bizare de terminer par &
Mais même si l'erreur de compliation disparait, à l'ouverture de la feuille j'ai une erreur "incompatibilité de type"
0
lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   1
 
Et même le premier code que vous m'avez donné qui fonctionnait bien hier, ne fonctionne plus aujourd'hui "incompatibilité de type"
0
lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   1
 
Alors au final la fin de la ligne j'ai marqué:
Private Sub Workbook_Open()
taches = " A faire aujourd'hui "
For n = 2 To 30
If CDate(Sheets(1).Range("B" & n)) = Date Then
taches = taches & Chr(10) & Sheets(1).Range("A" & n)
Next n
MsgBox taches
End Sub


Mais la il me dit Next sans For pourtant après recherche cette boucle semble correcte
0
Maurice
 
Bonjour

pour trouver la date du Jour


Sub ChercheJour()
Nlig = Application.Match(Val(CDbl(Now)), Columns(2), 0)
If IsError(Nlig) Then
MsgBox "Date non trouvée ?"
Else
MsgBox ("Tache pour aujourd'hui : " & Range("A" & Nlig))
Application.Goto Range("A" & Nlig), True
End If
End Sub


A+
Maurice
0
lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   1
 
Ce code fonctionne bien merci Maurice mais même problème que pour le code de Via55, il ne recherche qu'une correspondance
0
lilounice Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   1
 
Je ne pense pas avoir assez insisté: Merci sincèrement du temps que vous passez sur le forum à aider bénévolement des gens !
0