activer une pou plusieurs cellules en rapport à une autre

0

Bonjour,

J'ai créé une cellule avec une liste de choix, soit "du personnel" ou "une entreprise". D'après le texte sélectionné dans cette cellule, je souhaite que plusieurs cellules apparaîssent.

Je vous remets 1 feuille plus explicative sur le lien suivant:

https://www.cjoint.com/c/LKigmhDVd0R

    Posté le 8 novembre, 07:15
    par Michel
    Répondre
    0

    Bonjour,

    Un fichier Excel serait mieux qu'un PDF

    Posté le 8 novembre, 07:53
    0

    Bonjour Michel, le fil,

    je propose ce fichier : https://www.cjoint.com/c/LKioe2LVAq0

    1) en B2, sélectionne "du personnel", et regarde ce qui se passe.

    2) en B2, sélectionne "une entreprise", et regarde ce qui se passe.

    3) sélectionne B2, appuie sur la touche Suppression, et regarde
    ce qui se passe.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    pour les 2 premiers points : note que comme plusieurs cellules
    sont sélectionnées, ça te permet de faire une "saisie guidée" :
    c'est pour aller sur la cellule suivante dans une sélection.

    * pour des déplacements verticaux : utilise Entrée ou Maj Entrée
    pour aller sur la cellule suivante (vers le bas ou vers le haut).

    * pour des déplacements horizontaux : utilise Tab ou Maj Tab
    pour aller sur la cellule suivante (vers la droite ou la gauche).

    rappel : Tab est la touche de Tabulation (à gauche de A).

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    en colonne A, sous la ligne 6, tu peux ajouter d'autres cellules avec
    le texte "Je recherche" ; pour la cellule qui est juste à droite (donc
    en colonne B)
    , tu dois ajouter une validation de données : liste
    avec ces 2 items : "du personnel", "une entreprise" :

    Autoriser : Liste ; Source : du personnel;une entreprise

    le code VBA marchera aussi pour ces ajouts : inutile de le modifier.

    ------------------------------------------------------------------------------------------

    code VBA du module de Feuil1 :

    Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)
      Dim plg As Range, lig&, vx$
      With Target
        If .CountLarge > 1 Then Exit Sub
        If .Column <> 2 Then Exit Sub
        lig = .Row: If lig = 1 Then Exit Sub
        If .Offset(, -1) <> "Je recherche" Then Exit Sub
        vx = .Value: Application.ScreenUpdating = 0
      End With
      Application.EnableEvents = 0
      Cells(lig + 2, 1).Resize(, 2).ClearContents
      Cells(lig + 4, 1).Resize(, 2).ClearContents
      If vx = "" Then Application.EnableEvents = -1: Exit Sub
      Set plg = Cells(lig + 2, 1): Set plg = Union(plg, Cells(lig + 4, 1))
      If vx = "du personnel" Then
        Cells(lig + 2, 2) = "employé(s)"
        Cells(lig + 4, 1) = "Explicatif du travail"
      Else
        Cells(lig + 2, 1) = "Explicatif de l'objet"
        Cells(lig + 4, 1) = "Type de travail"
        Set plg = Union(plg, Cells(lig + 4, 2))
      End If
      plg.Select: Application.EnableEvents = -1
    End Sub

    IMPORTANT

    ce code VBA marche pour ton 1er exemple où "Je recherche" est en ligne 2 et AUSSI pour ton 2ème
    exemple où "Je recherche" est en ligne 4 ; si "Je recherche" est sur une autre ligne, ça marchera
    aussi ; sauf pour la ligne 1, car selon tes 2 exemples, tu n'utilises pas la ligne 1 : c'est à partir de
    la ligne 2 minimum
    .

    rhodo

    rhodo Posté le 8 novembre, 15:25
    par rhodo

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :