Bonjour,
Je souhaite pouvoir insérer le même contenu dans plusieurs cellules préalablement sélectionnées par l'utilisateur. Les mêmes données sont proposées sous forme de listes déroulantes dans des cellules et je voudrais qu'en sélectionnant 3 cellules (par exemple), il soit possible que le choix de l'élément dans la liste déroulante s'applique aux trois cellules sélectionnées. Petit détail (qui peut avoir son importance), le contenu de la cellule est construit par une fonction à partir de l'élément sélectionné dans la liste déroulante.
Ma procédure initiale, située dans la feuille concernée, est sous la forme suivante :
J'avais compris condition "target.Count = 1" me permettait justement d'éviter que plusieurs cellules soient sélectionnées, mais il n'en est rien. Je rentre dans la condition même lorsque plusieurs cellules sont sélectionnées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Private Sub Worksheet_Change(ByVal target As Range) Sheets(f_base_donnees_2bis).Unprotect If Not Intersect(Columns("E"), target) Is Nothing And target.Count = 1 And target.Row > 1 Then If target.Offset(0, -3) Like "Menuiserie*" Then Call Proposition_multiples(target) ' Permet de construire le contenu End If End If [...]
D'ailleurs, lors de la première ouverture de mon fichier, le code suivant fonctionne. Lorsque je sélectionne plusieurs cellules et que je change la valeur d'une d'entre elle le résultat s'applique à toutes les cellules sélectionnées :
Par contre, je ne peux plus utiliser ce code lorsque je change le contenu que d'une seule cellule, car la ligne Application.Undo de ma fonction Proposition_multiples ne fonctionne plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 If Not Intersect(Columns("E"), target) Is Nothing And target.Count = 1 And target.Row > 1 Then If target.Offset(0, -3) Like "Menuiserie*" Then Call Proposition_multiples(target) Selection.Value = target End If End If
J'espère avoir exposé suffisamment précisément mon objectif pour que vous puissiez me donner quelques pistes de travail...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub Proposition_multiples(target As Range) ' Procédure permettant d'accepter plusieurs choix de listes dans une même cellule, séparés par ", " Dim valsaisie Dim ValSaisie2 Dim p1 As Integer Dim P2 As Integer Application.EnableEvents = False Application.ScreenUpdating = False valsaisie = target ' copie de la valeur de la nouvelle cellule Application.Undo ' retour en arrière : cellule avant changement [...]
Merci d'avance.
Partager