Erreur de compilation
Résolu
azeuur31
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
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
A voir également:
- Erreur de compilation
- Erreur 0x80070643 - Accueil - Windows
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
4 réponses
Bonjour,
VBA n'est pas trop ma tasse de thé, cependant, je peux t'aider à optimiser "un peu" ton code.
ceci
devrait se réduire à
De même pour le 2eme combobox
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
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 combobox
Private 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 :
Cela signifie qu'un des objets suivants ne porte pas le même nom :
ComboBox1
ComboBox2
TextBox1
TextBox2
TextBox3
Salut Whismeril, Comment va?
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é:
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
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