A voir également:
- Filtrer données avec un ComboBox
- Reinstaller windows sans perte de données - Guide
- Effacer les données de navigation - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
- Excel validation des données liste - Guide
- Excel reporter des données sur une autre feuille avec conditions - Forum Excel
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 7/10/2015 à 08:47
Modifié par pijaku le 7/10/2015 à 08:47
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
8 oct. 2015 à 20:50
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.
9 oct. 2015 à 07:56
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"
Modifié par Zanlepan le 9/10/2015 à 14:52
Je vais prendre le temps d'analyser tout ca, mais vraiment, merci mille fois !