OVH Cloud OVH Cloud

Inputbox et mise en forme conditionnelle

5 réponses
Avatar
Animal
Bonjour =E0 tous.

Tout d'abord... Un grand grand merci =E0 tous.
=C7a fait maintenant, =E0 peu pr=E8s 6 mois que les newsgroups
microsoft.public.fr. r=E9pondent =E0 toutes mes questions,
particuli=E8rement Excel & Access, sans que je n'ai besoin de d=E9marrer
de nouveau sujet.
Avec tous les sites associ=E9s (excelabo.net...), ce sont de vraies
mines d'or !
J'adore y fouiner, l'ambiance et les gens y sont tr=E8s tr=E8s
sympathiques.
Merci.

Malheureusement, je ne viens pas que pour vous dire ceci, j'ai aussi un
petit soucis.



Donc... mon probl=E8me est le suivant :
Il semble que ce type de m=E9thode ne soit pas compatible avec un mise
en forme conditionnelle :

--~----------------------------------------------------------~--
Sub SelectionPlageAvecSouris()
Dim Plage As Range
Set Plage =3D Application.InputBox("S=E9lectionnez une plage !",
"S=E9lection de cellules", Type:=3D8)
MsgBox ("La plage que vous avez s=E9l=E9ctionnez est : " &
Plage.Address)
End Sub
--~----------------------------------------------------------~--

Si je ne supprime pas toutes mises en forme conditionnelle avant
d'ex=E9cuter ce sub, j'obtiens une erreur d'ex=E9cution 424 : Objet
requis.


J'ai trouv=E9 un d=E9but de r=E9ponse dans ce sujet
(http://groups-beta.google.com/group/microsoft.public.fr.excel/browse_threa=
d/thread/578b385d114e889f).
Mais pas de vrai solution.

Auriez vous une petite id=E9e ?
Merci =E0 tous.

5 réponses

Avatar
MichDenis
Bonjour Animal,

Tu n'es pas seul à observer ce type de problème ! J'ai pu reproduire ce type d'erreur.

Lorsqu'une feuille à une mise en forme conditionnelle d'une cinquantaine de cellule avec un formule aussi simple que :
=estvide(A1) , application.inputbox() ne fonctionne plus.

Je ne sais pas pourquoi ! Une autre chinoiserie d'excel !!!!!!!!!!!!!!!!!!!

Cependant, je te ferai remarquer que ta syntaxe n'est pas bonne :

Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)

Lorsque l'on utilise le paramètre pour un des éléments de la fonction, il faut l'utiliser pour chacun des paramètres. En
conséquence, la syntaxe peut être :

Set Plage = Application.InputBox(Prompt:="Sélectionnez une plage !", _
"Sélection de cellules", Type:=8)

OU

Set Plage = Application.InputBox("Sélectionnez une plage !", _
"Sélection de cellules", , , , , , 8)


Salutations!








"Animal" a écrit dans le message de news:

Bonjour à tous.

Tout d'abord... Un grand grand merci à tous.
Ça fait maintenant, à peu près 6 mois que les newsgroups
microsoft.public.fr. répondent à toutes mes questions,
particulièrement Excel & Access, sans que je n'ai besoin de démarrer
de nouveau sujet.
Avec tous les sites associés (excelabo.net...), ce sont de vraies
mines d'or !
J'adore y fouiner, l'ambiance et les gens y sont très très
sympathiques.
Merci.

Malheureusement, je ne viens pas que pour vous dire ceci, j'ai aussi un
petit soucis.



Donc... mon problème est le suivant :
Il semble que ce type de méthode ne soit pas compatible avec un mise
en forme conditionnelle :

--~----------------------------------------------------------~--
Sub SelectionPlageAvecSouris()
Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)
MsgBox ("La plage que vous avez séléctionnez est : " &
Plage.Address)
End Sub
--~----------------------------------------------------------~--

Si je ne supprime pas toutes mises en forme conditionnelle avant
d'exécuter ce sub, j'obtiens une erreur d'exécution 424 : Objet
requis.


J'ai trouvé un début de réponse dans ce sujet
(http://groups-beta.google.com/group/microsoft.public.fr.excel/browse_thread/thread/578b385d114e889f).
Mais pas de vrai solution.

Auriez vous une petite idée ?
Merci à tous.
Avatar
isabelle
bonjour animal et denis,

avec cette syntaxe je réussie à sélectionner une seule cellule

Set Plage = Application.InputBox("Sélectionnez une plage", Type:=8 + 64)

mais pas plusieurs, lorsqu'il y a une cinquantaine de mise en forme
conditionnelle sur la feuille.

isabelle


Bonjour Animal,

Tu n'es pas seul à observer ce type de problème ! J'ai pu reproduire ce type d'erreur.

Lorsqu'une feuille à une mise en forme conditionnelle d'une cinquantaine de cellule avec un formule aussi simple que :
=estvide(A1) , application.inputbox() ne fonctionne plus.

Je ne sais pas pourquoi ! Une autre chinoiserie d'excel !!!!!!!!!!!!!!!!!!!

Cependant, je te ferai remarquer que ta syntaxe n'est pas bonne :

Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)

