Erreur d’exécution '381':

AreYouBush

XLDnaute Junior
Bonjour le forum,

Quand je sélectionne un personnel via ma ComboBox et que j'annule via un bouton de type "Unload Me" dévolu à cet effet je me retrouve face à cette erreur:
Erreur d'exécution '381':
Impossible de lire la propriété List. Index de table propriété non valide.


Je clique sur débogage et excel me pointe la ligne "Controls("TextBox" & i) = Sheets("Feuil2").Cells(.List(.ListIndex, 1), i)" du Private Sub suivant

Code:
Private Sub ComboBox1_AfterUpdate()
Dim i As Byte

With ComboBox1
 For i = 1 To 86
    Controls("TextBox" & i) = Sheets("Feuil2").Cells(.List(.ListIndex, 1), i)
 Next i
End With
End If

Quelqu'un peut-il m'orienter sur la bonne voie?

Ci-joint le fichier. Ceci est un fichier d'apprentissage (c'est un peu fouillis) :)
 

Pièces jointes

  • AreyouBush_v01.xls
    244 KB · Affichages: 157
  • AreyouBush_v01.xls
    244 KB · Affichages: 137
  • AreyouBush_v01.xls
    244 KB · Affichages: 132

kjin

XLDnaute Barbatruc
Re : Erreur d’exécution '381':

Bonsoir,
Lorsque tu vides la combo après annulation il y a forcément un pb si tu ne gères pas l'erreur qui en résulte
Code:
Private Sub ComboBox1_AfterUpdate()
Dim i As Byte
With ComboBox1
If .ListIndex = -1 then Exit Sub 'sinon pb !!!!
 For i = 1 To 86
    Controls("TextBox" & i) = Sheets("Feuil2").Cells(.List(.ListIndex, 1), i)
 Next i
End With
End If
En outre
- évites Rowsource pour alimenter tes combos
- nommer TextBox une ComboBox c'est quand même fort !!!:rolleyes:
A+
kjin
 

AreYouBush

XLDnaute Junior
Re : Erreur d’exécution '381':

Bonjour kjin et le forum,

J'ai testé ta modification. Il en résulte une erreur de compilation End If sans If.
Donc j'ai cru bon de déplacer le If au dessus du With mais là encore j'ai une erreur de compil :Référence incorrecte ou non qualifiée en me surlignant le .ListIndex
Donc retour à la case départ :(


- évites Rowsource pour alimenter tes combos
- nommer TextBox une ComboBox c'est quand même fort !!!:rolleyes:
A+
kjin

Pour les Rowsource j'avais déjà lu que c'est à éviter mais le problème, c'est que je ne sais pas comment m'y prendre pour remplacer le code que j'utilise (étant débutant je prends sur le forum ce qui se rapproche le plus de mes besoins).
Le coup du ComboBox en TextBox c'était pour me faciliter la vie (j'en suis pas mécontent). :)
il y a beaucoup de petites bidouilles dans mon fichier, mais il y a que comme ça que j'arrive à apprendre.

Merci de te pencher sur mon problème et à ceux qui s’y intéresseront.

Bisous
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur d’exécution '381':

Bonjour,

tu peux également utiliser la propriété "list" ainsi, ce qui évite la boucle :
Code:
ComboBox1.List = Selection.Value
le mieux est tout de même de déterminer la plage concernée, plutôt qu'utiliser la sélection en cours....

bonne journée
@+
 

Discussions similaires

Réponses
4
Affichages
213
Réponses
17
Affichages
848
Réponses
6
Affichages
248

Statistiques des forums

Discussions
312 310
Messages
2 087 113
Membres
103 473
dernier inscrit
angelique69620