Affichage nom client sur planning

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

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1. grincheux006 Messages postés 256 Statut Membre 7
       
      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
    2. grincheux006 Messages postés 256 Statut Membre 7
       
      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
    3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759 > grincheux006 Messages postés 256 Statut Membre
       
      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
    4. grincheux006 Messages postés 256 Statut Membre 7 > via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention  
       
      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
    5. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759 > grincheux006 Messages postés 256 Statut Membre
       
      Pas de problème, content de savoir que ça te convient
      A+
      0