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

Erreur d’exécution 13

7 réponses
Avatar
Jean-Paul V
Bonjour à tous

J’ai la macro majChoixNom qui m’a créé la liste choixnom dans mon Userform à
son ouverture.
Comme le majFiche montre le premier nom pour plus de visibilité j’ai ajouté
l’instruction :
Me.choixnom.ListIndex = 0 et là cela se plante avec erreur 13
incompatibilité de type
Y-a-t-il une autre instruction pour que cela ne se plante pas tout en
sélectionnant le premier nom de la liste à l'ouerture
Private Sub UserForm_Initialize()
Dim Repertoire As String
Repertoire = ThisWorkbook.Path & "\"
ChDirNet Repertoire
For b = 1 To 27: Set Btn(b).GrLettres = Me("B_" & b): Next b
Sheets("BD").[A2:K5000].Sort key1:=Sheets("BD").[A2]
'-- Liste des noms
Me.Lettre = "Tous"
'Mettre à jour le Combobox Compositeurs
RemplitCombo "*"
' Me.Compositeurs.Value = ""
majChoixNom
ligne = 2
majFiche
Me.choixnom.ListIndex = 0 'ajouté car la majFiche montre le premier Nom
mais dans ce cas ChoixNom_Click se plante
End Sub

Cela se plante sur une macro pas encore appelée sur Me.ChoixOeuvre.List =
Application.Transpose(X.Items))

Private Sub Choixnom_Click()
....
Set X = CreateObject("Scripting.Dictionary")
For Each C In Rg
If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then
X.Add CStr(C), CStr(C)
End If
Next
……
'Affecte au contrôle la liste trouvée
Me.ChoixOeuvre.List = Application.Transpose(X.Items)
…..
End Sub
@+j'espère
--
Jean-Paul V

7 réponses

Avatar
MichDenis
Bonjour Jean-Paul,

Est-ce que tu parles d'un LISTBOX ou d'un COMBOBOX ?

Simplement, tu veux afficher dans le contrôle d'un combobox
le premier item de la liste et si c'est un ListBox, tu veux que le
premier item soit sélectionné ... si j'ai compris, tu as ce code:

With MeListBox1
.ListIndex = 0
End With

With Me.ComboBox1
.Value = .List(0)
End With



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous

J’ai la macro majChoixNom qui m’a créé la liste choixnom dans mon Userform à
son ouverture.
Comme le majFiche montre le premier nom pour plus de visibilité j’ai ajouté
l’instruction :
Me.choixnom.ListIndex = 0 et là cela se plante avec erreur 13
incompatibilité de type
Y-a-t-il une autre instruction pour que cela ne se plante pas tout en
sélectionnant le premier nom de la liste à l'ouerture
Private Sub UserForm_Initialize()
Dim Repertoire As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
For b = 1 To 27: Set Btn(b).GrLettres = Me("B_" & b): Next b
Sheets("BD").[A2:K5000].Sort key1:=Sheets("BD").[A2]
'-- Liste des noms
Me.Lettre = "Tous"
'Mettre à jour le Combobox Compositeurs
RemplitCombo "*"
' Me.Compositeurs.Value = ""
majChoixNom
ligne = 2
majFiche
Me.choixnom.ListIndex = 0 'ajouté car la majFiche montre le premier Nom
mais dans ce cas ChoixNom_Click se plante
End Sub

Cela se plante sur une macro pas encore appelée sur Me.ChoixOeuvre.List Application.Transpose(X.Items))

Private Sub Choixnom_Click()
....
Set X = CreateObject("Scripting.Dictionary")
For Each C In Rg
If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then
X.Add CStr(C), CStr(C)
End If
Next
……
'Affecte au contrôle la liste trouvée
Me.ChoixOeuvre.List = Application.Transpose(X.Items)
…..
End Sub
@+j'espère
--
Jean-Paul V
Avatar
Jean-Paul V
Bonjour MichDenis