Lorsque l'on utilise le paramètre pour un des éléments de la fonction, il faut l'utiliser pour chacun des paramètres. En
conséquence, la syntaxe peut être :

Set Plage = Application.InputBox(Prompt:="Sélectionnez une plage !", _
"Sélection de cellules", Type:=8)

OU

Set Plage = Application.InputBox("Sélectionnez une plage !", _
"Sélection de cellules", , , , , , 8)


Salutations!








"Animal" a écrit dans le message de news:

Bonjour à tous.

Tout d'abord... Un grand grand merci à tous.
Ça fait maintenant, à peu près 6 mois que les newsgroups
microsoft.public.fr. répondent à toutes mes questions,
particulièrement Excel & Access, sans que je n'ai besoin de démarrer
de nouveau sujet.
Avec tous les sites associés (excelabo.net...), ce sont de vraies
mines d'or !
J'adore y fouiner, l'ambiance et les gens y sont très très
sympathiques.
Merci.

Malheureusement, je ne viens pas que pour vous dire ceci, j'ai aussi un
petit soucis.



Donc... mon problème est le suivant :
Il semble que ce type de méthode ne soit pas compatible avec un mise
en forme conditionnelle :

--~----------------------------------------------------------~--
Sub SelectionPlageAvecSouris()
Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)
MsgBox ("La plage que vous avez séléctionnez est : " &
Plage.Address)
End Sub
--~----------------------------------------------------------~--

Si je ne supprime pas toutes mises en forme conditionnelle avant
d'exécuter ce sub, j'obtiens une erreur d'exécution 424 : Objet
requis.


J'ai trouvé un début de réponse dans ce sujet
(http://groups-beta.google.com/group/microsoft.public.fr.excel/browse_thread/thread/578b385d114e889f).
Mais pas de vrai solution.

Auriez vous une petite idée ?
Merci à tous.




Avatar
MichDenis
Bonjour Isabelle,

Si tu augmentes un peu le nombre de cellules ayant un format conditionnelle, ta syntaxe n'est pas valide pour même une
seule cellule.

J'en profite pour corriger une des 2 syntaxes que j'émettais au message précédent :

Set Plage = Application.InputBox(Prompt:="Sélectionnez une plage !", _
Title:="Sélection de cellules", Type:=8)

P.S. J'avais omis d'insérer : Title:
Salutations!


"isabelle" a écrit dans le message de news: %
bonjour animal et denis,

avec cette syntaxe je réussie à sélectionner une seule cellule

Set Plage = Application.InputBox("Sélectionnez une plage", Type:=8 + 64)

mais pas plusieurs, lorsqu'il y a une cinquantaine de mise en forme
conditionnelle sur la feuille.

isabelle


Bonjour Animal,

Tu n'es pas seul à observer ce type de problème ! J'ai pu reproduire ce type d'erreur.

Lorsqu'une feuille à une mise en forme conditionnelle d'une cinquantaine de cellule avec un formule aussi simple que :
=estvide(A1) , application.inputbox() ne fonctionne plus.

Je ne sais pas pourquoi ! Une autre chinoiserie d'excel !!!!!!!!!!!!!!!!!!!

Cependant, je te ferai remarquer que ta syntaxe n'est pas bonne :

Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)

Lorsque l'on utilise le paramètre pour un des éléments de la fonction, il faut l'utiliser pour chacun des paramètres.
En
conséquence, la syntaxe peut être :

Set Plage = Application.InputBox(Prompt:="Sélectionnez une plage !", _
"Sélection de cellules", Type:=8)

OU

Set Plage = Application.InputBox("Sélectionnez une plage !", _
"Sélection de cellules", , , , , , 8)


Salutations!








"Animal" a écrit dans le message de news:

Bonjour à tous.

Tout d'abord... Un grand grand merci à tous.
Ça fait maintenant, à peu près 6 mois que les newsgroups
microsoft.public.fr. répondent à toutes mes questions,
particulièrement Excel & Access, sans que je n'ai besoin de démarrer
de nouveau sujet.
Avec tous les sites associés (excelabo.net...), ce sont de vraies
mines d'or !
J'adore y fouiner, l'ambiance et les gens y sont très très
sympathiques.
Merci.

Malheureusement, je ne viens pas que pour vous dire ceci, j'ai aussi un
petit soucis.



Donc... mon problème est le suivant :
Il semble que ce type de méthode ne soit pas compatible avec un mise
en forme conditionnelle :

