OVH Cloud OVH Cloud

Mise en forme conditionnelle et protection

9 réponses
Avatar
Caroline L.
Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la feuille.
J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom de
famille dans un textbox et j'ai inséré une mise en forme conditionnelle sur
les cellules de la feuille. Donc, on saisissant le nom de famille, ce nom
s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la feuille,
la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire que
les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon userform5
ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique sur
Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas, tout
mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la protection
de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que : est-ce que
la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub

9 réponses

Avatar
MichDenis
Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes feuilles sur lesquelles tu désires intervenir par macro.


Cette façon de faire te permet de travailler dans une feuille protéger par MACRO comme si la feuille n'avait aucune protection. Il
est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode Protect


Salutations!



"Caroline L." a écrit dans le message de news:
Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la feuille.
J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom de
famille dans un textbox et j'ai inséré une mise en forme conditionnelle sur
les cellules de la feuille. Donc, on saisissant le nom de famille, ce nom
s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la feuille,
la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire que
les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon userform5
ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique sur
Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas, tout
mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la protection
de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que : est-ce que
la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub
Avatar
Caroline L.
Bonsoir MichDenis,

Tu es toujours fidèle au poste !
Merci encore une fois pour ton aide si apprécié.

Puisque tu es là, j'ai une question faisant suite à un post des derniers
jours. Te souviens-tu m'avoir parlé de
Application.CommandBar.DisableCustomize (pour désactiver le sous-menu de
Ajouter/Supprimer des boutons) ? Tu disais que dans Excel 2003, il y a
surement un bug car cette application ne fonctionne pas. Ma question est la
suivante : j'ai créé un classeur avec cette application et tout est correct
puisque cette ordinateur a excel 2002 (et moi j'ai excel 2000 et tout va
bien).
Sauf que bientôt, le fichier sera disponible pour plusieurs personnes et
elles pourront le consulter avec PC Anywhere. Est-ce que tu anticipes la
suite ? Si une personne a excel 2003 (ou même une version plus ancienne,
par exemple excel 1997), est-ce que le classeur va émettre une erreur ?
Est-ce que le programme va planter selon toi ?
Ton avis m'est précieux.


Caroline



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

Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes
feuilles sur lesquelles tu désires intervenir par macro.



Cette façon de faire te permet de travailler dans une feuille protéger par
MACRO comme si la feuille n'avait aucune protection. Il

est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode
Protect



Salutations!



"Caroline L." a écrit dans le message de news:


Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la
feuille.

J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom de
famille dans un textbox et j'ai inséré une mise en forme conditionnelle
sur

les cellules de la feuille. Donc, on saisissant le nom de famille, ce nom
s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la
feuille,

la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire que
les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon userform5
ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique sur
Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas, tout
mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la protection
de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que : est-ce
que

la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub





Avatar
Caroline L.
Re-bonsoir MichDenis,

petite correction à mon dernier post ;

Application.CommandBar.DisableCustomize
est dans mon fichier excel 2002 mais pas dans celui avec excel 2000, c'est
une autre façon qui est utilisée car le DisableCustomize n'était pas encore
disponible dans cette version.

voilà.


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

Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes
feuilles sur lesquelles tu désires intervenir par macro.



Cette façon de faire te permet de travailler dans une feuille protéger par
MACRO comme si la feuille n'avait aucune protection. Il

est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode
Protect



Salutations!



"Caroline L." a écrit dans le message de news:


Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la
feuille.

J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom de
famille dans un textbox et j'ai inséré une mise en forme conditionnelle
sur

les cellules de la feuille. Donc, on saisissant le nom de famille, ce nom
s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la
feuille,

la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire que
les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon userform5
ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique sur
Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas, tout
mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la protection
de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que : est-ce
que

la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub





Avatar
MichDenis
Bonjour Caroline,


DisableCustomize est disponible à partir de Excel 2002. Je te rassure, cette méthode fonctionne très bien avec exce 2003.

Là où je parlais de bug, c'est avec cette méthode :

With Application.CommandBars("Standard")
.Protection = msoBarNoCustomize
End With

Cette ligne de commande ".Protection = msoBarNoCustomize" Seule n'a pas d'effet quant à la possibilité de modifier la barre
d'ouitils.

Ce n'est pas le cas pour les versions plus anciennes !


Salutations!





"Caroline L." a écrit dans le message de news: %
Re-bonsoir MichDenis,

petite correction à mon dernier post ;

Application.CommandBar.DisableCustomize
est dans mon fichier excel 2002 mais pas dans celui avec excel 2000, c'est
une autre façon qui est utilisée car le DisableCustomize n'était pas encore
disponible dans cette version.

