Fonction de recherche VBA

Résolu
lilounice Messages postés 33 Statut Membre -  
lilounice Messages postés 33 Statut Membre -
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

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1. lilounice Messages postés 33 Statut Membre 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
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > lilounice Messages postés 33 Statut Membre
       
      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
    3. lilounice Messages postés 33 Statut Membre 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
    4. lilounice Messages postés 33 Statut Membre 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
    5. lilounice Messages postés 33 Statut Membre 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
  2. 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
    1. lilounice Messages postés 33 Statut Membre 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
    2. lilounice Messages postés 33 Statut Membre 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