Fonction de recherche VBA [Résolu/Fermé]

Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
- - Dernière réponse : lilounice
Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
- 22 juil. 2015 à 17:54
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



Afficher la suite 

2 réponses

Messages postés
11442
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
6 décembre 2019
1540
0
Merci
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
via55
Messages postés
11442
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
6 décembre 2019
1540 > lilounice
Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
-
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
lilounice
Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
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"
lilounice
Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
1 -
Et même le premier code que vous m'avez donné qui fonctionnait bien hier, ne fonctionne plus aujourd'hui "incompatibilité de type"
lilounice
Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
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
lilounice
Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
1 -
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)
End If
Next n
MsgBox taches
End Sub


Cette version marche
merci!
0
Merci
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
lilounice
Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
1 -
Ce code fonctionne bien merci Maurice mais même problème que pour le code de Via55, il ne recherche qu'une correspondance
lilounice
Messages postés
32
Date d'inscription
dimanche 16 février 2014
Statut
Membre
Dernière intervention
27 juillet 2015
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 !