Besoin d'un déboguage sur Useform (mixe de Textbox et Combobox)

  • Initiateur de la discussion Initiateur de la discussion yannoch
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

yannoch

XLDnaute Junior
Bonsoir à tous,

je suis en train de me faire un petit fichier pour un besoin personnel qui contiendra au moins 2 Useforms et divers autres fonctions simples.
Le VBA n'étant pas ma tasse de thé (comme tout ce qui développement d'ailleurs), mon fichier est plus un assemblage de macros réalisées ya 3 ou 4 ans et de bout de code trouvé sur le forum.
En faisant cela, je me heurte forcément à des erreurs, et là, il y en a une que j'arrive pas à résoudre depuis une bonne journée. Je viens donc demande un coup de main 🙂
Le plus simple est de voir par vous-même, lancez l'useform AS_Produit via le bouton "Ajouter/Supprimer 1 élément à 1 catégorie", sélectionnez 1 catégorie, puis soit vous rentrez le reste des informations à la main ou sélectionnez 1 produit et modifiez-le un peu, et enfin cliquez sur "Ajouter" et là vous aurez le message d'erreur malgré que les données ont bien été ajouté.

Question bonus : comment aliment-t-on une combobox directement via des données dans la macro ? j'ai trouvé 1001 exemples pour alimenter via une plage de cellules, mais j'ai pas besoin car ce sont des données fixes qui ne changeront jamais.

Merci à tous d'avance pour votre aide
 

Pièces jointes

Re : Besoin d'un déboguage sur Useform (mixe de Textbox et Combobox)

SALUT yannoch !

ton code debug a ce niveau la :
Code:
With Sheets(categorie.Value)
le message est: l'indice n'appartient pas a la sélection donc tu fait référence a une feuille qui n'existe pas dans ton projet la feuille "Catégorie" n'existe pas
Cordialement
 
Re : Besoin d'un déboguage sur Useform (mixe de Textbox et Combobox)

Merci pour ton aide mais je ne sais pas quoi faire dans ce cas-là.
La 1ère combobox se rempli grâce au programme "Private Sub UserForm_Initialize()", qui met simplement la liste des onglets dans la combobox.
Ensuite, je rempli la 2nd combobox en fonction du choix dans la première, mais comme j'active pas la feuille selectionné dans la 1ère, je récupère donc sa valeur pour que la 2nd combobox sache ou pioché.
A partir de là, je remplis simplement le reste des textbox.
Ca s'est corsé à partir du moment ou j'ai rajouté la partie pour ajouter un nouvel élément, et surtout la partie pour trier tout ça automatiquement (Private Sub Ini() je crois).

Bref, tout est un peu entrecroisé, et je patauge un peu là.
 
Re : Besoin d'un déboguage sur Useform (mixe de Textbox et Combobox)

SALUT yannoch !
je me suis permet de modifier un peu ton code en supprimant les feuille qui n'exister pas pour la destination des données il faut que tu modifie en respectant bien sur le syntaxe ou le nom des feuille qui apparait dans la fenêtre gauche VB
Cordialement
 

Pièces jointes

Re : Besoin d'un déboguage sur Useform (mixe de Textbox et Combobox)

Merci encore, le bug n'est plus là, ça fonctionne comme ça devrait mais seulement je veux travailler uniquement avec la feuille Cat_01.
En remplacant le With Sheets(categorie.Value) par With Cat_01, l'useform ne fonctionne plus. La 2nd combobox reste sur les valeurs de la feuille Cat_01 (les textbox qui suivent font pareil donc) quelque soit l'onglet sélectionné dans la 1ère combobox (combobox "categorie"). (je sais pas si je suis clair, je me mélange souvent les pinceaux dans ce que je dis).

Donc, en fait, faudrait que j'arrive à mettre la feuille en face du With en fonction de mon choix dans la combobox "categorie". 😕
 
Re : Besoin d'un déboguage sur Useform (mixe de Textbox et Combobox)

Bonjour Bebere,

merci beaucoup pour ton aide, ça fonctionne mieux comme ça. 🙂
Encore un truc par contre, j'ai vu que dans le programme Private Sub Ini() (pour le tri automatique), tu as remplacé la ligne Set WS = ThisWorkbook.Sheets(categorie.Value) par Set WS = ThisWorkbook.Sheets("Cat 01"), du coup, le tri ne se fait plus que sur la feuille Cat 01, et plus du tout sur la feuille ou l'on vient d'ajouter un produit (du moins, c'était mon idée de base mais ça marchait pas à cause du premier bug).

J'ai essayé ton astuce qui a eliminé le bug, c'est-à-dire :
If categorie.ListIndex = -1 Then Exit Sub
Set Ws = Worksheets(categorie.Text)
Mais là, le tri ne s'applique plus du tout.

Donc, c'est un peu la même chose que précédemment (enfin je pense), il faut trouver un moyen pour que la commande ThisWorkbook.Sheets (du programme Private Sub Ini() ) s'applique à la feuille ou l'on vient d'ajouter les données 😕
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
28
Affichages
2 K
Réponses
3
Affichages
348
Retour