Bug des macros [Résolu]

Signaler
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Statut
Membre
Dernière intervention
25 octobre 2018
-
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Statut
Membre
Dernière intervention
25 octobre 2018
-
Bonjour, Merci pour toute l'aide que vous m'aviez donné.
Bon j'ai un userform pour faire des saisie de données comprenant des textbox et des combobox. Parfois certains textbox et combobox se plantent. j"ai plus de 20 textbox et combobox sur mon Userform.

2 réponses

Messages postés
15929
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 mai 2021
544
Bonsoir
Ma boule de cristal dit que ton code est envouté.
Fait une offrande au dieu du vba.

Ha pardon, tu voulais une réponse sérieuse?
Et bien c’est impossible.
  • Tu n’as montré aucun code ou poster un fichier d’exemple (sans données confidentielles, sur un hébergeur tierce, cijoint par exemple)
  • Tu n’as pas dit quelles successions d’actions declenchent le bug
  • Tu n’as pas décrit le bug ou transcrit un message d’erreur.


Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Statut
Membre
Dernière intervention
25 octobre 2018

Bonjour Whismeril merci pour cette intervention. Voilà le code d'une de mes textbox qui récupère l'âge de l'utilisateur. son bug est qu'une fois la macro de contrôle d'âge exécuté elle ne reprend plus le curseur et parfois il est même impossible de remettre le curseur sur ce textbox car au Click de la souri rien ne se passe


Private Sub Txtdatebornphy_Change()

Dim today As Date
Dim age As Date
Dim valeur As Byte
Dim calc As Long
Dim uz As Integer
Dim dat As Integer
Dim som As Integer
Dim foer As String
Dim loar As String

'contrôle de saisie en fonction de l'âge
valeur = Len(Me.Txtdatebornphy.Text)


If valeur = 10 Then

foer = Mid(Txtdatebornphy.Text, 7)
loar = Mid(CStr(CDate(Date)), 7)
uz = Val(foer)
dat = Val(loar)
som = dat - uz


If som <= 10 And som >= 7 Then
If Me.Txtcollecteur.Text <> "" Then
Me.RbcarteNon = True
Me.PnlréférencementParrain.Visible = True
Me.PnlréférencementParrain.Enabled = True
Me.TxtNomParrain = ""
Me.TxtNomParrain.SetFocus
Exit Sub
End If
End If
If som < 7 Then
Me.Txtdatebornphy.Value = ""
Me.Txtdatebornphy.SetFocus
MsgBox "Le client doit avoir un âge supérieur ou égale à 7 ans au minimum", vbOKOnly + vbCritical, "Erreur"
Me.Pnlphysique.Enabled = True
Me.Txtdatebornphy.Value = ""
Me.Txtdatebornphy.SetFocus


End If

End If

Me.Txtdatebornphy.SetFocus

End Sub



Le bug récurent est que les textbox refusent de prendre le curseur et l'autocomplétion des combobox qui ne fonctionne plus
comme exemple voici le code du combobox qui récupère les nationalités


Private Sub CBnationalphy_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

'dévérouillage de la console combobox
Dim F As Integer
Dim lr As Integer
Dim bis As Integer
Dim ws As Worksheet
Set ws = Sheets("Nationalité")

lr = ws.Cells(Rows.count, 1).End(xlUp).Row + 1

Select Case KeyAscii

Case 97 To 122 ' Caracteres alpha min

Case 8
'Retour Chariot

Case Else

KeyAscii = 0

End Select


With ws

For F = 2 To lr
Me.CBnationalphy.AddItem (.Cells(F, 1))
Next F
End With

End Sub


Merci d'avance
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Bonjour

Plusieurs lignes de ton code me donnent à penser que tu n'as aucune conscience réelle du résultat des instructions que tu écris.
La plus surprenante de ces instructions est sans aucun doute l'utilisation que tu fais de l'évènement Keypress de la combobox !
Pour ton info : à chaque fois qu'une touche alphabétique est pressée dans la zone d'édition de ta combo, tu y ajoutes x fois (ou x = lr) les mêmes articles (toujours les mêmes, d'ailleurs).
Très rapidement, même les oeufs doivent envier ta combobox. Même eux sont moins pleins qu'elle ne l'est ... Et elle l'est à ce point (pleine) qu'elle déborde .
Devant un tel constat, je préfère ne pas aller au-delà, le seul conseil que j'ai à te donner étant de t'intéresser d'abord sérieusement à la fois aux choses les plus élémentaires et à la nature des instructions que tu exécutes.

Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Statut
Membre
Dernière intervention
25 octobre 2018

Merci ucfoutu je vais modifier mon code pour voir
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Statut
Membre
Dernière intervention
25 octobre 2018

grand merci j'ai trouvé la source du problème. Et la modification du code a largement accéléré le traitement. Merci ucfoutu