--~----------------------------------------------------------~--
Sub SelectionPlageAvecSouris()
Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)
MsgBox ("La plage que vous avez séléctionnez est : " &
Plage.Address)
End Sub
--~----------------------------------------------------------~--

Si je ne supprime pas toutes mises en forme conditionnelle avant
d'exécuter ce sub, j'obtiens une erreur d'exécution 424 : Objet
requis.


J'ai trouvé un début de réponse dans ce sujet
(http://groups-beta.google.com/group/microsoft.public.fr.excel/browse_thread/thread/578b385d114e889f).
Mais pas de vrai solution.

Auriez vous une petite idée ?
Merci à tous.




Avatar
Gaenonius
P.S. J'avais omis d'insérer : Title:
Ce n'était pas très grave MichDenis. Lorsque l'on passe les paramètres d'une

fonction dans leur ordre de déclaration par Excel, il n'y a pas besoin de les
nommer.
Pour la fonction InputBox, ça suppose cette syntaxe :

Application.InputBox("Plage", "Cellules", , , , , , 8)

Lorsqu'on les nomme, cela permet de les passer dans le désordre :

Application.InputBox(Type:=8, Title:="Cellules", Prompt:="Plage")

On peut aussi mélanger les deux méthodes :

Application.InputBox("Plage", "Cellules",Type:=8)


--
Gaenonius

Bonjour Isabelle,

Si tu augmentes un peu le nombre de cellules ayant un format conditionnelle, ta syntaxe n'est pas valide pour même une
seule cellule.

J'en profite pour corriger une des 2 syntaxes que j'émettais au message précédent :

Set Plage = Application.InputBox(Prompt:="Sélectionnez une plage !", _
Title:="Sélection de cellules", Type:=8)

P.S. J'avais omis d'insérer : Title: >
Salutations!


"isabelle" a écrit dans le message de news: %
bonjour animal et denis,

avec cette syntaxe je réussie à sélectionner une seule cellule

Set Plage = Application.InputBox("Sélectionnez une plage", Type:=8 + 64)

mais pas plusieurs, lorsqu'il y a une cinquantaine de mise en forme
conditionnelle sur la feuille.

isabelle



Bonjour Animal,

Tu n'es pas seul à observer ce type de problème ! J'ai pu reproduire ce type d'erreur.

Lorsqu'une feuille à une mise en forme conditionnelle d'une cinquantaine de cellule avec un formule aussi simple que :
=estvide(A1) , application.inputbox() ne fonctionne plus.

Je ne sais pas pourquoi ! Une autre chinoiserie d'excel !!!!!!!!!!!!!!!!!!!

Cependant, je te ferai remarquer que ta syntaxe n'est pas bonne :

Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)

Lorsque l'on utilise le paramètre pour un des éléments de la fonction, il faut l'utiliser pour chacun des paramètres.
En
conséquence, la syntaxe peut être :

Set Plage = Application.InputBox(Prompt:="Sélectionnez une plage !", _
"Sélection de cellules", Type:=8)

OU

Set Plage = Application.InputBox("Sélectionnez une plage !", _
"Sélection de cellules", , , , , , 8)


Salutations!








"Animal" a écrit dans le message de news:

Bonjour à tous.

Tout d'abord... Un grand grand merci à tous.
Ça fait maintenant, à peu près 6 mois que les newsgroups
microsoft.public.fr. répondent à toutes mes questions,
particulièrement Excel & Access, sans que je n'ai besoin de démarrer
de nouveau sujet.
Avec tous les sites associés (excelabo.net...), ce sont de vraies
mines d'or !
J'adore y fouiner, l'ambiance et les gens y sont très très
sympathiques.
Merci.

Malheureusement, je ne viens pas que pour vous dire ceci, j'ai aussi un
petit soucis.



Donc... mon problème est le suivant :
Il semble que ce type de méthode ne soit pas compatible avec un mise
en forme conditionnelle :

--~----------------------------------------------------------~--
Sub SelectionPlageAvecSouris()
Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)
MsgBox ("La plage que vous avez séléctionnez est : " &
Plage.Address)
End Sub
--~----------------------------------------------------------~--

Si je ne supprime pas toutes mises en forme conditionnelle avant
d'exécuter ce sub, j'obtiens une erreur d'exécution 424 : Objet
requis.


