Formulaire VBA ; Erreur 9 ; La fatale...
Résolu/Fermé
Sam
-
13 déc. 2018 à 20:33
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 14 déc. 2018 à 16:49
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 14 déc. 2018 à 16:49
A voir également:
- Vba erreur 9
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 1004 vba ✓ - Forum Excel
- Instagram une erreur s'est produite ✓ - Forum Instagram
4 réponses
abdel550
Messages postés
46
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
13 décembre 2018
44
13 déc. 2018 à 20:41
13 déc. 2018 à 20:41
Quel le probléme en gros
Bonsoir
En gros le problème est que je n'arrive pas à lancer le formulaire via une macro dans le premier temps.
Dans un second temps j'aimerai faite fonctionner la partie de mon code qui ne fonctionne pas (notée en commentaire dans le code) et qui est censé afficher les différentes caractéristique du produit tapé dans ComboBox_pdt si une occurrence apparaît dans la colonne Produit
Je ne sais pas si c'est assez clair ?
Merci
Samuel
En gros le problème est que je n'arrive pas à lancer le formulaire via une macro dans le premier temps.
Dans un second temps j'aimerai faite fonctionner la partie de mon code qui ne fonctionne pas (notée en commentaire dans le code) et qui est censé afficher les différentes caractéristique du produit tapé dans ComboBox_pdt si une occurrence apparaît dans la colonne Produit
Je ne sais pas si c'est assez clair ?
Merci
Samuel
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
14 déc. 2018 à 09:13
14 déc. 2018 à 09:13
Bonjour,
Dans ton code à cette ligne
no_ligne = ThisWorkbook.Sheets("Liste").Range("A65536").End(xlUp).Row
ajoute un "s" à liste
je n'ai pas tester le reste mais il y a un gros travail d'optimisation de ton code "usine à gaz"
pour trouver une erreur:
tu met un point d'arrêt en début de macro
et tu appelles le déroulement du code en pas à pas avec la touche F8
Dans ton code à cette ligne
no_ligne = ThisWorkbook.Sheets("Liste").Range("A65536").End(xlUp).Row
ajoute un "s" à liste
je n'ai pas tester le reste mais il y a un gros travail d'optimisation de ton code "usine à gaz"
pour trouver une erreur:
tu met un point d'arrêt en début de macro
et tu appelles le déroulement du code en pas à pas avec la touche F8
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
14 déc. 2018 à 09:34
14 déc. 2018 à 09:34
Et sinon pour avancer un peu le truc (tant pis pour "l'usine à gaz") :
Ce que je cherche à faire :
Faire apparaître dans les différentes cases prévues dans le formulaire les valeurs correspondantes au produit recherché dans la ComboBox_Pdt. Cela marche pour les produits référencés mais dans le cas où le produit n'est pas référencé (ajout de produit par ex) cela me met un bug, parce qu'il veut absolument une valeur pour nom_pdt.Row . J'ai essayé plusieurs chose mais ça ne marche pas et je bloque... Voici mon code pour le moment :
D'avance merci !
Ce que je cherche à faire :
Faire apparaître dans les différentes cases prévues dans le formulaire les valeurs correspondantes au produit recherché dans la ComboBox_Pdt. Cela marche pour les produits référencés mais dans le cas où le produit n'est pas référencé (ajout de produit par ex) cela me met un bug, parce qu'il veut absolument une valeur pour nom_pdt.Row . J'ai essayé plusieurs chose mais ça ne marche pas et je bloque... Voici mon code pour le moment :
Private Sub ComboBox_Pdt_Change()
Dim no_ligne As Integer, nom_pdt As Variant
nom_pdt = WorksheetFunction.Sheets("Produits").Range("E1:E65536").Find(ComboBox_Pdt)
If nom_pdt.Row = 0 Then
ComboBox_Cat.ListIndex = -1
ComboBox_Four.ListIndex = -1
TextBox_Cond.Value = ""
TextBox_Cod.Value = ""
ComboBox_Unit.ListIndex = -1
TextBox_PUVR.Value = ""
TextBox_PUPG.Value = ""
TextBox_Com.Value = ""
Else
no_ligne = nom_pdt.Row
ComboBox_Cat.Value = Cells(no_ligne, 1)
ComboBox_Four.Value = Cells(no_ligne, 2)
TextBox_Cond.Value = Cells(no_ligne, 3)
TextBox_Cod.Value = Cells(no_ligne, 4)
ComboBox_Unit.Value = Cells(no_ligne, 6)
TextBox_PUVR.Value = Cells(no_ligne, 7)
TextBox_PUPG.Value = Cells(no_ligne, 8)
TextBox_Com.Value = Cells(no_ligne, 9)
CommandButton_Ajout.Enabled = False
End If
End Sub
D'avance merci !
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
Modifié le 14 déc. 2018 à 16:53
Modifié le 14 déc. 2018 à 16:53
Re
pour gérer une erreur
par exemple
inconnu:
MsgBox nom & " inconnu", vbCritical
End Sub</code>
dans ton cas xlwhole cherche la dénomination exacte (différence entre "radis" et "radis bio")
pour gérer une erreur
par exemple
Option Explicit
'--------------------------------------------
Sub xxx()
Dim Lig As Integer, nom As String
nom = "Radis bio"
On Error GoTo inconnu
Lig = Columns("A").Find(nom, Range("A1"), xlValues, xlWhole).Row
Exit Sub
'gestionnaire erreurs
inconnu:
MsgBox nom & " inconnu", vbCritical
End Sub</code>
dans ton cas xlwhole cherche la dénomination exacte (différence entre "radis" et "radis bio")