voilà.


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

Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes
feuilles sur lesquelles tu désires intervenir par macro.



Cette façon de faire te permet de travailler dans une feuille protéger par
MACRO comme si la feuille n'avait aucune protection. Il

est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode
Protect



Salutations!



"Caroline L." a écrit dans le message de news:


Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la
feuille.

J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom de
famille dans un textbox et j'ai inséré une mise en forme conditionnelle
sur

les cellules de la feuille. Donc, on saisissant le nom de famille, ce nom
s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la
feuille,

la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire que
les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon userform5
ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique sur
Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas, tout
mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la protection
de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que : est-ce
que

la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub





Avatar
Caroline L.
Bonjour MichDenis,

Bon je suis rassurée pour le DisableCustomize mais je suis maintenant
tourmentée avec
".Protection = msoBarNoCustomize" Je l'utilise de la façon suivante :

Private Sub Workbook_Activate()

'appeler la barre d'outils personnalisée nommée Administration

With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize

End With
________________

Si une personne a Excel 2003, est-ce que le programme va planter ?


Merci pour tes conseils

Caroline


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

Bonjour Caroline,


DisableCustomize est disponible à partir de Excel 2002. Je te rassure,
cette méthode fonctionne très bien avec exce 2003.


Là où je parlais de bug, c'est avec cette méthode :

With Application.CommandBars("Standard")
.Protection = msoBarNoCustomize
End With

Cette ligne de commande ".Protection = msoBarNoCustomize" Seule n'a pas
d'effet quant à la possibilité de modifier la barre

d'ouitils.

Ce n'est pas le cas pour les versions plus anciennes !


Salutations!





"Caroline L." a écrit dans le message de news:
%

Re-bonsoir MichDenis,

petite correction à mon dernier post ;

Application.CommandBar.DisableCustomize
est dans mon fichier excel 2002 mais pas dans celui avec excel 2000, c'est
une autre façon qui est utilisée car le DisableCustomize n'était pas
encore

disponible dans cette version.

voilà.


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

Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes
feuilles sur lesquelles tu désires intervenir par macro.



Cette façon de faire te permet de travailler dans une feuille protéger
par


MACRO comme si la feuille n'avait aucune protection. Il
est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode
Protect



Salutations!



"Caroline L." a écrit dans le message de news:


Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la
feuille.

J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom de
famille dans un textbox et j'ai inséré une mise en forme conditionnelle
sur

les cellules de la feuille. Donc, on saisissant le nom de famille, ce
nom


s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la
feuille,

la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire
que


les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon
userform5


ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique sur
Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas,
tout


mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la
protection


de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que : est-ce
que

la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub










Avatar
MichDenis
Bonjour Caroline,

Cela ne fera pas planter ton programme avec excel 2002 et 2003 mais les versions antérieures oui, car cette méthode n'est pas
disponible. Tu vas devoir ajouter un test sur la version d'excel dans ta procédure

If Val(Application.Version) >= 10 Then
'Tu utilises DisableCustomize pour les barres d'outils

Else
With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize
End With
End If


Salutations!


"Caroline L." a écrit dans le message de news:
Bonjour MichDenis,

Bon je suis rassurée pour le DisableCustomize mais je suis maintenant
tourmentée avec
".Protection = msoBarNoCustomize" Je l'utilise de la façon suivante :

Private Sub Workbook_Activate()

'appeler la barre d'outils personnalisée nommée Administration

With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize

End With
________________

Si une personne a Excel 2003, est-ce que le programme va planter ?


Merci pour tes conseils

Caroline


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

Bonjour Caroline,


DisableCustomize est disponible à partir de Excel 2002. Je te rassure,
cette méthode fonctionne très bien avec exce 2003.


Là où je parlais de bug, c'est avec cette méthode :

With Application.CommandBars("Standard")
.Protection = msoBarNoCustomize
End With

Cette ligne de commande ".Protection = msoBarNoCustomize" Seule n'a pas
d'effet quant à la possibilité de modifier la barre

d'ouitils.

Ce n'est pas le cas pour les versions plus anciennes !


Salutations!





"Caroline L." a écrit dans le message de news:
%

Re-bonsoir MichDenis,

petite correction à mon dernier post ;

Application.CommandBar.DisableCustomize
est dans mon fichier excel 2002 mais pas dans celui avec excel 2000, c'est
une autre façon qui est utilisée car le DisableCustomize n'était pas
encore

disponible dans cette version.

voilà.


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

Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes
feuilles sur lesquelles tu désires intervenir par macro.



