Ouverture d'une boîte de dialogue par clic sur cellule

NeverGetOld

XLDnaute Nouveau
Bonjour,

Dans le cadre d'un cours d'informatique en DUT GEA 2e année, j'ai décidé avec deux autres élèves de créer un calendrier de rappel d'anniversaires sur EXCEL.

Ainsi, nous avons réussi à faire :

- Le calendrier mensuel, avec une liste déroulante pour changer le mois.
- Mise en forme conditionnelle pour coloriser la date du jour sur le calendrier.
- Heure défilante et présentation de la date du jour sur le calendrier
- Liste d'anniversaire avec tri sur Date/Nom/Prénom, calcul de l'âge avec Mise en forme conditionnelle pour coloriser la ligne complète lorsque la date du jour correspond à l'anniversaire de la personne.
- Boîte de dialogue qui s'ouvre à l'ouverture du classeur lorsqu'il y a un anniversaire ce jour là ou dans quelques jours

Ce que l'on voudrait faire :

- Lorsqu'il y a un évènement à une date X, faire en sorte qu'une boîte de dialogue apparaisse lorsque l'on clique sur cette date X présentant les évènements du jour.

- A défaut, cela pourrait être sympa aussi que :
Si Date X = Date Evenement
Alors Insérer un commentaire sur la date avec les "Evenements du jour"


J'ai un peu de mal à trouver comment faire, c'est pour cela que j'en appelle à vos cerveaux et à votre aide.

NOTE / La base de données est sur une feuille et le calendrier sur une autre.

Merci par avance pour vos réponses.

Audrey.

Vous trouverez ci-joint une esquisse rapide de mon travail, cela vous permettra sans doute de répondre plus facilement à ma question. À noter que j'y ai juste mis les informations qui me semblaient importantes pour ma question. Mon travail final ne ressemble pas du tout à ça. Ici, il n'y a pas de macro ni rien ;)
 

Pièces jointes

  • Calendrier-i.xls
    33.5 KB · Affichages: 148
  • Calendrier-i.xls
    33.5 KB · Affichages: 176
  • Calendrier-i.xls
    33.5 KB · Affichages: 142
Dernière édition:

NeverGetOld

XLDnaute Nouveau
Re : Ouverture d'une boîte de dialogue par clic sur cellule

J'ai rajouté une esquisse de fichier pour que vous puissiez m'aider plus facilement.

Merci !!

Ah oui aussi, pour info à l'IUT je travaille sur Windows avec une version EXCEL 2000 ou 2003 je crois.

Chez moi je travaille sur MAC et une version EXCEL 2004.
 

JNP

XLDnaute Barbatruc
Re : Ouverture d'une boîte de dialogue par clic sur cellule

Bonjour NeverGetOld et bienvenue :),
Si j'ai bien compris tes désiratas, une ébauche en pièce jointe. Evidement, seul le 28 mars donnera quelque chose... vu que c'est le seul anniversaire du mois de mars.
Bonne journée :cool:
 

Pièces jointes

  • Calendrier-i(1).xls
    61 KB · Affichages: 207

NeverGetOld

XLDnaute Nouveau
Re : Ouverture d'une boîte de dialogue par clic sur cellule

Re-Bonjour,

J'ai une nouvelle question. Admettons dans mon fichier "Calendrier", j'ai un onglet "base" et que dans cet onglet au lieu d'avoir :

Colonne 1 : Prénom
Colonne 2 : Date de naissance

J'ai :

Colonne 1 : Nom
Colonne 2 : Prénom
Colonne 3 : Date de naissance
Colonne 4 : âge

Et qu'au lieu d'avoir une boîte de dialogue m'indiquant

Prénom : Date de naissance

J'aimerai avoir :

Prénom Nom : âge

Quels changements je dois faire ? Je me triture les nerfs depuis ce matin pour trouver la réponse, en vain. Je n'arrive pas à déchiffrer ta macro JNP, notamment cette partie là :

Code:
Dim Ligne As Integer, Evènement As Boolean
Evènement = False
Ligne = 2
With Sheets("base")
    While .Cells(Ligne, 2) <> ""
        If Day(.Cells(Ligne, 2)) = Day(ActiveCell) And _
            Month(.Cells(Ligne, 2)) = Month(ActiveCell) Then
            Evènement = True
        End If
        Ligne = Ligne + 1
    Wend
End With

et celle là :

Code:
Label1 = "Evènement(s) du " & ActiveCell '& "/" & _
    Format(Cells(2, 2), "00") & "/" & Cells(1, 2)
Dim Ligne As Integer
Ligne = 2
With Sheets("base")
    While .Cells(Ligne, 2) <> ""
        If Day(.Cells(Ligne, 2)) = Day(ActiveCell) And _
            Month(.Cells(Ligne, 2)) = Month(ActiveCell) Then
            ListBox1.AddItem (.Cells(Ligne, 1) & " : " & .Cells(Ligne, 2))
        End If
        Ligne = Ligne + 1
    Wend
End With

Honte à moi !!!

Ci joint un nouveau fichier de base.

Merci par avance pour vos réponses.
 

Pièces jointes

  • Calendrier-i.xls
    35.5 KB · Affichages: 101
  • Calendrier-i.xls
    35.5 KB · Affichages: 99
  • Calendrier-i.xls
    35.5 KB · Affichages: 105

JNP

XLDnaute Barbatruc
Re : Ouverture d'une boîte de dialogue par clic sur cellule

