Affichage nom client sur planning

Résolu/Fermé
grincheux006 Messages postés 246 Date d'inscription lundi 15 août 2011 Statut Membre Dernière intervention 8 septembre 2019 - 18 juin 2016 à 14:22
grincheux006 Messages postés 246 Date d'inscription lundi 15 août 2011 Statut Membre Dernière intervention 8 septembre 2019 - 18 juin 2016 à 23:40
Bonjour,

Dans le fichier ci-joint:

http://www.cjoint.com/c/FFsmsasDWyU

J'aimerais que lorsque que je clique ou que je passe le pointeur de ma souris sur un jour en bleu(séjour réservé) il m'apparaisse le nom et si possible le NIA du vacancier.
Autre solution, que le fait de cliquer ou autre me renvoie sur le fichier inscription, sur la ligne concernée.
J'espère avoir été clair et que quelqu'un va pouvoir m'aider.
D'avance merci

1 réponse

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
Modifié par via55 le 18/06/2016 à 15:51
Bonjour

1° Mettre des majuscules à chambre dans toute les cellules de la colonne B de Planning (que les termes soient identiques à ceux d'Inscriptions)

2° Une possibilité : macro à mettre dans le worksheet de la feuille Planning :
Un double clic sur le 1er jour d'un séjour dans le planning fait afficher les nom, prénoms et NIA

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Value <> 1 Then Exit Sub
If Cells(Target.Row, Target.Column - 1) = 1 Then Exit Sub
jour = Cells(6, Target.Column)
chambre = Range("B" & Target.Row)
Dim Ligne As Long
With Sheets("Inscriptions")
Ligne = .Columns(5).Find("*", , , , xlByColumns, xlPrevious).Row
For n = 2 To Ligne
If .Range("E" & n) = chambre And .Range("F" & n) = jour Then ligneclient = n: Exit For
Next
MsgBox .Range("B" & ligneclient) & " " & .Range("C" & ligneclient) & " " & .Range("A" & ligneclient)
End With
End Sub


Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
0
grincheux006 Messages postés 246 Date d'inscription lundi 15 août 2011 Statut Membre Dernière intervention 8 septembre 2019 7
18 juin 2016 à 16:04
Bonjour VIA.

J'essaie de saisir ta macro, mais je suis vraiment une quiche et je n'y arrive pas. Je ne vois même pas ce qu'est le worksheet de la feuille.
Te serait il possible de l'insérer dans mon fichier et de me le renvoyer?
J'en demande beaucoup je sais.
Mais cela m'enlèverait une épine du pied.
D'avance merci mais ne te gène pas pour me dire si j'en demande trop.
Encore merci de prendre du temps pour m'aider.
0
grincheux006 Messages postés 246 Date d'inscription lundi 15 août 2011 Statut Membre Dernière intervention 8 septembre 2019 7
18 juin 2016 à 16:08
Ou explique moi pas à pas comment faire. A quel endroit exactement dois je insérer tes 14 lignes, car dès que je crée une macro et que je fais un copier coller il me trouve des soucis se "sub" et je ne sais quoi.
Je suis une buse!!!! Désolé
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702 > grincheux006 Messages postés 246 Date d'inscription lundi 15 août 2011 Statut Membre Dernière intervention 8 septembre 2019
18 juin 2016 à 17:23
Re

J'aurais du mieux expliquer :

Pour attribuer une macro à un évènement sur une feuille (ici le double-clic dans une cellule) :
ALT+F11 pour ouvrir l'éditeur VBA
Double-clic dans l'arborescence à gauche sur le nom de la feuille concernée
Copier-coller la macro dans la page blanche de droite
Fermer l'éditeur

Voilà ton fichier dans lequel j'ai collé la macro
http://www.cjoint.com/c/FFspqx6snZe

Explications de ce que fait la macro :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'si la valeur dans cellule du double-clic n'est pas 1 : sortie de la macro
If Target.Value <> 1 Then Exit Sub
' si la cellule précédant celle du double-clic =1 c'est que ce n'ets pas la 1er jour alors sortie
If Cells(Target.Row, Target.Column - 1) = 1 Then Exit Sub
' sinon on récupère la date en ligne 6 et colonne de la cellule cible
jour = Cells(6, Target.Column)
' et on récupère dans la col B de la ligne de la cellule cible le nom de la chambre
chambre = Range("B" & Target.Row)
Dim Ligne As Long
' Tout ce qui commence par . s'appliquera à la feuille Inscriptions
With Sheets("Inscriptions")
' dernière ligne remplie de la colonne (
Ligne = .Columns(5).Find("*", , , , xlByColumns, xlPrevious).Row
' Boucle sur les lignes de la 
For n = 2 To Ligne à la dernière
' si sur une ligne on trouve en E la chambre et en F le jour on récupère le n° de cette ligne dans la variable ligneclient et on sort de la boucle
If .Range("E" & n) = chambre And .Range("F" & n) = jour Then ligneclient = n: Exit For
Next
' Affichage dans une fenêtre des données en B, C et A de la ligneclient
MsgBox .Range("B" & ligneclient) & " " & .Range("C" & ligneclient) & " " & .Range("A" & ligneclient)
End With
End Sub


Cdlmnt
Via
0
grincheux006 Messages postés 246 Date d'inscription lundi 15 août 2011 Statut Membre Dernière intervention 8 septembre 2019 7 > via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024
18 juin 2016 à 17:58
VIA tu es le ou la meilleure.
Je vais garder précieusement toutes tes explications et essayer de comprendre afin de pouvoir répéter cet exemple.
C'est pas gagné bien sur, mais je vais essayer.
Je te remercie vraiment beaucoup pour tout ce que tu as fait pour m'aider.
Quel plaisir de voir qu'il existe encore des personnes prêtent à en aider d'autres sans rien attendre en retour.
Enfin j'espère ne pas recevoir de facture ultérieurement!!!! Hihihihi
Encore merci
Et je reviendrai vers toi dans quelques jours pour un problème de d'extraction de statistiques et d'extraction de liste de client en saisissant des dates.
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702 > grincheux006 Messages postés 246 Date d'inscription lundi 15 août 2011 Statut Membre Dernière intervention 8 septembre 2019
18 juin 2016 à 18:07
Pas de problème, content de savoir que ça te convient
A+
0