OVH Cloud OVH Cloud

Bug Excel Validation (Listes)

6 réponses
Avatar
JM
Lorsque je place une liste de 13 =E9l=E9ments dans une cellule=20
excel, ca marche, MAIS j'y met 14 =E9l=E9ments, j'ai une=20
erreur qui me crash Excel violemment !!!

si mon strListe contient (13 =E9l=E9ments, ca passe)
si plus, CA PLANTE=20
strListe =3D "Elt 1, Elt 2, ..."

Range("A1:A20").Select
With Selection.Validation
.Delete
.Add Type:=3DxlValidateList,=20
AlertStyle:=3DxlValidAlertStop, Operator:=3D _
xlBetween, Formula1:=3DstrListe
.IgnoreBlank =3D True
.InCellDropdown =3D True
.InputTitle =3D ""
.ErrorTitle =3D "Liste"
.InputMessage =3D ""
.ErrorMessage =3D _
"Veuillez choisir un =E9l=E9ment de la liste !"
.ShowInput =3D True
.ShowError =3D True
End With


POURQUOI !!!!

6 réponses

Avatar
J'ai trouvé la cause :
Si len(strListe)%6, ca passe
Sinon, crash violent d'excel !!!!!!!!!!!!!!

Pfff !!!

QUE FAIRE !!!!

-----Message d'origine-----
Lorsque je place une liste de 13 éléments dans une
cellule

excel, ca marche, MAIS j'y met 14 éléments, j'ai une
erreur qui me crash Excel violemment !!!

si mon strListe contient (13 éléments, ca passe)
si plus, CA PLANTE
strListe = "Elt 1, Elt 2, ..."

Range("A1:A20").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=strListe
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Liste"
.InputMessage = ""
.ErrorMessage = _
"Veuillez choisir un élément de la liste !"
.ShowInput = True
.ShowError = True
End With


POURQUOI !!!!
.



Avatar
Michel Gaboly
Bonjour,

La cause probable est que la liste de validation
dans une feuille Excel (indépendamment de VBA)
est limitée à 255 caractères.

Utilise une plage de cellules pour stocker les
données (éventuellement une colonne masquée),
et le problème devrait être résolu.

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$H$4:$H$34"



J'ai trouvé la cause :
Si len(strListe)%6, ca passe
Sinon, crash violent d'excel !!!!!!!!!!!!!!

Pfff !!!

QUE FAIRE !!!!

-----Message d'origine-----
Lorsque je place une liste de 13 éléments dans une
cellule

excel, ca marche, MAIS j'y met 14 éléments, j'ai une
erreur qui me crash Excel violemment !!!

si mon strListe contient (13 éléments, ca passe)
si plus, CA PLANTE
strListe = "Elt 1, Elt 2, ..."

Range("A1:A20").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=strListe
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Liste"
.InputMessage = ""
.ErrorMessage = _
"Veuillez choisir un élément de la liste !"
.ShowInput = True
.ShowError = True
End With


POURQUOI !!!!
.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
ca plante quand même...
en fait, dans une liste, avec n'importe quelle solution,
on ne peut avoir > 256 cars...

-----Message d'origine-----
Bonjour,

La cause probable est que la liste de validation
dans une feuille Excel (indépendamment de VBA)
est limitée à 255 caractères.

Utilise une plage de cellules pour stocker les
données (éventuellement une colonne masquée),
et le problème devrait être résolu.

.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="=$H$4:$H$34"



J'ai trouvé la cause :
Si len(strListe)%6, ca passe
Sinon, crash violent d'excel !!!!!!!!!!!!!!

Pfff !!!

QUE FAIRE !!!!

-----Message d'origine-----
Lorsque je place une liste de 13 éléments dans une
cellule

excel, ca marche, MAIS j'y met 14 éléments, j'ai une
erreur qui me crash Excel violemment !!!

si mon strListe contient (13 éléments, ca passe)
si plus, CA PLANTE
strListe = "Elt 1, Elt 2, ..."

Range("A1:A20").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=strListe
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Liste"
.InputMessage = ""
.ErrorMessage = _
"Veuillez choisir un élément de la liste !"
.ShowInput = True
.ShowError = True
End With


POURQUOI !!!!
.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.





Avatar
Michel Gaboly
Re,

Avant de poster ma réponse à ton message, j'ai fait un
test en entrant dans les cellules H4 à H34 la formule

=LIGNE() *10000000

Cela fait en tout273 caractères, ce que tu peux vérifier
ainsi :

=SOMME(NBCAR(H4:H34))

à valider en matricielle.

J'ai ensuite sélectionné une cellule quelconque, déclenché
l'enregistrement auto, et dans Données validation choisi
"Liste". J'ai indiqué la plage et arrêté l'enregistrement.

Voici le code obtenu :

Sub Macro2()
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$H$4:$H$34"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

