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