Userform - listes dépendantes - bug dans le premier choix

Bonjour à tous et merci à qui pourra m'aider,

j'ai fais une rapide recherche sur le forum sans trouver ma solution, si ce post fait double emplois désolé d'avance.

Mon problème est le suivant :

Afin d'alléger la charge de travail lors des préparations scolaires, j'essaye de créer un Userform excel permettant de choisir :

  • la discipline (math, français éveil, ...)
  • Le domaine suivant la discipline
  • la compétence spécifique suivant le domaine
  • la compétence d'intégration suivant la compétence spécifique

le tout dans la feuille "Liste".

les résultats des listes déroulantes sont à copier dans des cellules de la colonne "B" de ma feuille "préparation".

Pour ça, j'ai créé des choix (If) pour que si la discipline est "math", il lance une boucle (Do While) permettant d'afficher les résultats de la ligne "2" jusqu'à la première cellule vide (" ") dans ma liste déroulante "domaine", que si c'est la discipline "français", le Do While commence à la ligne "22", etc... suivant leur place dans la feuille "listes".

Et ainsi de suite jusqu'à la dernière liste (Bien que le code soit différent plus loin parce que mes tableaux sont soit en colonne, soit en ligne mais c'est un détail jusque là, je ne vous ai d'ailleurs pas mis cette partie).

Lorsque je sélectionne dans mon userform la discipline "Math", pas de souci, la liste domaine fonctionne parfaitement mais, dès que je veux choisir une autre discipline (français ou éveil), une erreur se produit et je ne sais pas pourquoi. il me renvoie un erreur "1004" à la ligne de code

Do While Cells(22, Colonne) <> " "

Je vous joins un fichier dont les premiers sub sont identiques au fichier d'origine que j'ai afin que vous vous rendiez compte du problème (pour info, le Userform "préparation" est à lancer à partir de la feuille "listes" dans le visualbasic car je n'ai pas remis les codes de débuts lançant automatiquement le userform à l'ouverture pour alléger et cibler le problème).

Merci à vous.

Cordialement,

Bonjour,

Il faut faire attention pour ne pas tout nommer du même nom.

La feuille se nomme "Préparation" et le Userform aussi.

Le Userform pourrait se nommer "UF_Préparation"; ainsi l'on sait que l'on parle ici du Userform et non de la feuille.

Quand il veut faire références aux objets d'un Userform et que nous sommes dans le Userform, l'on écrit Me. ... me = moi

Quand l'on veut dire vide = "" ... l'on met les guillemets collés.

Si tu inscris = " " ... cela veut dire contenant une espace.

Un essai ...

ric

Salut ric et merci d'avoir pris le temps de le répondre et... De me sauver !

Mais quel C** c'était tout à fait logique le coup de l'espace en plus...

Pour le double nom identique effectivement ça aurait été plus simple de changer le nom du FU... J'ai fait ça vite fait avant de partir travailler, l'original ne porte pas le même nom

Pour le Me, effectivement j'ai repris l'idée imbrication d'un tuto où il n'utilise pas le Me, je n'y ai pas pensé, je suis débutant dans le VBA et encore plus dans le UF ^^

Encore merci de tous les conseils, je prends bonne note de tout.

A bientôt,

Cordialement

Salut Rékiss,

Salut Ric,

Banco pour tous les conseils de Ric auxquels j'ajouterai l'obligation pour un fichier comme le tien de respecter une structure systématique pour chaque section de tes matières !

Ainsi, j'ai dû modifier la position des "Compétences spécifiques" d'Eveil (dont il faudra sans doute vérifier la numérotation) pour les harmoniser avec celles de Math et Français.

Place maintenant les "Compétences d'intégration" de la même façon qu'au-dessus et tout ira bien.

J'ai placé un bouton dans 'Listes' pour lancer l'USF.

Private Sub CboDiscipline_Change()
'
Dim rCel As Range, iRow%
'
With Worksheets("Listes")
    iRow = .Range("C:C").Find(what:=Me.CboDiscipline.Text, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row
    Me.CboDomaine.List = WorksheetFunction.Transpose(.Range("C" & iRow + 1).Resize(1, .Cells(iRow + 1, Columns.Count).End(xlToLeft).Column - 2))
End With
'
End Sub

A+

Salut Curulis57

Merci déjà d'avoir pris le temps de regarder à mon problème.

Banco pour tous les conseils de Ric auxquels j'ajouterai l'obligation pour un fichier comme le tien de respecter une structure systématique pour chaque section de tes matières !

Effectivement la structure n'est pas la meilleure mais il faut savoir qu'avant de créer l'UF, j'ai en fait créé un fichier avec des listes déroulantes intégrées directement dans ma feuille (sans passer par du VBA donc). Dès lors, chaque points et sous-points sont repris dans des noms de listes, je n'ai pas changé la mise en forme et ai fait un rapide copier/coller de mon fichier original. Je me retrouve à devoir utiliser un UF parce que c'est plus visuel et joli, mais aussi parce que j'avais un autre problème. Dans la méthode que j'utilisais il n'était pas possible d'ajouter des exercices ou des étapes d'exercices à ma préparation finale sans devoir recréé toute mes listes déroulantes une à une. Je pense qu'avec l'UF je pourrai, à terme, y arriver et les faire s'exporter dans mes signets Word de préparation finale (mais c'est la un autre problème et je ne manquerai surement pas de revenir sur le forum si je n'y arrive pas ^^)

Ainsi, j'ai dû modifier la position des "Compétences spécifiques" d'Eveil (dont il faudra sans doute vérifier la numérotation) pour les harmoniser avec celles de Math et Français.

Dans le programme scolaire belge, les compétences d'éveil sont ainsi reprises, je ne peux me permettre d'en changer puisque l'école demande que, dans la préparation, les points du programmes soient repris stricto sensu...

Merci encore pour tous vos conseils, j'en prend bonne note bien entendu

Rékiss

Rechercher des sujets similaires à "userform listes dependantes bug premier choix"