Erreur de compilation
Résolu
azeuur31
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Jai un soucis de programmation, je suis novice et j'ai un message qui s'affiche avec un peu de texte en jaune un coup de main svp
Message affiché : erreur 424
J'ai essayé plusieurs choses sans y arrivé.
Pour info, voici la programmation faites entièrement en 1 semaine :
Jai un soucis de programmation, je suis novice et j'ai un message qui s'affiche avec un peu de texte en jaune un coup de main svp
Private Sub Image1_Click() (souligné en jaune en cliquant sur débogage
Sheet("Classement par nom").Select
Dim nbligne, Nnbligne
Dim Sel, NSel
Dim Val, NbreInter
If (ComboBox1.Value <> "" And ComboBox2.Value <> "" And TextBox1.Value <> "" And TextBox2.Value <> "" And TextBox3.Value <> "") Then
Message affiché : erreur 424
J'ai essayé plusieurs choses sans y arrivé.
Pour info, voici la programmation faites entièrement en 1 semaine :
Dim Désignation
Dim Intervention
Private Sub ComboBox1_Change()
Select Case ComboBox1.Value
Case 0 'Mixte informatique
Désignation = 0
Case 1 'Sanitaires Mixte informatique IT
Désignation = 1
Case 2 'Sanitaires Homme CH1
Désignation = 2
Case 3 'Sanitaires Femme informatique
Désignation = 3
Case 4 'Sanitaires Homme CH2
Désignation = 4
Case 5 'Vestiaires CH2
Désignation = 5
Case 6 'CH1
Désignation = 6
Case 7 'Sanitaires Homme LA
Désignation = 7
Case 8 'Sanitaires Handicapé Brut
Désignation = 8
Case 9 'Sanitaires Femme Brut
Désignation = 9
Case 10 'Sanitaires Homme Brut
Désignation = 10
Case 11 'Vestiaires Brut
Désignation = 11
Case 12 'Sanitaires Homme petites series
Désignation = 12
Case 13 'Sanitaires Femme petites series
Désignation = 13
Case 14 'Sanitaires Homme Expédition
Désignation = 14
Case 15 'Sanitaires Femme Expédition
Désignation = 15
Case 16 'Sanitaires Homme Blanc
Désignation = 16
Case 17 'Vestiaires Blanc
Désignation = 17
Case 18 'Sanitaires Handicapé Menuiserie
Désignation = 18
Case 19 'Sanitaires Femme Menuiserie
Désignation = 19
Case 20 'Sanitaires Homme Menuiserie
Désignation = 20
Case 21 'Sanitaires Femme Show room
Désignation = 21
Case 22 'Sanitaires Homme Show room
Désignation = 22
Case 23 'Sanitaires Homme HMY Group
Désignation = 23
Case 24 'Sanitaires Femme HMY Group
Désignation = 24
Case 25 'Sanitaires Femme Etage SAS
Désignation = 25
Case 26 'Sanitaires Mixte Food Décentralisé
Désignation = 26
Case 27 'Sanitaires Homme Ancien Accueil
Désignation = 27
Case 28 'Sanitaires Homme SAS
Désignation = 28
Case 29 'Sanitaires Mixte Food Centralisé
Désignation = 29
Case 30 'Sanitaires mixte HMY Group
Désignation = 30
Case 31 'Vestiaires Homme Menuiserie
Désignation = 31
Case 32 'Sanitaires Handicapé Show room
Désignation = 32
Case 33 'Vestiaires LA
Désignation = 33
Case 34 'Vestiaires Expédition
Désignation = 34
Case 35 'Sanitaires Femme Ancien Accueil
Désignation = 35
Case 36 'Sanitaires Homme Etage SAS
Désignation = 36
Case 37 'Sanitaires Femme SAS
Désignation = 37
End Select
End Sub
Private Sub ComboBox2_Change()
Select Case ComboBox2.Value
Case 0 'Débouchage des toilettes
Domaine = "Débouchage des toilettes"
Case 1 'Débouchage des douches
Domaine = "Débouchage des douches"
Case 2 'Autre
Domaine = "Autre"
Case 3 'chasse d'eau
Domaine = "chasse d'eau"
Case 4 'Evier bouché
Domaine = "Evier bouché"
Case 5 'Néon
Domaine = "Néon"
Case 6 'presto
Domaine = "Presto"
Case 7 'plafond
Domaine = "plafond"
Case 8 'Savon à main
Domaine = "Savon à main"
Case 9 'Chauffe eau
Domaine = "Chauffe eau"
Case 9 'Syphon
Domaine = "Syphon"
Case 9 'Fuite evier
Domaine = "Fuite évier"
Case 9 'Toilette fuite
Domaine = "Toilette fuite"
Case 9 'Remise en état
Domaine = "Remise en etat"
End Select
End Sub
Private Sub Image2_Click()
Dim nbligne, Nnbligne
Dim Sel, NSel
Unload UserForm1
'Sauve le fichier
ActiveWorkbook.Save
'Selection la case A de la dernière ligne
Nnbligne = Range("K1").Value
NSel = "A" & Nnbligne
Range(NSel).Select
End Sub
Private Sub Image1_Click()
Sheets("Classement par nom").Select
Dim nbligne, Nnbligne
Dim Sel, NSel
Dim Val, NbreInter
If (ComboBox1.Value <> "" And ComboBox2.Value <> "" And TextBox1.Value <> "" And TextBox2.Value <> "" And TextBox3.Value <> "") Then
nbligne = Range("K1").Value
Nnbligne = nbligne + 1
Sel = "A" & nbligne & ":G" & nbligne
Range(Sel).Select
Selection.Copy
Sel = "A" & Nnbligne
Range(Sel).Select
ActiveSheet.Paste
Sel = "A" & nbligne
NSel = "A" & Nnbligne
Val = Range(Sel).Value
Range(NSel).Value = Val + 1
NbreInter = Val + 1
NSel = "B" & Nnbligne
Range(NSel).Value = Désignation
NSel = "F" & Nnbligne
Range(NSel).Value = Intervention
NSel = "D" & Nnbligne
Range(NSel).Value = Range("D2").Value
'remplie les valeurs renseignées
Dim commentaire
commentaire = TextBox1.Value 'N_° de la désignation
NSel = "C" & Nnbligne
Range(NSel).Value = commentaire
commentaire = TextBox2.Value 'Date
NSel = "D" & Nnbligne
Range(NSel).Value = commentaire
commentaire = TextBox3.Value 'N_° de la fiche
NSel = "G" & Nnbligne
Range(NSel).Value = commentaire
'Désignation
NSel = "B" & Nnbligne
Range(NSel).Value = Désignation
'Intervention
NSel = "F" & Nnbligne
Range(NSel).Value = Intervention
'Efface les commbox et les textbox
ComboBox1.Value = ""
ComboBox2.Value = ""
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
Else
MsgBox "Toutes les cases ne sont pas renseignées"
End If
End Sub
Private Sub TextBox4_Change()
End Sub
Private Sub UserForm_Activate()
'ComboBox1
ComboBox1.AddItem "Sanitaires Mixte informatique" 'ListIndex = 0
ComboBox1.AddItem "Sanitaires Mixte informatique IT" 'ListIndex = 1
ComboBox1.AddItem "Sanitaires Homme CH1" 'ListIndex = 2
ComboBox1.AddItem "Sanitaires Femme informatique" 'ListIndex = 3
ComboBox1.AddItem "Sanitaires Homme CH2" 'ListIndex = 4
ComboBox1.AddItem "Vestiaires CH2" 'ListIndex = 5
ComboBox1.AddItem "Vestiaires CH1" 'ListIndex = 6
ComboBox1.AddItem "Sanitaires Homme LA" 'ListIndex = 7
ComboBox1.AddItem "Sanitaires Handicapé Brut" 'ListIndex = 8
ComboBox1.AddItem "Sanitaires Femme Brut" 'ListIndex = 9
ComboBox1.AddItem "Sanitaires Homme Brut" 'ListIndex = 10
ComboBox1.AddItem "Vestiaires Brut" 'ListIndex = 11
ComboBox1.AddItem "Sanitaires Homme petites series" 'ListIndex = 12
ComboBox1.AddItem "Sanitaires Femme petites series" 'ListIndex = 13
ComboBox1.AddItem "Sanitaires Homme Expédition" 'ListIndex = 14
ComboBox1.AddItem "Sanitaires Femme Expédition" 'ListIndex = 15
ComboBox1.AddItem "Sanitaires Homme Blanc" 'ListIndex = 16
ComboBox1.AddItem "Vestiaires Blanc" 'ListIndex = 17
ComboBox1.AddItem "Sanitaires Handicapé Menuiserie" 'ListIndex = 18
ComboBox1.AddItem "Sanitaires Femme Menuiserie" 'ListIndex = 19
ComboBox1.AddItem "Sanitaires Homme Menuiserie" 'ListIndex = 20
ComboBox1.AddItem "Sanitaires Femme Show room" 'ListIndex = 21
ComboBox1.AddItem "Sanitaires Homme Show room" 'ListIndex = 22
ComboBox1.AddItem "Sanitaires Homme HMY Group" 'ListIndex = 23
ComboBox1.AddItem "Sanitaires Femme HMY Group" 'ListIndex = 24
ComboBox1.AddItem "Sanitaires Femme Etage SAS" 'ListIndex = 25
ComboBox1.AddItem "Sanitaires Mixte Food Décentralisé" 'ListIndex = 26
ComboBox1.AddItem "Sanitaires Homme Ancien Accueil" 'ListIndex = 27
ComboBox1.AddItem "Sanitaires Homme SAS" 'ListIndex = 28
ComboBox1.AddItem "Sanitaires Mixte Food Centralisé" 'ListIndex = 29
ComboBox1.AddItem "Sanitaires mixte HMY Group" 'ListIndex = 30
ComboBox1.AddItem "Vestiaires Homme Menuiserie" 'ListIndex = 31
ComboBox1.AddItem "Sanitaires Handicapé Show room" 'ListIndex = 32
ComboBox1.AddItem "Vestiaires LA" 'ListIndex = 33
ComboBox1.AddItem "Vestiaires Expédition" 'ListIndex = 34
ComboBox1.AddItem "Sanitaires Femme Ancien Accueil" 'ListIndex = 35
ComboBox1.AddItem "Sanitaires Homme Etage SAS" 'ListIndex = 36
ComboBox1.AddItem "Sanitaires Femme SAS" 'ListIndex = 37
'Use drop-down list
ComboBox1.Style = fmStyleDropDownList
'Combo box values are ListIndex values
ComboBox1.BoundColumn = 0
'Set combo box to first entry
'ComboBox1.ListIndex = 0
'ComboBox
ComboBox2.AddItem "Débouchage des toilettes" 'ListIndex = 0
ComboBox2.AddItem "Débouchage des douches" 'ListIndex = 1
ComboBox2.AddItem "Autre" 'ListIndex = 2
ComboBox2.AddItem "chasse d 'eau" 'ListIndex = 3
ComboBox2.AddItem "evier bouché" 'ListIndex = 4
ComboBox2.AddItem "Néon" 'ListIndex = 5
ComboBox2.AddItem "presto" 'ListIndex = 6
ComboBox2.AddItem "plafond" 'ListIndex = 7
ComboBox2.AddItem "Savon à main" 'ListIndex = 8
ComboBox2.AddItem "Chauffe eau" 'ListIndex = 9
ComboBox2.AddItem "Syphon" 'ListIndex = 10
ComboBox2.AddItem "fuite evier" 'ListIndex = 11
ComboBox2.AddItem "Toilette fuite" 'ListIndex = 12
'Use drop-down list
ComboBox2.Style = fmStyleDropDownList
'Combo box values are ListIndex values
ComboBox2.BoundColumn = 0
End Sub
4 réponses
-
Bonjour,
VBA n'est pas trop ma tasse de thé, cependant, je peux t'aider à optimiser "un peu" ton code.
ceci
Private Sub ComboBox1_Change() Select Case ComboBox1.Value Case 0 'Mixte informatique Désignation = 0 Case 1 'Sanitaires Mixte informatique IT Désignation = 1 Case 2 'Sanitaires Homme CH1 Désignation = 2 Case 3 'Sanitaires Femme informatique Désignation = 3 Case 4 'Sanitaires Homme CH2 Désignation = 4 Case 5 'Vestiaires CH2 Désignation = 5 Case 6 'CH1 Désignation = 6 Case 7 'Sanitaires Homme LA Désignation = 7 Case 8 'Sanitaires Handicapé Brut Désignation = 8 Case 9 'Sanitaires Femme Brut Désignation = 9 Case 10 'Sanitaires Homme Brut Désignation = 10 Case 11 'Vestiaires Brut Désignation = 11 Case 12 'Sanitaires Homme petites series Désignation = 12 Case 13 'Sanitaires Femme petites series Désignation = 13 Case 14 'Sanitaires Homme Expédition Désignation = 14 Case 15 'Sanitaires Femme Expédition Désignation = 15 Case 16 'Sanitaires Homme Blanc Désignation = 16 Case 17 'Vestiaires Blanc Désignation = 17 Case 18 'Sanitaires Handicapé Menuiserie Désignation = 18 Case 19 'Sanitaires Femme Menuiserie Désignation = 19 Case 20 'Sanitaires Homme Menuiserie Désignation = 20 Case 21 'Sanitaires Femme Show room Désignation = 21 Case 22 'Sanitaires Homme Show room Désignation = 22 Case 23 'Sanitaires Homme HMY Group Désignation = 23 Case 24 'Sanitaires Femme HMY Group Désignation = 24 Case 25 'Sanitaires Femme Etage SAS Désignation = 25 Case 26 'Sanitaires Mixte Food Décentralisé Désignation = 26 Case 27 'Sanitaires Homme Ancien Accueil Désignation = 27 Case 28 'Sanitaires Homme SAS Désignation = 28 Case 29 'Sanitaires Mixte Food Centralisé Désignation = 29 Case 30 'Sanitaires mixte HMY Group Désignation = 30 Case 31 'Vestiaires Homme Menuiserie Désignation = 31 Case 32 'Sanitaires Handicapé Show room Désignation = 32 Case 33 'Vestiaires LA Désignation = 33 Case 34 'Vestiaires Expédition Désignation = 34 Case 35 'Sanitaires Femme Ancien Accueil Désignation = 35 Case 36 'Sanitaires Homme Etage SAS Désignation = 36 Case 37 'Sanitaires Femme SAS Désignation = 37 End Select End Sub
devrait se réduire à
Private Sub ComboBox1_Change() Désignation = ComboBox1.ListIndex End Sub
De même pour le 2eme comboboxPrivate Sub ComboBox2_Change() Domaine = ComboBox2.Value End Sub
Note que pour le premier j'ai utilisé ListIndex et pas Value, ton erreur d'exécution vient peut être de là.
Avec Value, tu mets le texte dans la variable, si plus loin tu faits des calculs comme si c'était un entier, ça marche pas.
PS à l'avenir, pour poster un code facilement lisible et donc augmenter tes chances d'obtenir une réponse, utilise la coloration syntaxique voir https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code -
Bonjour,
avec un peu de texte en jaune
Qu'elle ligne est surlignée en jaune?
Si c'est celle-ci :If (ComboBox1.Value <> "" And ComboBox2.Value <> "" And TextBox1.Value <> "" And TextBox2.Value <> "" And TextBox3.Value <> "") Then
Cela signifie qu'un des objets suivants ne porte pas le même nom :
ComboBox1
ComboBox2
TextBox1
TextBox2
TextBox3
Salut Whismeril, Comment va?
-
-
Maintenant, j'essaye de lier une combo et un textb.
Le principe est lorsque je remplis mon formulaire je choisi un item dans la combo et une donné s'affiche dans le text automatiquement avec une autre feuille de donné ou dans la colonne A il y a le désignation et colonne B le numéro
Voici ma compo que je n'arrive pas à faire fonctionné:
Dim C As Range Dim i As Byte Dim FirstAddress As String Me.TextBox1 = "" With Worksheets("Database") 'Cherche l'item dans la colonne A qui contient la valeur égale à celle de ComboBox1 Set C = .Columns("A").Find(Me.ComboBox1.Value, .Range("A1").End(xlDown), xlValues, xlWhole) 'Si cette item existe, alors ... If Not C Is Nothing Then 'On note la valeur de cette première cellule FirstAddress = C.Address 'On entre dans une boucle Do 'On utilise la variable i pour noter le nombre d'incréments. 'Ce nombre est utilisé pour limiter le nombre d'itération à 2 (nombre de TextBox) i = i + 1 'On affecte la valeur associée (colonne B) à la TextBox qui correspond à l'indice i Me.Controls("Textbox" & i).Value = C.Offset(0, 1) 'On poursuit la recherche Set C = Columns("A").FindNext(C) 'On reprend le traitement à condition que : '- il existe une autre cellule qui contient une valeur égale à celle de ComboBox1 '- le nombre d'itération est inférieur à 2 '- la cellule trouvée est différente de la première Loop While Not C Is Nothing And i < 2 And C.Address <> FirstAddress End If End With End Select End Sub
Jai fais la compo avec l'aide d'un référenciel trouvé vite fais
Merci d'avance
PS: je ne serai pas contre des explications de ce qui ne va pas ou si possible des cours en fin je m'en sers sur exel, mon entreprise n'utilise pas acces