Cette façon de faire te permet de travailler dans une feuille protéger
par


MACRO comme si la feuille n'avait aucune protection. Il
est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode
Protect



Salutations!



"Caroline L." a écrit dans le message de news:


Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la
feuille.

J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom de
famille dans un textbox et j'ai inséré une mise en forme conditionnelle
sur

les cellules de la feuille. Donc, on saisissant le nom de famille, ce
nom


s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la
feuille,

la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire
que


les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon
userform5


ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique sur
Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas,
tout


mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la
protection


de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que : est-ce
que

la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub










Avatar
Caroline L.
Bonjour MichDenis,

Ta réponse me fait réfléchir et tout cela me fait peur... y a t-il d'autres
applications qui pourraient poser un problème ?... c'est la question que je
me pose. Alors :
Y a t-il un bout de code que je pourrais ajouter pour dire au programme par
exemple :

If version > then utilise les contrôles et applications de la version 10
If version = 9 then utilise les contrôles et applications de la version 9
etc... peut-être reculer jusqu'à la version excel 97

De cette façon, le programme ne plantera pas. Est-ce que tout ceci est
possible ?


Merci et bonne soirée à toi

Caroline

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

Bonjour Caroline,

Cela ne fera pas planter ton programme avec excel 2002 et 2003 mais les
versions antérieures oui, car cette méthode n'est pas

disponible. Tu vas devoir ajouter un test sur la version d'excel dans ta
procédure


If Val(Application.Version) >= 10 Then
'Tu utilises DisableCustomize pour les barres d'outils

Else
With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize
End With
End If


Salutations!


"Caroline L." a écrit dans le message de news:


Bonjour MichDenis,

Bon je suis rassurée pour le DisableCustomize mais je suis maintenant
tourmentée avec
".Protection = msoBarNoCustomize" Je l'utilise de la façon suivante :

Private Sub Workbook_Activate()

'appeler la barre d'outils personnalisée nommée Administration

With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize

End With
________________

Si une personne a Excel 2003, est-ce que le programme va planter ?


Merci pour tes conseils

Caroline


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

Bonjour Caroline,


DisableCustomize est disponible à partir de Excel 2002. Je te rassure,
cette méthode fonctionne très bien avec exce 2003.


Là où je parlais de bug, c'est avec cette méthode :

With Application.CommandBars("Standard")
.Protection = msoBarNoCustomize
End With

Cette ligne de commande ".Protection = msoBarNoCustomize" Seule n'a pas
d'effet quant à la possibilité de modifier la barre

d'ouitils.

Ce n'est pas le cas pour les versions plus anciennes !


Salutations!





"Caroline L." a écrit dans le message de news:
%

Re-bonsoir MichDenis,

petite correction à mon dernier post ;

Application.CommandBar.DisableCustomize
est dans mon fichier excel 2002 mais pas dans celui avec excel 2000,
c'est


une autre façon qui est utilisée car le DisableCustomize n'était pas
encore

disponible dans cette version.

voilà.


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

Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes
feuilles sur lesquelles tu désires intervenir par macro.



Cette façon de faire te permet de travailler dans une feuille protéger
par


MACRO comme si la feuille n'avait aucune protection. Il
est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode
Protect



Salutations!



"Caroline L." a écrit dans le message de news:


Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la
feuille.

J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom
de



famille dans un textbox et j'ai inséré une mise en forme
conditionnelle



sur
les cellules de la feuille. Donc, on saisissant le nom de famille, ce
nom


s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la
feuille,

la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire
que


les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon
userform5


ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique
sur



Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas,
tout


mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la
protection


de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que :
est-ce



que
la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub















Avatar
MichDenis
Bonjour Caroline,

Si tu dois développer une application valide pour les versions 97 à 2003, il est plus facile de travailler à partir d'une version
97. Habituellement, si ton code est fonctionnel sous cette version, cela devrait bien se passer pour les versions récentes.

Cependant, les différences entre les version 97 et 2003 ne sont pas très grandes ....il te suffira de rouler ton programme sous la
version excel 97 et apporter les quelques changements requis en cas de pépins. Il y a toujours moyen de trouver des alternatives à
une façon de faire d'une version à l'autre.


Salutations!




"Caroline L." a écrit dans le message de news:
Bonjour MichDenis,

Ta réponse me fait réfléchir et tout cela me fait peur... y a t-il d'autres
applications qui pourraient poser un problème ?... c'est la question que je
me pose. Alors :
Y a t-il un bout de code que je pourrais ajouter pour dire au programme par
exemple :

