Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur double Clic dans ListBox

14 réponses
Avatar
DAVID
Bonsoir

J'utilie cette procédure pour récuérer les valeurs de la ListBox dans des
TextBox.

Je pensais que tout fonctionner bien mais je viens de m'apercevoir que quand
on doubleclic dans un endroit ou il y a pas de valeur cela faisait une
erreur.

Merci pour votre aide

Sub Liste1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Long
Dim j As Long
If Liste1.ListCount < 1 Then Exit Sub
i = Liste1.ListIndex
TextBox1 = Liste1.List(i, 0)
TextBox2 = Liste1.List(i, 1)
For j = 0 To Combo1.ListCount - 1
If Liste1.List(i, 2) = Combo1.List(j) Then Combo1.ListIndex = j
Next j
TextBox3 = Liste1.List(i, 3)
TextBox4= Liste1.List(i, 4)
TextBox5 = Liste1.List(i, 5)
TextBox6= Liste1.List(i, 6)
TextBox7= CDate(Liste1.List(i, 7))
If Liste1.List(i, 8) <> "" Then TextBox7 = CDate(Liste1.List(i, 8))
End Sub

10 réponses

1 2
Avatar
michdenis
Bonjour,

Lorsque l'événement "Textbox1_Enter" s'exécute,
entre dans le code de l'événement un espace dans le textbox

Me.textbox1 = " " plus les autres lignes de code liées à cet événement
Ceci est suffisant pour déclencher l'événement suivant si l'usager décide
d'annuler la saisie d'une date et passe au textbox suivant ou essaie de
sortir du textbox

L'événement à ajouter au textbox devant recevoir une date :
'-----------------------------------
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
'le chiffre 10 représente le nombre de caractères que
'devrait avoir la date incluant les symboles du format
If Len(Me.TextBox1) <> 10 Then
MsgBox "Vous devez saisir une date"
Me.TextBox1.SetFocus
Cancel = True
UserForm1.Show
Else
'Si la date est bonne, on passe au textbox suivant
Me.Textbox1.setfocus
End If
End Sub
'-----------------------------------



"DAVID" a écrit dans le message de groupe de discussion :

Bonsoir

J'utilie cette procédure pour récuérer les valeurs de la ListBox dans des
TextBox.

Je pensais que tout fonctionner bien mais je viens de m'apercevoir que quand
on doubleclic dans un endroit ou il y a pas de valeur cela faisait une
erreur.

Merci pour votre aide

Sub Liste1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Long
Dim j As Long
If Liste1.ListCount < 1 Then Exit Sub
i = Liste1.ListIndex
TextBox1 = Liste1.List(i, 0)
TextBox2 = Liste1.List(i, 1)
For j = 0 To Combo1.ListCount - 1
If Liste1.List(i, 2) = Combo1.List(j) Then Combo1.ListIndex = j
Next j
TextBox3 = Liste1.List(i, 3)
TextBox4= Liste1.List(i, 4)
TextBox5 = Liste1.List(i, 5)
TextBox6= Liste1.List(i, 6)
TextBox7= CDate(Liste1.List(i, 7))
If Liste1.List(i, 8) <> "" Then TextBox7 = CDate(Liste1.List(i, 8))
End Sub
Avatar
DAVID
De nouveau, encore merci de ton aide

Bonne soirée
Avatar
michdenis
Bonjour,

| Je pensais que tout fonctionner bien mais je viens de m'apercevoir que quand
| on doubleclic dans un endroit ou il y a pas de valeur cela faisait une
| erreur.

**** Ton code bloque sur quelle ligne de code ?
Avatar
DAVID
Bonjour.

Désolé pour la réponse tardive, petite soirée imprévu !! dur ce matin

Bon alors erreur : "Impossible de lire la propriété List.Index de table de
propriétés non valide"

A cette ligne : TextBox1 = Liste1.List(i, 0)
Avatar
michdenis
Le plus simple, publie ton classeur à cette adresse : cijoint.fr
et tu nous donne l'adresse où ton fichier est accessible !





"DAVID" a écrit dans le message de groupe de discussion :

Bonjour.

Désolé pour la réponse tardive, petite soirée imprévu !! dur ce matin

Bon alors erreur : "Impossible de lire la propriété List.Index de table de
propriétés non valide"

A cette ligne : TextBox1 = Liste1.List(i, 0)
Avatar
DAVID
Voici

http://www.cijoint.fr/cjlink.php?file=cj201001/cijh2Vgf9H.xls
Avatar
michdenis
Pour un contrôle listbox,

Si tu n'as pas fait une sélection au préalable dans ton listbox,
Listindex a comme valeur -1, il est évident, qu'il ne pourra pas
exécuter une ligne de code comme ceci
TextBox1 = Liste1.List(i, 0) ou i = -1

Tu devrais faire un test en début de procédure :
Si Me.Textbox1.ListIndex = -1 then
Msgbox "Faite d'abord une sélection."
Exit sub
End if




"DAVID" a écrit dans le message de groupe de discussion :

Voici

http://www.cijoint.fr/cjlink.php?file=cj201001/cijh2Vgf9H.xls
Avatar
DAVID
Merci beaucoup. Cela fonctionne avec

If Me.LstResultat.ListIndex = -1 Then
MsgBox "Cliquer dans une ligne remplie"
Exit Sub
End If
Avatar
DAVID
Une autre erreur que je comprend pas.

Dans Fiche de base/Véhicules, quand je veux supprimer une fiche, ceci
supprime pas tout alors que le même code est pour saisie fiche
carburants/Historique et la ça fonctionne !

J'ai pourtant fait la même chose des 2 cotés.

Merci de ton aide
Avatar
michdenis
Tu dois préciser le formulaire et la procédure problème.
Ça me tente pas de chercher...





"DAVID" a écrit dans le message de groupe de discussion :

Une autre erreur que je comprend pas.

Dans Fiche de base/Véhicules, quand je veux supprimer une fiche, ceci
supprime pas tout alors que le même code est pour saisie fiche
carburants/Historique et la ça fonctionne !

J'ai pourtant fait la même chose des 2 cotés.

Merci de ton aide
1 2