Il s'agit d'un ListBox nommé Choixnom.
J'ai essayé :
With Me.choixnom
.ListIndex = 0
End With

j'ai toujours erreur 13 et en faisant débog c'est sur
Application.Transpose(X.Items)) comme je vous l'ai indiqué d'une autre macro
Choixnom_Click()
--
Jean-Paul V


"MichDenis" wrote:

Bonjour Jean-Paul,

Est-ce que tu parles d'un LISTBOX ou d'un COMBOBOX ?

Simplement, tu veux afficher dans le contrôle d'un combobox
le premier item de la liste et si c'est un ListBox, tu veux que le
premier item soit sélectionné ... si j'ai compris, tu as ce code:

With MeListBox1
.ListIndex = 0
End With

With Me.ComboBox1
.Value = .List(0)
End With



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous

J’ai la macro majChoixNom qui m’a créé la liste choixnom dans mon Userform à
son ouverture.
Comme le majFiche montre le premier nom pour plus de visibilité j’ai ajouté
l’instruction :
Me.choixnom.ListIndex = 0 et là cela se plante avec erreur 13
incompatibilité de type
Y-a-t-il une autre instruction pour que cela ne se plante pas tout en
sélectionnant le premier nom de la liste à l'ouerture
Private Sub UserForm_Initialize()
Dim Repertoire As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
For b = 1 To 27: Set Btn(b).GrLettres = Me("B_" & b): Next b
Sheets("BD").[A2:K5000].Sort key1:=Sheets("BD").[A2]
'-- Liste des noms
Me.Lettre = "Tous"
'Mettre à jour le Combobox Compositeurs
RemplitCombo "*"
' Me.Compositeurs.Value = ""
majChoixNom
ligne = 2
majFiche
Me.choixnom.ListIndex = 0 'ajouté car la majFiche montre le premier Nom
mais dans ce cas ChoixNom_Click se plante
End Sub

Cela se plante sur une macro pas encore appelée sur Me.ChoixOeuvre.List > Application.Transpose(X.Items))

Private Sub Choixnom_Click()
....
Set X = CreateObject("Scripting.Dictionary")
For Each C In Rg
If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then
X.Add CStr(C), CStr(C)
End If
Next
……
'Affecte au contrôle la liste trouvée
Me.ChoixOeuvre.List = Application.Transpose(X.Items)
…..
End Sub
@+j'espère
--
Jean-Paul V




Avatar
MichDenis
http://cjoint.com/?gAtyOaJx6p



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour MichDenis

Il s'agit d'un ListBox nommé Choixnom.
J'ai essayé :
With Me.choixnom
.ListIndex = 0
End With

j'ai toujours erreur 13 et en faisant débog c'est sur
Application.Transpose(X.Items)) comme je vous l'ai indiqué d'une autre macro
Choixnom_Click()
--
Jean-Paul V


"MichDenis" wrote:

Bonjour Jean-Paul,

Est-ce que tu parles d'un LISTBOX ou d'un COMBOBOX ?

Simplement, tu veux afficher dans le contrôle d'un combobox
le premier item de la liste et si c'est un ListBox, tu veux que le
premier item soit sélectionné ... si j'ai compris, tu as ce code:

With MeListBox1
.ListIndex = 0
End With

With Me.ComboBox1
.Value = .List(0)
End With



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous

J’ai la macro majChoixNom qui m’a créé la liste choixnom dans mon Userform à
son ouverture.
Comme le majFiche montre le premier nom pour plus de visibilité j’ai ajouté
l’instruction :
Me.choixnom.ListIndex = 0 et là cela se plante avec erreur 13
incompatibilité de type
Y-a-t-il une autre instruction pour que cela ne se plante pas tout en
sélectionnant le premier nom de la liste à l'ouerture
Private Sub UserForm_Initialize()
Dim Repertoire As String
Repertoire = ThisWorkbook.Path & ""
ChDirNet Repertoire
For b = 1 To 27: Set Btn(b).GrLettres = Me("B_" & b): Next b
Sheets("BD").[A2:K5000].Sort key1:=Sheets("BD").[A2]
'-- Liste des noms
Me.Lettre = "Tous"
'Mettre à jour le Combobox Compositeurs
RemplitCombo "*"
' Me.Compositeurs.Value = ""
majChoixNom
ligne = 2
majFiche
Me.choixnom.ListIndex = 0 'ajouté car la majFiche montre le premier Nom
mais dans ce cas ChoixNom_Click se plante
End Sub

Cela se plante sur une macro pas encore appelée sur Me.ChoixOeuvre.List > Application.Transpose(X.Items))

Private Sub Choixnom_Click()
....
Set X = CreateObject("Scripting.Dictionary")
For Each C In Rg
If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then
X.Add CStr(C), CStr(C)
End If
Next
……
'Affecte au contrôle la liste trouvée
Me.ChoixOeuvre.List = Application.Transpose(X.Items)
…..
End Sub
@+j'espère
--
Jean-Paul V




Avatar
Jean-Paul V
Bonjour MichDenis

Après avoir modifié votre fichier en mettant 3 listes en cascades et en
ajoutant :
With Me.ListBox1
.ListIndex = 0
End With
Que vous aviez oublié et qui est nécessaire pour avoir les premiers des
trois listes sélectionnés à l’ouverture.
J’ai constaté que ça marchait.
Je suis donc retourné à mon fichier ou j’ai 2 versions mais aucune
entièrement satisfaisante.
La version Discothèque semble marcher, à l’ouverture j’ai mes 3 premiers de
liste sélectionnés à l’ouverture mais dès que je clic sur le deuxième nom la
majFiche ne se fait pas . Par contre si je clic sur Mozart et que je clic
sur le troisième disque tout va bien, et bizarrement si je clic sur le
deuxième nom maintenant ça marche.
La version Discothèque2 se plante dès l’ouverture comme déjà expliqué et je
ne vois pas la différence

Pour info mes 3 ListBox s’appellent Choixnom ; ChoixOeuvre ; Choixdisque

Pour ceux qui auraient le courage de regarder les deux fichiers et les *jpg
à mettre dans le même répertoire voir : http://cjoint.com/?gBrP1TKZy4


--
Jean-Paul V


"MichDenis" wrote:

http://cjoint.com/?gAtyOaJx6p



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour MichDenis

Il s'agit d'un ListBox nommé Choixnom.
J'ai essayé :
With Me.choixnom
.ListIndex = 0
End With

j'ai toujours erreur 13 et en faisant débog c'est sur
Application.Transpose(X.Items)) comme je vous l'ai indiqué d'une autre macro
Choixnom_Click()
--
Jean-Paul V


"MichDenis" wrote:

> Bonjour Jean-Paul,
>
> Est-ce que tu parles d'un LISTBOX ou d'un COMBOBOX ?
>
> Simplement, tu veux afficher dans le contrôle d'un combobox
> le premier item de la liste et si c'est un ListBox, tu veux que le
> premier item soit sélectionné ... si j'ai compris, tu as ce code:
>
> With MeListBox1
> .ListIndex = 0
> End With
>
> With Me.ComboBox1
> .Value = .List(0)
> End With
>
>
>
> "Jean-Paul V" a écrit dans le message de groupe de
> discussion :
> Bonjour à tous
>
> J’ai la macro majChoixNom qui m’a créé la liste choixnom dans mon Userform à
> son ouverture.
> Comme le majFiche montre le premier nom pour plus de visibilité j’ai ajouté
> l’instruction :
> Me.choixnom.ListIndex = 0 et là cela se plante avec erreur 13
> incompatibilité de type
> Y-a-t-il une autre instruction pour que cela ne se plante pas tout en
> sélectionnant le premier nom de la liste à l'ouerture
> Private Sub UserForm_Initialize()
> Dim Repertoire As String
> Repertoire = ThisWorkbook.Path & ""
> ChDirNet Repertoire
> For b = 1 To 27: Set Btn(b).GrLettres = Me("B_" & b): Next b
> Sheets("BD").[A2:K5000].Sort key1:=Sheets("BD").[A2]
> '-- Liste des noms
> Me.Lettre = "Tous"
> 'Mettre à jour le Combobox Compositeurs
> RemplitCombo "*"
> ' Me.Compositeurs.Value = ""
> majChoixNom
> ligne = 2
> majFiche
> Me.choixnom.ListIndex = 0 'ajouté car la majFiche montre le premier Nom
> mais dans ce cas ChoixNom_Click se plante
> End Sub
>
> Cela se plante sur une macro pas encore appelée sur Me.ChoixOeuvre.List > > Application.Transpose(X.Items))
>
> Private Sub Choixnom_Click()
> ....
> Set X = CreateObject("Scripting.Dictionary")
> For Each C In Rg
> If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then
> X.Add CStr(C), CStr(C)
> End If
> Next
> ……
> 'Affecte au contrôle la liste trouvée
> Me.ChoixOeuvre.List = Application.Transpose(X.Items)
> …..
> End Sub
> @+j'espère
> --
> Jean-Paul V
>
>



Avatar
MichDenis
Ta question initiale disait que tu avait un message d'erreur
sur cette ligne de code lors de l'exécution de ta procédure :

If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then X.Add CStr(C), CStr(C)

Je t'ai donné un exemple comment ajouter des items à un objet collection
dans le fichier que je t'ai transmis.

Si tu obtiens un message d'erreur #13, c'est qu'il y a une méprise sur le type
de données utilisé par exemple : Texte versus numérique ???
Difficile de savoir ce que tu manipules comme données dans ton code seulement à partir de
ton code.

En dernier lieu, difficile de comprendre ta dernière question en rapport
avec ta question initiale.




"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour MichDenis

Après avoir modifié votre fichier en mettant 3 listes en cascades et en
ajoutant :
With Me.ListBox1
.ListIndex = 0
End With
Que vous aviez oublié et qui est nécessaire pour avoir les premiers des
trois listes sélectionnés à l’ouverture.
J’ai constaté que ça marchait.
Je suis donc retourné à mon fichier ou j’ai 2 versions mais aucune
entièrement satisfaisante.
La version Discothèque semble marcher, à l’ouverture j’ai mes 3 premiers de
liste sélectionnés à l’ouverture mais dès que je clic sur le deuxième nom la
majFiche ne se fait pas . Par contre si je clic sur Mozart et que je clic
sur le troisième disque tout va bien, et bizarrement si je clic sur le
deuxième nom maintenant ça marche.
La version Discothèque2 se plante dès l’ouverture comme déjà expliqué et je
ne vois pas la différence

Pour info mes 3 ListBox s’appellent Choixnom ; ChoixOeuvre ; Choixdisque

Pour ceux qui auraient le courage de regarder les deux fichiers et les *jpg
à mettre dans le même répertoire voir : http://cjoint.com/?gBrP1TKZy4


--
Jean-Paul V


"MichDenis" wrote:

http://cjoint.com/?gAtyOaJx6p



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour MichDenis

Il s'agit d'un ListBox nommé Choixnom.
J'ai essayé :
With Me.choixnom
.ListIndex = 0
End With

j'ai toujours erreur 13 et en faisant débog c'est sur
Application.Transpose(X.Items)) comme je vous l'ai indiqué d'une autre macro
Choixnom_Click()
--
Jean-Paul V


"MichDenis" wrote:

> Bonjour Jean-Paul,
>
> Est-ce que tu parles d'un LISTBOX ou d'un COMBOBOX ?
>
> Simplement, tu veux afficher dans le contrôle d'un combobox
> le premier item de la liste et si c'est un ListBox, tu veux que le
> premier item soit sélectionné ... si j'ai compris, tu as ce code:
>
> With MeListBox1
> .ListIndex = 0
> End With
>
> With Me.ComboBox1
> .Value = .List(0)
> End With
>
>
>
> "Jean-Paul V" a écrit dans le message de groupe
> de
> discussion :
> Bonjour à tous
>
> J’ai la macro majChoixNom qui m’a créé la liste choixnom dans mon Userform à
> son ouverture.
> Comme le majFiche montre le premier nom pour plus de visibilité j’ai ajouté
> l’instruction :
> Me.choixnom.ListIndex = 0 et là cela se plante avec erreur 13
> incompatibilité de type
> Y-a-t-il une autre instruction pour que cela ne se plante pas tout en
> sélectionnant le premier nom de la liste à l'ouerture
> Private Sub UserForm_Initialize()
> Dim Repertoire As String
> Repertoire = ThisWorkbook.Path & ""
> ChDirNet Repertoire
> For b = 1 To 27: Set Btn(b).GrLettres = Me("B_" & b): Next b
> Sheets("BD").[A2:K5000].Sort key1:=Sheets("BD").[A2]
> '-- Liste des noms
> Me.Lettre = "Tous"
> 'Mettre à jour le Combobox Compositeurs
> RemplitCombo "*"
> ' Me.Compositeurs.Value = ""
> majChoixNom
> ligne = 2
> majFiche
> Me.choixnom.ListIndex = 0 'ajouté car la majFiche montre le premier Nom
> mais dans ce cas ChoixNom_Click se plante
> End Sub
>
> Cela se plante sur une macro pas encore appelée sur Me.ChoixOeuvre.List > > Application.Transpose(X.Items))
>
> Private Sub Choixnom_Click()
> ....
> Set X = CreateObject("Scripting.Dictionary")
> For Each C In Rg
> If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then
> X.Add CStr(C), CStr(C)
> End If
> Next
> ……
> 'Affecte au contrôle la liste trouvée
> Me.ChoixOeuvre.List = Application.Transpose(X.Items)
> …..
> End Sub
> @+j'espère
> --
> Jean-Paul V
>
>



Avatar
Jean-Paul V
Bonjour MichDenis

Je viens de poser à nouveau la question avec un fichier plus simple .
Ma question est : Conflits entre macros
--
Jean-Paul V


"MichDenis" wrote:

Ta question initiale disait que tu avait un message d'erreur
sur cette ligne de code lors de l'exécution de ta procédure :

If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then X.Add CStr(C), CStr(C)

Je t'ai donné un exemple comment ajouter des items à un objet collection
dans le fichier que je t'ai transmis.

Si tu obtiens un message d'erreur #13, c'est qu'il y a une méprise sur le type
de données utilisé par exemple : Texte versus numérique ???
Difficile de savoir ce que tu manipules comme données dans ton code seulement à partir de
ton code.

En dernier lieu, difficile de comprendre ta dernière question en rapport
avec ta question initiale.




"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour MichDenis

Après avoir modifié votre fichier en mettant 3 listes en cascades et en
ajoutant :
With Me.ListBox1
.ListIndex = 0
End With
Que vous aviez oublié et qui est nécessaire pour avoir les premiers des
trois listes sélectionnés à l’ouverture.
J’ai constaté que ça marchait.
Je suis donc retourné à mon fichier ou j’ai 2 versions mais aucune
entièrement satisfaisante.
La version Discothèque semble marcher, à l’ouverture j’ai mes 3 premiers de
liste sélectionnés à l’ouverture mais dès que je clic sur le deuxième nom la
majFiche ne se fait pas . Par contre si je clic sur Mozart et que je clic
sur le troisième disque tout va bien, et bizarrement si je clic sur le
deuxième nom maintenant ça marche.
La version Discothèque2 se plante dès l’ouverture comme déjà expliqué et je
ne vois pas la différence