If version > then utilise les contrôles et applications de la version 10
If version = 9 then utilise les contrôles et applications de la version 9
etc... peut-être reculer jusqu'à la version excel 97

De cette façon, le programme ne plantera pas. Est-ce que tout ceci est
possible ?


Merci et bonne soirée à toi

Caroline

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

Bonjour Caroline,

Cela ne fera pas planter ton programme avec excel 2002 et 2003 mais les
versions antérieures oui, car cette méthode n'est pas

disponible. Tu vas devoir ajouter un test sur la version d'excel dans ta
procédure


If Val(Application.Version) >= 10 Then
'Tu utilises DisableCustomize pour les barres d'outils

Else
With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize
End With
End If


Salutations!


"Caroline L." a écrit dans le message de news:


Bonjour MichDenis,

Bon je suis rassurée pour le DisableCustomize mais je suis maintenant
tourmentée avec
".Protection = msoBarNoCustomize" Je l'utilise de la façon suivante :

Private Sub Workbook_Activate()

'appeler la barre d'outils personnalisée nommée Administration

With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize

End With
________________

Si une personne a Excel 2003, est-ce que le programme va planter ?


Merci pour tes conseils

Caroline


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

Bonjour Caroline,


DisableCustomize est disponible à partir de Excel 2002. Je te rassure,
cette méthode fonctionne très bien avec exce 2003.


Là où je parlais de bug, c'est avec cette méthode :

With Application.CommandBars("Standard")
.Protection = msoBarNoCustomize
End With

Cette ligne de commande ".Protection = msoBarNoCustomize" Seule n'a pas
d'effet quant à la possibilité de modifier la barre

d'ouitils.

Ce n'est pas le cas pour les versions plus anciennes !


Salutations!





"Caroline L." a écrit dans le message de news:
%

Re-bonsoir MichDenis,

petite correction à mon dernier post ;

Application.CommandBar.DisableCustomize
est dans mon fichier excel 2002 mais pas dans celui avec excel 2000,
c'est


une autre façon qui est utilisée car le DisableCustomize n'était pas
encore

disponible dans cette version.

voilà.


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

Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes
feuilles sur lesquelles tu désires intervenir par macro.



Cette façon de faire te permet de travailler dans une feuille protéger
par


MACRO comme si la feuille n'avait aucune protection. Il
est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode
Protect



Salutations!



"Caroline L." a écrit dans le message de news:


Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la
feuille.

J'ai créé un formulaire (userform5) dans lequel l'usager saisi le nom
de



famille dans un textbox et j'ai inséré une mise en forme
conditionnelle



sur
les cellules de la feuille. Donc, on saisissant le nom de famille, ce
nom


s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la
feuille,

la mise en forme conditionnelle s'opére sur ces cellules c'est-à-dire
que


les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon
userform5


ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique
sur



Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas,
tout


mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la
protection


de la feuille soit activée. Je pensais donc à une macro qui "autorise"
l'écriture en V16 malgré la protection de la feuille. Sauf que :
est-ce



que
la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub















Avatar
Caroline L.
Re-bonsoir MichDenis,

Oui d'accord, je comprends. Je vais voir ce que je peux faire.

Je te remercie pour tes explications, c'est gentil à toi de prendre le temps
de m'expliquer.

Bonne fin de soirée ou début de nuit !

Caroline




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

Bonjour Caroline,

Si tu dois développer une application valide pour les versions 97 à 2003,
il est plus facile de travailler à partir d'une version

97. Habituellement, si ton code est fonctionnel sous cette version, cela
devrait bien se passer pour les versions récentes.


Cependant, les différences entre les version 97 et 2003 ne sont pas très
grandes ....il te suffira de rouler ton programme sous la

version excel 97 et apporter les quelques changements requis en cas de
pépins. Il y a toujours moyen de trouver des alternatives à

une façon de faire d'une version à l'autre.


Salutations!




"Caroline L." a écrit dans le message de news:


Bonjour MichDenis,

Ta réponse me fait réfléchir et tout cela me fait peur... y a t-il
d'autres

applications qui pourraient poser un problème ?... c'est la question que
je

me pose. Alors :
Y a t-il un bout de code que je pourrais ajouter pour dire au programme
par

exemple :

If version > then utilise les contrôles et applications de la version
10

If version = 9 then utilise les contrôles et applications de la version 9
etc... peut-être reculer jusqu'à la version excel 97

De cette façon, le programme ne plantera pas. Est-ce que tout ceci est
possible ?


Merci et bonne soirée à toi

Caroline

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

Bonjour Caroline,