Re :),
Si tu rajoute une colonne Prénom, cela va faire :
Code:
Dim Ligne As Integer, Evènement As Boolean
Evènement = False
Ligne = 2
With Sheets("base")
    While .Cells(Ligne, [COLOR=red][B]3[/B][/COLOR]) <> ""
        If Day(.Cells(Ligne, [COLOR=red][B]3[/B][/COLOR])) = Day(ActiveCell) And _
            Month(.Cells(Ligne, [COLOR=red][B]3[/B][/COLOR])) = Month(ActiveCell) Then
            Evènement = True
        End If
        Ligne = Ligne + 1
    Wend
End With
et bien sûr pour le chargement de la ListBox
Code:
ListBox1.AddItem (.Cells(Ligne, 1) [COLOR=red][B]& " " & .Cells(Ligne,2)[/B][/COLOR] & " : " & .Cells(Ligne, [B][COLOR=red]4[/COLOR][/B]))
Bon après-midi :cool:
 

NeverGetOld

XLDnaute Nouveau
Re : Ouverture d'une boîte de dialogue par clic sur cellule

J'ai encore un petit souci. Quand je l'applique à mon fichier final, et que je clique sur une case (qu'il y ait un événement ou pas ce jour là), le débogueur se met en route avec ceci qui apparait :

Erreur d'exécution '13' :

Incompatibilité de type

FIN Débogage Aide

Avec Débogage sur ces lignes :

Code:
        If Day(.Cells(Ligne, 3)) = Day(ActiveCell) And _
            Month(.Cells(Ligne, 3)) = Month(ActiveCell) Then

Je ne comprends pas pourquoi, dans le fichier base tout fonctionne parfaitement lorsque je fais les modifications que tu m'as énoncé JNP, mais dans mon fichier, ça ne veux pas du tout marcher. Pourtant il n'est pas si différent que la base que j'ai avancé...

Merci pour l'aide ;)
 
Dernière édition:

NeverGetOld

XLDnaute Nouveau
Re : Ouverture d'une boîte de dialogue par clic sur cellule

Bonjour,

oui, j'ai bien changé le nom de la feuille partout où cela était nécessaire. Et il me fluote uniquement les deux lignes citées ci dessus.

Là j'ai travaillé dessus sur l'ordinateur de ma soeur, Windows Vista avec Excel 2007 car sur mon MAC avec Excel 2004 quand je modifiais les macro, il ne voulait pas du tout que j'enregistre mon travail.

Ce qui m'étonne c'est que j'ai bien fait les changements sur le fichier de base et tout fonctionnait parfaitement bien !
 

JNP

XLDnaute Barbatruc
Re : Ouverture d'une boîte de dialogue par clic sur cellule

Re :),
Vu le message, il essaie d'appliquer une fonction qui nécessite une date à des données qui ne sont pas une date... Le calendrier est-il bien le même que celui sur lequel j'avais travaillé, et .Cells(Ligne, 3) fait-il bien référence à une date ?
A +
 

NeverGetOld

XLDnaute Nouveau
Re : Ouverture d'une boîte de dialogue par clic sur cellule

Le calendrier est le même. La seule différence est sa place sur la page. J'ai vérifié. C'est bien une date qui est appliquée aux cellules. Sur la base s'il y a plus de trois colonnes ça peut poser problème ?
 

JNP

XLDnaute Barbatruc
Re : Ouverture d'une boîte de dialogue par clic sur cellule

Bonsoir :)
Le calendrier est le même. La seule différence est sa place sur la page. J'ai vérifié. C'est bien une date qui est appliquée aux cellules. Sur la base s'il y a plus de trois colonnes ça peut poser problème ?
S'il y a plus de colonne, il faut que les formules soient indexées dessus... La date de naissance était au début en colonne 2, après, avec le nom en plus, c'était en colonne 3. Il faut donc que tu utilises le n° de la colonne où est la date de naissance. Et l'événementielle regardait l'emplacement exact de ton calendrier, donc il faut la modifier aussi...
Bonne soirée :cool:
 

NeverGetOld

XLDnaute Nouveau
Re : Ouverture d'une boîte de dialogue par clic sur cellule

Bonjour,

Alors voilà, je crois que j'ai trouvé solution à mon problème. En effet, ci-joint le fichier dans lequel on voit apparaître le problème du débogueur. (J'ai dû compresser la pièce jointe, le fichier EXCEL étant trop gros)

Je suis trop bête de ne pas y avoir pensé avant.

En fait, au dessus de la base de données anniversaire, il y a une ligne fusionnée sur plusieurs colonnes dans laquelle il y a une formule. Cette ligne est indispensable à mon projet puisqu'elle rappelle l'anniversaire du jour.

Merci pour les réponses et désolée de ne pas avoir tilté tout de suite sur ce problème évident...
 

Pièces jointes

  • Calendrier-i2.xls.zip
    20.3 KB · Affichages: 99
Dernière édition:

NeverGetOld

XLDnaute Nouveau
Re : Ouverture d'une boîte de dialogue par clic sur cellule

C'est bon, j'ai trouvé par moi même. Il suffisait juste que je mette ligne = 3 au lieu de ligne = 2.

Je suis trop contente. Je vais pouvoir continuer mon travail.

J'apparaît maintenant à un nouveau problème, mais je vais travailler dessus pour essayer de trouver par moi même avant de demander de l'aide.

Encore merci beaucoup =D
 

Discussions similaires

Statistiques des forums

Discussions
312 360
Messages
2 087 594
Membres
103 604
dernier inscrit
CAROETALEX59