Bug des macros

Résolu
gruf Messages postés 29 Date d'inscription jeudi 18 janvier 2018 Statut Membre Dernière intervention 25 octobre 2018 - 25 janv. 2018 à 18:43
gruf Messages postés 29 Date d'inscription jeudi 18 janvier 2018 Statut Membre Dernière intervention 25 octobre 2018 - 7 févr. 2018 à 01:40
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

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
25 janv. 2018 à 19:25
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.


3
gruf Messages postés 29 Date d'inscription jeudi 18 janvier 2018 Statut Membre Dernière intervention 25 octobre 2018
26 janv. 2018 à 09:57
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 janv. 2018 à 19:19
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.

2
gruf Messages postés 29 Date d'inscription jeudi 18 janvier 2018 Statut Membre Dernière intervention 25 octobre 2018
27 janv. 2018 à 11:46
Merci ucfoutu je vais modifier mon code pour voir
0
gruf Messages postés 29 Date d'inscription jeudi 18 janvier 2018 Statut Membre Dernière intervention 25 octobre 2018
7 févr. 2018 à 01:40
grand merci j'ai trouvé la source du problème. Et la modification du code a largement accéléré le traitement. Merci ucfoutu
0
Rejoignez-nous