Cela ne fera pas planter ton programme avec excel 2002 et 2003 mais les
versions antérieures oui, car cette méthode n'est pas

disponible. Tu vas devoir ajouter un test sur la version d'excel dans ta
procédure


If Val(Application.Version) >= 10 Then
'Tu utilises DisableCustomize pour les barres d'outils

Else
With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize
End With
End If


Salutations!


"Caroline L." a écrit dans le message de news:


Bonjour MichDenis,

Bon je suis rassurée pour le DisableCustomize mais je suis maintenant
tourmentée avec
".Protection = msoBarNoCustomize" Je l'utilise de la façon suivante :

Private Sub Workbook_Activate()

'appeler la barre d'outils personnalisée nommée Administration

With Application.CommandBars("Administration")
.Visible = True
.Protection = msoBarNoCustomize

End With
________________

Si une personne a Excel 2003, est-ce que le programme va planter ?


Merci pour tes conseils

Caroline


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

Bonjour Caroline,


DisableCustomize est disponible à partir de Excel 2002. Je te rassure,
cette méthode fonctionne très bien avec exce 2003.


Là où je parlais de bug, c'est avec cette méthode :

With Application.CommandBars("Standard")
.Protection = msoBarNoCustomize
End With

Cette ligne de commande ".Protection = msoBarNoCustomize" Seule n'a
pas



d'effet quant à la possibilité de modifier la barre
d'ouitils.

Ce n'est pas le cas pour les versions plus anciennes !


Salutations!





"Caroline L." a écrit dans le message de news:
%

Re-bonsoir MichDenis,

petite correction à mon dernier post ;

Application.CommandBar.DisableCustomize
est dans mon fichier excel 2002 mais pas dans celui avec excel 2000,
c'est


une autre façon qui est utilisée car le DisableCustomize n'était pas
encore

disponible dans cette version.

voilà.


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

Bonsoir Caroline,

DAns le thisWorkbook de ton classeur, utilise ceci pour protéger tes
feuilles sur lesquelles tu désires intervenir par macro.



Cette façon de faire te permet de travailler dans une feuille
protéger




par
MACRO comme si la feuille n'avait aucune protection. Il
est cependant impossible de modifier quoi que ce soit manuellement.

toto représente le mot de passe .... si besoin.

'---------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.Protect "toto", True, True, True, True
End With
'---------------------

Regarde dans l'aide à propos du 4 ième argument "True" de la méthode
Protect



Salutations!



"Caroline L." a écrit dans le message de
news:





Bonjour !

J'ai une feuille (Feuil1) qui est protégée avec Outils/protéger la
feuille.

J'ai créé un formulaire (userform5) dans lequel l'usager saisi le
nom




de
famille dans un textbox et j'ai inséré une mise en forme
conditionnelle



sur
les cellules de la feuille. Donc, on saisissant le nom de famille,
ce




nom
s'inscrit en V16 et s'il y a un ou plusieurs noms pareilles dans la
feuille,

la mise en forme conditionnelle s'opére sur ces cellules
c'est-à-dire




que
les cellules se colorent en bleu.
Mon GROS PROBLÈME c'est qu'avec la protection de la feuille, mon
userform5


ne fonctionne pas, j'ai toujours une erreur 1004. Lorsque je clique
sur



Débogage, voici la ligne qui est en jaune :
[V16] = Me.TextBox1 (code provenant du userform5). J'ai mis au bas,
tout


mon code du userform5.

___________________
Voici les 3 formule de la mise en forme conditionnelle :
--> pour la plage D9:J22
=ET(STXT(D9;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D26:J39
=ET(STXT(D26;1;3)=STXT($v$16;1;3);$v$16<>"")

--> pour la plage D43:J45
=ET(STXT(D43;1;3)=STXT($v$16;1;3);$v$16<>"")
___________________


J'aimerais bien résoudre ceci. Il est vraiment important que la
protection


de la feuille soit activée. Je pensais donc à une macro qui
"autorise"




l'écriture en V16 malgré la protection de la feuille. Sauf que :
est-ce



que
la mise en forme conditionnelle pourra fonctionner ?


Merci pour vos conseils.
Caroline


Code du userform5
-------------------------------------
Private Sub TextBox1_Change()
[V16] = Me.TextBox1
End Sub


Private Sub userform_Initialize()
Me.TextBox1.Value = Text
End Sub


Private Sub CommandButton1_Click()
'Bouton Fermer

'effacer le nom saisi avant de Fermer le formulaire
TextBox1.Value = ""

'fermer le formulaire
UserForm5.Hide
End Sub