Aucun problème avec Excel 98 (homologue pour Mac
d'Excel 97).



ca plante quand même...
en fait, dans une liste, avec n'importe quelle solution,
on ne peut avoir > 256 cars...

-----Message d'origine-----
Bonjour,

La cause probable est que la liste de validation
dans une feuille Excel (indépendamment de VBA)
est limitée à 255 caractères.

Utilise une plage de cellules pour stocker les
données (éventuellement une colonne masquée),
et le problème devrait être résolu.

.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="=$H$4:$H$34"



J'ai trouvé la cause :
Si len(strListe)%6, ca passe
Sinon, crash violent d'excel !!!!!!!!!!!!!!

Pfff !!!

QUE FAIRE !!!!

-----Message d'origine-----
Lorsque je place une liste de 13 éléments dans une
cellule

excel, ca marche, MAIS j'y met 14 éléments, j'ai une
erreur qui me crash Excel violemment !!!

si mon strListe contient (13 éléments, ca passe)
si plus, CA PLANTE
strListe = "Elt 1, Elt 2, ..."

Range("A1:A20").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=strListe
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Liste"
.InputMessage = ""
.ErrorMessage = _
"Veuillez choisir un élément de la liste !"
.ShowInput = True
.ShowError = True
End With


POURQUOI !!!!
.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com




Avatar
JM
Bon sang de bonsoir ca marche !!!

Ce que je pige pas, c'est qu'il y a deux semaine, j'avais
un crash Excel à cause du fait que j'utilisais une adresse
(comme dans cet exemple), et j'ai changé pour y mettre une
strListe...

Et cette semaine, je dois faire l'inverse! !!!!

Donc, ... A la semaine prochaine ;)))

Merci d'avoir pris le temps de chercher...

JM

-----Message d'origine-----
Re,

Avant de poster ma réponse à ton message, j'ai fait un
test en entrant dans les cellules H4 à H34 la formule

=LIGNE() *10000000

Cela fait en tout273 caractères, ce que tu peux vérifier
ainsi :

=SOMME(NBCAR(H4:H34))

à valider en matricielle.

J'ai ensuite sélectionné une cellule quelconque, déclenché
l'enregistrement auto, et dans Données validation choisi
"Liste". J'ai indiqué la plage et arrêté l'enregistrement.

Voici le code obtenu :

Sub Macro2()
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="=$H$4:$H$34"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

Aucun problème avec Excel 98 (homologue pour Mac
d'Excel 97).



ca plante quand même...
en fait, dans une liste, avec n'importe quelle solution,
on ne peut avoir > 256 cars...

-----Message d'origine-----
Bonjour,

La cause probable est que la liste de validation
dans une feuille Excel (indépendamment de VBA)
est limitée à 255 caractères.

Utilise une plage de cellules pour stocker les
données (éventuellement une colonne masquée),
et le problème devrait être résolu.

.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="=$H$4:$H$34"



J'ai trouvé la cause :
Si len(strListe)%6, ca passe
Sinon, crash violent d'excel !!!!!!!!!!!!!!

Pfff !!!

QUE FAIRE !!!!

-----Message d'origine-----
Lorsque je place une liste de 13 éléments dans une
cellule

excel, ca marche, MAIS j'y met 14 éléments, j'ai une
erreur qui me crash Excel violemment !!!

si mon strListe contient (13 éléments, ca passe)
si plus, CA PLANTE
strListe = "Elt 1, Elt 2, ..."

Range("A1:A20").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=strListe
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Liste"
.InputMessage = ""
.ErrorMessage = _
"Veuillez choisir un élément de la liste !"
.ShowInput = True
.ShowError = True
End With


POURQUOI !!!!
.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.







Avatar
Michel Gaboly
A la semaine prochaine, donc ;-)))


Bon sang de bonsoir ca marche !!!

Ce que je pige pas, c'est qu'il y a deux semaine, j'avais
un crash Excel à cause du fait que j'utilisais une adresse
(comme dans cet exemple), et j'ai changé pour y mettre une
strListe...

Et cette semaine, je dois faire l'inverse! !!!!

Donc, ... A la semaine prochaine ;)))

Merci d'avoir pris le temps de chercher...

JM

-----Message d'origine-----
Re,

Avant de poster ma réponse à ton message, j'ai fait un
test en entrant dans les cellules H4 à H34 la formule

=LIGNE() *10000000

Cela fait en tout273 caractères, ce que tu peux vérifier
ainsi :

=SOMME(NBCAR(H4:H34))

à valider en matricielle.

J'ai ensuite sélectionné une cellule quelconque, déclenché
l'enregistrement auto, et dans Données validation choisi
"Liste". J'ai indiqué la plage et arrêté l'enregistrement.

Voici le code obtenu :

Sub Macro2()
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="=$H$4:$H$34"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

Aucun problème avec Excel 98 (homologue pour Mac
d'Excel 97).



ca plante quand même...
en fait, dans une liste, avec n'importe quelle solution,
on ne peut avoir > 256 cars...

-----Message d'origine-----
Bonjour,

La cause probable est que la liste de validation
dans une feuille Excel (indépendamment de VBA)
est limitée à 255 caractères.

Utilise une plage de cellules pour stocker les
données (éventuellement une colonne masquée),
et le problème devrait être résolu.

.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _

xlBetween, Formula1:="=$H$4:$H$34"



J'ai trouvé la cause :
Si len(strListe)%6, ca passe
Sinon, crash violent d'excel !!!!!!!!!!!!!!

Pfff !!!

QUE FAIRE !!!!

-----Message d'origine-----
Lorsque je place une liste de 13 éléments dans une
cellule

excel, ca marche, MAIS j'y met 14 éléments, j'ai une
erreur qui me crash Excel violemment !!!

si mon strListe contient (13 éléments, ca passe)
si plus, CA PLANTE
strListe = "Elt 1, Elt 2, ..."

Range("A1:A20").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=strListe
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Liste"
.InputMessage = ""
.ErrorMessage = _
"Veuillez choisir un élément de la liste !"
.ShowInput = True
.ShowError = True
End With


POURQUOI !!!!
.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com