A voir également:
- Filtrer données avec un ComboBox
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Excel validation des données liste - Guide
1 réponse
Bonjour,
Dans ton message, tu nous donnes un code.
Peux tu me dire à quoi servent, ce que font les lignes suivantes :
De plus, décrit nous ceci :
EDIT : complément d'information : ou et comment sont déclarées tes variables?
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
Dans ton message, tu nous donnes un code.
Peux tu me dire à quoi servent, ce que font les lignes suivantes :
With ActiveSheet.CB_loadPort For Each portName In ports .AddItem portName Next portName .Style = fmStyleDropDownList .AutoSize = False End With
De plus, décrit nous ceci :
Sub CB_loadPort_Change()
EDIT : complément d'information : ou et comment sont déclarées tes variables?
Avant, j'arrivais jamais à finir mes phrases... mais maintenant je
La première partie du code que tu as mis sert à prendre la liste qui se trouve sur la page vessels et de remplir mon comboBox avec (ce dernier est situé sur une autre feuille)
Mon comboBox s'appelle CB_loadPort, la sous-routine CB_loadPort_change() est appelée lorsqu'on clique sur un commandButton sur la feuille Template. Ce command button copie la feuille template, la renomme et rempli le comboBox qui est initialement vide sur cette feuille.
Le problème ici est que la procédure CB_loadPort_change() est une procédure événementielle qui se déclenche à chaque changement de valeur dans la combobox CB_loadPort. En gros, quand tu sélectionnes une valeur, ou que tu saisis, ne serait-ce qu'un caractère dans celle Combo, le code se déclenche et... remplit à nouveau ta Combobox.
1- le code du CommandButton, doit se trouver dans la procédure CommandButtonXX_Click (ou XX est le numéro du bouton).
2- En VBA, on type chaque variable, sauf s'il s'agit de Variant.
Tes variables :
3- le code de ta combobox, censé filtrer la feuille, devra non pas se trouver dans la procédure CB_loadPort_Change() mais CB_loadPort_Click(). C'est en effet cet événement qu'il convient d'utiliser pour faire en sorte qu'à chaque sélection d'une valeur dans la combo, la macro se déclenche.
4- tu as une Combobox par colonne. Le but ici sera de n'avoir qu'une seule procédure pour toutes tes combobox. cela te fera un code du style :
Code que tu appelleras grâce à :
5- comme tu filtres ta feuille, il te faut aussi une Sub pour tout afficher
6- pour donner une valeur par défaut à ta combobox :
CB_LoadPort.Text = "Select a port"
Je vais prendre le temps d'analyser tout ca, mais vraiment, merci mille fois !