Pour info mes 3 ListBox s’appellent Choixnom ; ChoixOeuvre ; Choixdisque

Pour ceux qui auraient le courage de regarder les deux fichiers et les *jpg
à mettre dans le même répertoire voir : http://cjoint.com/?gBrP1TKZy4


--
Jean-Paul V


"MichDenis" wrote:

> http://cjoint.com/?gAtyOaJx6p
>
>
>
> "Jean-Paul V" a écrit dans le message de groupe de
> discussion :
> Bonjour MichDenis
>
> Il s'agit d'un ListBox nommé Choixnom.
> J'ai essayé :
> With Me.choixnom
> .ListIndex = 0
> End With
>
> j'ai toujours erreur 13 et en faisant débog c'est sur
> Application.Transpose(X.Items)) comme je vous l'ai indiqué d'une autre macro
> Choixnom_Click()
> --
> Jean-Paul V
>
>
> "MichDenis" wrote:
>
> > Bonjour Jean-Paul,
> >
> > Est-ce que tu parles d'un LISTBOX ou d'un COMBOBOX ?
> >
> > Simplement, tu veux afficher dans le contrôle d'un combobox
> > le premier item de la liste et si c'est un ListBox, tu veux que le
> > premier item soit sélectionné ... si j'ai compris, tu as ce code:
> >
> > With MeListBox1
> > .ListIndex = 0
> > End With
> >
> > With Me.ComboBox1
> > .Value = .List(0)
> > End With
> >
> >
> >
> > "Jean-Paul V" a écrit dans le message de groupe
> > de
> > discussion :
> > Bonjour à tous
> >
> > J’ai la macro majChoixNom qui m’a créé la liste choixnom dans mon Userform à
> > son ouverture.
> > Comme le majFiche montre le premier nom pour plus de visibilité j’ai ajouté
> > l’instruction :
> > Me.choixnom.ListIndex = 0 et là cela se plante avec erreur 13
> > incompatibilité de type
> > Y-a-t-il une autre instruction pour que cela ne se plante pas tout en
> > sélectionnant le premier nom de la liste à l'ouerture
> > Private Sub UserForm_Initialize()
> > Dim Repertoire As String
> > Repertoire = ThisWorkbook.Path & ""
> > ChDirNet Repertoire
> > For b = 1 To 27: Set Btn(b).GrLettres = Me("B_" & b): Next b
> > Sheets("BD").[A2:K5000].Sort key1:=Sheets("BD").[A2]
> > '-- Liste des noms
> > Me.Lettre = "Tous"
> > 'Mettre à jour le Combobox Compositeurs
> > RemplitCombo "*"
> > ' Me.Compositeurs.Value = ""
> > majChoixNom
> > ligne = 2
> > majFiche
> > Me.choixnom.ListIndex = 0 'ajouté car la majFiche montre le premier Nom
> > mais dans ce cas ChoixNom_Click se plante
> > End Sub
> >
> > Cela se plante sur une macro pas encore appelée sur Me.ChoixOeuvre.List > > > Application.Transpose(X.Items))
> >
> > Private Sub Choixnom_Click()
> > ....
> > Set X = CreateObject("Scripting.Dictionary")
> > For Each C In Rg
> > If Not X.Exists(CStr(C.Value)) And C.Offset(0, -2) = choixnom Then
> > X.Add CStr(C), CStr(C)
> > End If
> > Next
> > ……
> > 'Affecte au contrôle la liste trouvée
> > Me.ChoixOeuvre.List = Application.Transpose(X.Items)
> > …..
> > End Sub
> > @+j'espère
> > --
> > Jean-Paul V
> >
> >
>



Avatar
MichDenis
Voir la réponse à ton autre fil que tu as initié sur le même sujet.