J'ai trouvé un début de réponse dans ce sujet
(http://groups-beta.google.com/group/microsoft.public.fr.excel/browse_thread/thread/578b385d114e889f).
Mais pas de vrai solution.

Auriez vous une petite idée ?
Merci à tous.









Avatar
MichDenis
Bonsoir Gaenonius,

| On peut aussi mélanger les deux méthodes :

Ta suggestion était : Application.InputBox("Plage", "Cellules",Type:=8)

Essaie ceux-ci :

MsgBox Application.InputBox(Prompt:="Plage", "Cellules",Type:=8) 'Non
MsgBox Application.InputBox(Prompt:="Plage",, Type:=8) ' Non
MsgBox Application.InputBox("Plage", , Type:=8) ' OK

Fonctionnent-t-elles tous aussi bien ?

Oui c'est vrai, il est possible de couper les cheveux en 4. Mais il est plus facile d'après moi, de retenir le principe
général qui fonctionne dans toutes les conditions : Tu nommes les paramètres ou tu ne les nommes pas ! Quite à raffiner
au besoin pour les gens aguerris le mélange dont tu parles. Il faudra que tu précises alors que si le premier argument
est nommé, les autres devront aussi être nommés... Et si les premiers arguments ne sont pas nommés, seul le dernier
argument d'une fonction peut l'être comme dans l'exemple que tu as produit.


Salutations!



"Gaenonius" a écrit dans le message de news: %
P.S. J'avais omis d'insérer : Title:
Ce n'était pas très grave MichDenis. Lorsque l'on passe les paramètres d'une

fonction dans leur ordre de déclaration par Excel, il n'y a pas besoin de les
nommer.
Pour la fonction InputBox, ça suppose cette syntaxe :

Application.InputBox("Plage", "Cellules", , , , , , 8)

Lorsqu'on les nomme, cela permet de les passer dans le désordre :

Application.InputBox(Type:=8, Title:="Cellules", Prompt:="Plage")

On peut aussi mélanger les deux méthodes :

Application.InputBox("Plage", "Cellules",Type:=8)


--
Gaenonius

Bonjour Isabelle,

Si tu augmentes un peu le nombre de cellules ayant un format conditionnelle, ta syntaxe n'est pas valide pour même une
seule cellule.

J'en profite pour corriger une des 2 syntaxes que j'émettais au message précédent :

Set Plage = Application.InputBox(Prompt:="Sélectionnez une plage !", _
Title:="Sélection de cellules", Type:=8)

P.S. J'avais omis d'insérer : Title: >
Salutations!


"isabelle" a écrit dans le message de news: %
bonjour animal et denis,

avec cette syntaxe je réussie à sélectionner une seule cellule

Set Plage = Application.InputBox("Sélectionnez une plage", Type:=8 + 64)

mais pas plusieurs, lorsqu'il y a une cinquantaine de mise en forme
conditionnelle sur la feuille.

isabelle



Bonjour Animal,

Tu n'es pas seul à observer ce type de problème ! J'ai pu reproduire ce type d'erreur.

Lorsqu'une feuille à une mise en forme conditionnelle d'une cinquantaine de cellule avec un formule aussi simple que :
=estvide(A1) , application.inputbox() ne fonctionne plus.

Je ne sais pas pourquoi ! Une autre chinoiserie d'excel !!!!!!!!!!!!!!!!!!!

Cependant, je te ferai remarquer que ta syntaxe n'est pas bonne :

Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)

Lorsque l'on utilise le paramètre pour un des éléments de la fonction, il faut l'utiliser pour chacun des paramètres.
En
conséquence, la syntaxe peut être :

Set Plage = Application.InputBox(Prompt:="Sélectionnez une plage !", _
"Sélection de cellules", Type:=8)

OU

Set Plage = Application.InputBox("Sélectionnez une plage !", _
"Sélection de cellules", , , , , , 8)


Salutations!








"Animal" a écrit dans le message de news:

Bonjour à tous.

Tout d'abord... Un grand grand merci à tous.
Ça fait maintenant, à peu près 6 mois que les newsgroups
microsoft.public.fr. répondent à toutes mes questions,
particulièrement Excel & Access, sans que je n'ai besoin de démarrer
de nouveau sujet.
Avec tous les sites associés (excelabo.net...), ce sont de vraies
mines d'or !
J'adore y fouiner, l'ambiance et les gens y sont très très
sympathiques.
Merci.

Malheureusement, je ne viens pas que pour vous dire ceci, j'ai aussi un
petit soucis.



Donc... mon problème est le suivant :
Il semble que ce type de méthode ne soit pas compatible avec un mise
en forme conditionnelle :

--~----------------------------------------------------------~--
Sub SelectionPlageAvecSouris()
Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez une plage !",
"Sélection de cellules", Type:=8)
MsgBox ("La plage que vous avez séléctionnez est : " &
Plage.Address)
End Sub
--~----------------------------------------------------------~--

Si je ne supprime pas toutes mises en forme conditionnelle avant
d'exécuter ce sub, j'obtiens une erreur d'exécution 424 : Objet
requis.


J'ai trouvé un début de réponse dans ce sujet
(http://groups-beta.google.com/group/microsoft.public.fr.excel/browse_thread/thread/578b385d114e889f).
Mais pas de vrai solution.

Auriez vous une petite idée ?
Merci à tous.