Salut beuch13,
Pour ta seconde question, c'est ton code qui provoque cette erreur.
Private Sub ComboBox2_Change()
ActiveSheet.Cells(3, 3) = ComboBox2
ActiveSheet.Cells(3, 2) = ComboBox2
End Sub
Tu demandes à ton programme, à chaque changement effectué dans ton combobox de compléter les cellules 3,3 et 3,2 avec le contenu du combobox ==> tu recopies deux fois le contenu du combobox.
Si dans ton formulaire, tu affiches, dans une liste déroulante, la liste des articles et que tu présentes un groupe de boutons de choix (case à cocher ou bouton option) correspondant à chaque catégorie possible (catégories dont l'affichage peut être modulé en fonction de l'article chois : un tel article peut être facturé selon les catégories 1, 2 et 3 tandis que l'article un tel autre pourra être facturé selon les catégories 2 ou 3. Pour réaliser cela, il suffit de masque le bouton option indésirable (Bouton.visible=false)).
Lorsque la caissière a choisi l'article puis la catégorie, tu peux forcer le calcul à partir du contenu des différences cellules de ta feuille et même faire afficher le prix dans une zone texte, un "label" (= une étiquette).
Puisque tu veux apprendre VBA, je ne vais pas te donner icic les codes tous faits ;-)). Cherche un peu, c'est comme ça qu'on apprend !
Mais on ne t'abandonne pas pour autant. Fais-nous part de tes investigations et on continuera à te guider.
A+