Combobox en cascade

Bonjour,

J'ai créé un formulaire permettant de choisir des informations dans deux combobox.

Les valeurs de la seconde liste déroulante varient en fonction de l'item sélectionné dans la première liste déroulante.

Toutefois, bien que j'ai réussi à remplir mes combobox via VBA j'obtiens très fréquemment une erreur de capacité que ça soit en sélectionnant les un item dans ma seconde liste déroulante ou lorsque je valide mon formulaire.

Les valeurs présentent dans mon formulaire sont importées de la feuil2 (réglages) et doivent être insérées dans la feuil1 (Base) lors de la validation du formulaire.

Je vous joins mon fichier test ci-dessous :

Merci d'avance pour votre aide,

Horusbk

bonjour,

Tu devrais commencer chaque module par :

Option Explicit

Bonjour,

Option Explicit n'a rien à voir.

Le problème vient de .End(XlDown): Il faut au moins 2 cellules.

il aurait fallu: nb_lignes = Feuil2.Cells(2, no_colonne).End(xlDown).Row

Boisgontier

Bonsoir,

Encore merci Boisgontier ça fait plaisir de ne plus avoir de bug !

Option Explicit

A quoi sert cet argument ?

Option Explicit

Cette instruction rend obligatoire la déclaration des variables.

Sur l’exemple, la variable ttal n’a pas été déclarée. Une erreur est détectée par VBA. Sans l’option explicit , cette erreur n’aurait pas été détectée par VBA à la compilation (ce genre d'erreur est détecté très rapidement à la mise point)

Option Explicit

Sub essai()
  Dim prix As Integer, qte As Integer, total As Integer
  prix = 123              ' 123 dans la variable Prix
  qte = 5                   ' 5 dans la variable Qte
  total = prix * qte
  MsgBox ttal             ' la variable ttal n'existe pas
End Sub

Excel écrit automatiquement Option Explicit à chaque nouveau module si on coche dans le menu :

Outils / Options / Onglet Éditeur / Déclaration des variables obligatoire

-En découpant au maximum un programme en procédures et fonctions courtes, on diminue les risques d'erreur de programmation.

-L'essentiel des bugs des programmes proviennent :

.des cas particuliers non testés.

.de variables globales. Les variables globales à un module ou les variables publiques ne doivent être utilisées qu'en cas de nécessité . D'une façon générale, il faut utiliser le passage de paramètres.

Boisgontier

Merci pour ces explications !

Bonjour,

En plus des erreurs détectée lors de la compilation, j'ajouterais un avantage non négligeable de la déclaration systématique de toutes les variables : Bénéficier de l'intellisense avec certaines variables.

intellisense
Rechercher des sujets similaires à "combobox cascade"