Bug des macros [Résolu]

Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Dernière intervention
25 octobre 2018
- - Dernière réponse : gruf
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
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.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
12374
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 décembre 2018
3
Merci
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.


Merci Whismeril 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

gruf
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
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
Commenter la réponse de Whismeril
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
2
Merci
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.

gruf
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
Dernière intervention
25 octobre 2018
-
Merci ucfoutu je vais modifier mon code pour voir
gruf
Messages postés
29
Date d'inscription
jeudi 18 janvier 2018
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
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.