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

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

  • Copie de Liste.zip
    37.5 KB · Affichages: 23

BERRACHED said

XLDnaute Accro
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
 

yannoch

XLDnaute Junior
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à.
 

BERRACHED said

XLDnaute Accro
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

  • Copie de Liste2.zip
    38.8 KB · Affichages: 27

yannoch

XLDnaute Junior
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". :confused:
 

Bebere

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

bonjour Yannoch,Said
voir userform_initialize,categorie,bouton ajouter produit
à bientôt
 

Pièces jointes

  • CopiedeListe2.zip
    36.9 KB · Affichages: 21
  • CopiedeListe2.zip
    36.9 KB · Affichages: 20
  • CopiedeListe2.zip
    36.9 KB · Affichages: 23

yannoch

XLDnaute Junior
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 :confused:
 

Bebere

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

oui,Yannoch j'étais pas allé si loin(lol)
maintenant c'est ok
changé le code de l'ini
à bientôt
 

Pièces jointes

  • CopiedeListe2.zip
    35.9 KB · Affichages: 33
  • CopiedeListe2.zip
    35.9 KB · Affichages: 32
  • CopiedeListe2.zip
    35.9 KB · Affichages: 31

Discussions similaires

Réponses
28
Affichages
980

Statistiques des forums

Discussions
311 999
Messages
2 084 463
Membres
102 581
dernier inscrit
Michou