Création rapide de beaucoup de Zone de Liste déroulante (Contrôle ActiveX)

Bonjour à toutes et tous,

Pour la future création d'un fichier, je vais avoir besoin d'insérer beaucoup de "Zone de Liste déroulante (Contrôle ActiveX)", environ 560 réparties dans 17 feuilles.

Elles auront toutes la même taille, le même décalage droit, la même source, les mêmes paramètres esthétiques, le même code. Il n'y que le décalage en hauteur (Top) qui change à chaque fois.

Ma question, existe-t-il un moyen de les créer rapidement plutôt que de les faire une par une, les placer à la main et copier/coller le code ?

Merci pour votre aide ! Bonne journée ;)

Salut SOTIN

A mes yeux, qu'elle hérésie de vouloir faire ça

Au delà du poids du fichier qui va considérablement augmenté, va venir s'ajouter le gros risque de corruption du fichier

Quel est ce besoin exactement ?

A+

Bonjour BrunoM45,

Merci de te pencher sur ma problématique.

Je te joins le fichier de base. Dans la feuille Thierry, dans la cellule D4 il une combobox et c'est celle-ci que je dois dupliquer à chaque cellule de chaque feuille.

Le but : Actuellement toutes les cellules de la colonne "D" sont renseignées comme "Listes" via l'onglet Validation des données donc lorsque l'on développe la liste, apparait tous les noms de chantier présent dans la feuille "Liste chantier".

Mon chef voudrait que lorsque l'on écrit une lettre dans ces cellules apparaisse les chantiers commençant par cette même lettre (comme c'est le cas avec une combobox). Raison pour laquelle l'idée d'insérer une combobox à chaque cellule m'est venu.

Petite précision, dans la feuille "Liste chantier", le calcul présent dans les cellules [B2:S86] doit rester viable. 😉

Evidemment je reste preneur de meilleur solution 😁

Merci d'avance !

12modele-4-jours.xlsm (188.33 Ko)

Bonjour Sotin,

A priori, la solution est une seule combobox par feuille, cette combobox se déplaçant sur la cellule sélectionnée.

A voir donc avec BrunoM45.

Bonjour Thev,

Je n'avais pas du tout imaginé cette solution ! veut tu dire que lorsque l'on clique sur une cellule de la colonne "D", la combobox se déplace jusqu'à cette emplacement ?

A + ;)

Du coup j'ai écrit ce petit bout de code qui fonctionne, je bloque juste pour déplacer une combobox d'après la cellules sélectionnée

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim h As Integer

h = 100

  ' Sort si on est pas dans la colonne D
     If Intersect(Range("D:D"), Target) Is Nothing Then Exit Sub

  ' Sort si on est en dehors du tableau
     If Target.Row < 4 Or Target.Row > 36 Then Exit Sub

  ' Si tout es ok déplace la combobox d'après la valeur de h
     Me.ComboBox1.Top = h

End Sub

Dans le cas présent si les conditions sont respectées, la combobox se déplace à une hauteur égal à la variable "h". Comment convertir cette variable pour que la valeur corresponde à la cellule sélectionnée ?

A + ;)

Une idée me traverse l'esprit, mais cela me semble inutilement complexe ...

Je dirais que h = (valeur de la hauteur des lignes) * (nombre de ligne précédent la cellule sélectionnée) ...

Bonjour,

Vite fait...

Target.Top?

Bonjour cousinhub,

C'est un vite fait .... Bien fait ! ça fonctionne bien merci beaucoup pour ton aide ;)

Bonne journée

Rechercher des sujets similaires à "creation rapide beaucoup zone liste deroulante controle activex"