Bonjour,
J’ai un souci avec le fichier ci-joint.
Selon la valeur de la cellule R1 de la feuille « Impression », la ligne de code Select Case Range("R1") fonctionne parfaitement.
J’ai tenté d’effectuer un second Select Case Range sur la cellule ("R4"), mais celui-ci ne fonctionne pas.
Pour Select Case Range("R1"), la valeur est modifiée par l’intermédiaire d’une autre feuille, donc il y a obligatoirement l’activation de la feuille « Impression » entre-deux.
Pour la cellule R4, la valeur est modifiée par l’intermédiaire de l’UserForm ; je présume donc que le problème vient de là, c'est comme si la feuille "Impression" n'était pas activée à ce moment-là. Je me suis alors demandé s’il fallait tout d’abord sélectionner une feuille quelconque – par le code Private Sub CommandButton2_Click - avant de revenir sur la feuille « Impression », afin de l’activer – mais rien n’y fait ; les lignes 45:47 et/ou 63:65 qui devraient s'ouvrir ou se fermer selon les cas ne bougent pas (par contre ces lignes s'ouvrent ou se ferment correctement si l'on sélectionne manuellement à une feuille quelconque avant de revenir à la feuille "Impression").
Pouvez-vous m’aider à résoudre ce problème ?
Code VBA : Un code Select Case ... ne démarre pas 
Code VBA : Un code Select Case ... ne démarre pas
- Fichiers joints
-
Rachats Express, Forum 10.12.zip- (75.6 Kio) Téléchargé 29 fois
Yvouille
-

Yvouille - Membre impliqué
- Messages: 2053
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Re: Code VBA : Un code Select Case ... ne démarre pas
Bonsoir Yvouille
pour vérifier si le déclenchement de la macro est effective, place en début de macro worksheet change le mot stop
chez moi elle passe mais le code de masquage n'est pas le bon
exemple
remplace
par
pour vérifier si le déclenchement de la macro est effective, place en début de macro worksheet change le mot stop
chez moi elle passe mais le code de masquage n'est pas le bon
exemple
remplace
- Code: Tout sélectionner
Rows("31:32").Hidden = True
par
- Code: Tout sélectionner
Rows("31:32").EntireRow.Hidden = True
Cordialement
Bob
Bob
- BOB71AU
- Membre fidèle
- Messages: 228
- Inscription: 02 Jan 2010, 00:26
- Version Excel: 2003
Re: Code VBA : Un code Select Case ... ne démarre pas
Salut Bob,
Merci pour ta réponse.
J'ai essayé de placer Stop en début de macro (c'est en fait comme un point d'arrêt, non ?) et le code se bloque effectivement à cet endroi là.
J'ai aussi essayé de remplacer les parties de code que tu m'as dites, mais ça ne change rien ; en permuttant les options "oui-non" dans la UserForm, les lignes 45:47 et 63:65 ne sont pas modifiées tel que désiré lorsque je clique OK (en tout cas si je reviens en arrière dans le formulaire par le bouton "Retour sur le masque de saisie").
Par contre que j'utilise EntireRow.Hidden ou uniquement .Hidden, ces lignes se masquent ou apparaissent correctement si je change manuellement de feuille.
Voici mon fichier modifié :
Merci pour ta réponse.
J'ai essayé de placer Stop en début de macro (c'est en fait comme un point d'arrêt, non ?) et le code se bloque effectivement à cet endroi là.
J'ai aussi essayé de remplacer les parties de code que tu m'as dites, mais ça ne change rien ; en permuttant les options "oui-non" dans la UserForm, les lignes 45:47 et 63:65 ne sont pas modifiées tel que désiré lorsque je clique OK (en tout cas si je reviens en arrière dans le formulaire par le bouton "Retour sur le masque de saisie").
Par contre que j'utilise EntireRow.Hidden ou uniquement .Hidden, ces lignes se masquent ou apparaissent correctement si je change manuellement de feuille.
Voici mon fichier modifié :
- Fichiers joints
-
Rachats Express, Forum 10.12_V2.zip- (77.01 Kio) Téléchargé 14 fois
Yvouille
-

Yvouille - Membre impliqué
- Messages: 2053
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Re: Code VBA : Un code Select Case ... ne démarre pas
Bonjour,
C'est ta structure de code qui n'est pas bonne. Je parle des ":"
Essaie comme ceci
ou comme ceci :
Amicalement
C'est ta structure de code qui n'est pas bonne. Je parle des ":"
Essaie comme ceci
- Code: Tout sélectionner
Select Case Range("R4")
Case Is = 1
Rows("45:47").EntireRow.Hidden = False
Rows("63:65").EntireRow.Hidden = True
Case Is = 2
Rows("45:47").EntireRow.Hidden = True
Rows("63:65").EntireRow.Hidden = False
End Select
ou comme ceci :
- Code: Tout sélectionner
Select Case Range("R4")
Case Is = 1: Rows("45:47").EntireRow.Hidden = False: Rows("63:65").EntireRow.Hidden = True
Case Is = 2: Rows("45:47").EntireRow.Hidden = True: Rows("63:65").EntireRow.Hidden = False
End Select
Amicalement
@+ Dan 
-

Dan - Modérateur
- Messages: 2395
- Inscription: 27 Avr 2007, 15:31
- Localisation: Liège - Belgique
- Version Excel: 2010, 2003, 2000, Mac 2004
Re: Code VBA : Un code Select Case ... ne démarre pas
Salut Dan,
Merci pour ta réponse. Malheureusement, c'est toujours pareil, même avec tes deux nouveaux codes ; si je passe au formulaire depuis la feuille "Impression", par le bouton "Retour sur le masque de saisie" et que je modifie les options "Oui-non" puis que je clique OK, les lignes 45:47 et 63:65 ne bougent pas. Par contre si je passe manuellement à une autre feuille et que je reviens sur la feuille "Impression", les 4 variantes de ce code fonctionnent pareillement (et correctement).
Mon fichier avec tes nouveaux codes :
A te relire.
Merci pour ta réponse. Malheureusement, c'est toujours pareil, même avec tes deux nouveaux codes ; si je passe au formulaire depuis la feuille "Impression", par le bouton "Retour sur le masque de saisie" et que je modifie les options "Oui-non" puis que je clique OK, les lignes 45:47 et 63:65 ne bougent pas. Par contre si je passe manuellement à une autre feuille et que je reviens sur la feuille "Impression", les 4 variantes de ce code fonctionnent pareillement (et correctement).
Mon fichier avec tes nouveaux codes :
A te relire.
Yvouille
-

Yvouille - Membre impliqué
- Messages: 2053
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Re: Code VBA : Un code Select Case ... ne démarre pas
Re,
Ok déso.
Essaie en modifiant cette macro dans ton USF
Maintenant je pense que le code qui cache ou monre les lignes aurait mieux sa place dans un module. Il pourrait être appelé en mettant une instruction CALL à la place du SELECT de la feuille Impression en fin de code.
Dis moi
Ok déso.
Essaie en modifiant cette macro dans ton USF
- Code: Tout sélectionner
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Sheets("Rachat Express").Select
With Sheets("Impression")
.Unprotect "738305"
.Range("F9") = ComboBoxTitre
.Range("R3") = ComboBox1
.Range("F10") = TextBox7.Value
.Range("F11") = TextBox6.Value
.Range("F12") = TextBox3.Value
.Range("F13") = TextBox2.Value
If OptionButton1.Value = True Then
.Range("R4") = 1
Else
.Range("R4") = 2
End If
.Select
.Protect "738305"
End With
Unload Me
End Sub
Maintenant je pense que le code qui cache ou monre les lignes aurait mieux sa place dans un module. Il pourrait être appelé en mettant une instruction CALL à la place du SELECT de la feuille Impression en fin de code.
Dis moi
@+ Dan 
-

Dan - Modérateur
- Messages: 2395
- Inscription: 27 Avr 2007, 15:31
- Localisation: Liège - Belgique
- Version Excel: 2010, 2003, 2000, Mac 2004
Re: Code VBA : Un code Select Case ... ne démarre pas
Wow, super, ça fonctionne à merveille ! Et qui plus est, avec n'importe quelle version du code Private Sub Worksheet_Activate
Merci infiniment pour ton aide, Dan.
En ce qui concerne ta dernière proposition de remplacer le SELECT par un CALL, je n'ai pas compris ce que ça améliorerait réellement, puisque tout fonctionne à souhait. Cependant, si tu penses vraiment que ça peut être utile, il faudrait m'expliquer mieux ce que je devrais faire.
Bonnes salutations.
Merci infiniment pour ton aide, Dan.
En ce qui concerne ta dernière proposition de remplacer le SELECT par un CALL, je n'ai pas compris ce que ça améliorerait réellement, puisque tout fonctionne à souhait. Cependant, si tu penses vraiment que ça peut être utile, il faudrait m'expliquer mieux ce que je devrais faire.
Bonnes salutations.
Yvouille
-

Yvouille - Membre impliqué
- Messages: 2053
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Re: Code VBA : Un code Select Case ... ne démarre pas
Re,
Je trouve que les macros qui fonctionnent sur l'activation d'une feuille sont à utiliser avec prudence. C'est toujours sensible ce truc là. Un simple appel par Activate ou Select, déclenche le code. C'était un peu cela le souci que tu as eu.
Donc plutôt que de mettre ton code dans la feuille Impression, je l'aurais remplacé par un code placé dans un module.
Exemple :
Ensuite dans ton USF, code Private Sub CommandButton2_Click():
- tu remplaces le ".SELECT" qui se trouve juste avant --> .Protect "738305" par ceci : --> CALL miseenforme
- tu supprimes Sheets("Rachat Express").Select
Dans ta Sub miseenforme, tu prévois bien de sélectionner la feuille Impression donc ajout d'une instruction SELECT.
Amicalement
Je trouve que les macros qui fonctionnent sur l'activation d'une feuille sont à utiliser avec prudence. C'est toujours sensible ce truc là. Un simple appel par Activate ou Select, déclenche le code. C'était un peu cela le souci que tu as eu.
Donc plutôt que de mettre ton code dans la feuille Impression, je l'aurais remplacé par un code placé dans un module.
Exemple :
- Code: Tout sélectionner
Sub miseenforme()
ici--> les instructions qui se trouvent dans ta feuille Impression (saut Private.... bien sûr)
End Sub
Ensuite dans ton USF, code Private Sub CommandButton2_Click():
- tu remplaces le ".SELECT" qui se trouve juste avant --> .Protect "738305" par ceci : --> CALL miseenforme
- tu supprimes Sheets("Rachat Express").Select
Dans ta Sub miseenforme, tu prévois bien de sélectionner la feuille Impression donc ajout d'une instruction SELECT.
Amicalement
@+ Dan 
-

Dan - Modérateur
- Messages: 2395
- Inscription: 27 Avr 2007, 15:31
- Localisation: Liège - Belgique
- Version Excel: 2010, 2003, 2000, Mac 2004
Re: Code VBA : Un code Select Case ... ne démarre pas
Dan,
En modifiant les codes tel que tu me l'indiques, la première série de SELECT CASE (lignes 31:32, 35:36, etc.) ne fonctionne plus en changeant simplement de feuille ; pour cette série, c'est effectivement une modification sur la feuille "Rachat Express" qui influence l'ouverture ou la fermeture des lignes indiquées ci-dessus, sans passer par l'intermédiaire du USF (et je ne voudrais pas obliger les utilisateurs à devoir passer par le USF dans ce cas-là). Je crois donc que je vais plutôt garder le code qui fonctionnait selon mon dernier message.
Encore une fois merci pour tout le travail que tu as réalisé pour moi.
Voici mes derniers essais
Bonne fin de journée.
En modifiant les codes tel que tu me l'indiques, la première série de SELECT CASE (lignes 31:32, 35:36, etc.) ne fonctionne plus en changeant simplement de feuille ; pour cette série, c'est effectivement une modification sur la feuille "Rachat Express" qui influence l'ouverture ou la fermeture des lignes indiquées ci-dessus, sans passer par l'intermédiaire du USF (et je ne voudrais pas obliger les utilisateurs à devoir passer par le USF dans ce cas-là). Je crois donc que je vais plutôt garder le code qui fonctionnait selon mon dernier message.
Encore une fois merci pour tout le travail que tu as réalisé pour moi.
Voici mes derniers essais
Bonne fin de journée.
Yvouille
-

Yvouille - Membre impliqué
- Messages: 2053
- Inscription: 06 Avr 2007, 07:03
- Localisation: CH - Valais de cœur
- Version Excel: 2003, 2007, 2010 All.
Re: Code VBA : Un code Select Case ... ne démarre pas
re,
Effectivement si tu veux conserver cette fonctionnalité, alors le mieux est de conserver la macro dans ta feuille Impression.
Une variante que tu peux aussi faire, c'est mettre le CALL misenforme dans la feuille Impression et mettre les instructions de la feuille Impression dans un module. De cette manière tu ne conserves qu'un minimum de code dans ta feuille et le reste se trouve dans un module. Là tu conserves toutes les fonctionnalités que tu souhaites.
Bien amicalement
En modifiant les codes tel que tu me l'indiques, la première série de SELECT CASE (lignes 31:32, 35:36, etc.) ne fonctionne plus en changeant simplement de feuille ;
Effectivement si tu veux conserver cette fonctionnalité, alors le mieux est de conserver la macro dans ta feuille Impression.
Une variante que tu peux aussi faire, c'est mettre le CALL misenforme dans la feuille Impression et mettre les instructions de la feuille Impression dans un module. De cette manière tu ne conserves qu'un minimum de code dans ta feuille et le reste se trouve dans un module. Là tu conserves toutes les fonctionnalités que tu souhaites.
Bien amicalement
@+ Dan 
-

Dan - Modérateur
- Messages: 2395
- Inscription: 27 Avr 2007, 15:31
- Localisation: Liège - Belgique
- Version Excel: 2010, 2003, 2000, Mac 2004
11 messages
• Page 1 sur 2 • 1, 2
-
- Sujets similaires
- Réponses
- Vus
- Dernier message
-
- select case imbriqué qui ne fonctionne pas
par sylv1 » 10 Mai 2012, 13:37 - 2 Réponses
- 34 Vus
- Dernier message par sylv1

10 Mai 2012, 18:52
- select case imbriqué qui ne fonctionne pas
-
- VBA création liste déroulante pour utiliser select case
par ReuK » 19 Sep 2011, 20:45 - 0 Réponses
- 143 Vus
- Dernier message par ReuK

19 Sep 2011, 20:45
- VBA création liste déroulante pour utiliser select case
-
- Une macro ne démarre pas au bon moment
par Yvouille » 13 Mars 2009, 19:16 - 3 Réponses
- 268 Vus
- Dernier message par Yvouille

13 Mars 2009, 21:50
- Une macro ne démarre pas au bon moment
-
- Probléme Select Case multiples
par TcheTche » 06 Jan 2011, 10:56 - 1 Réponses
- 143 Vus
- Dernier message par dubois

06 Jan 2011, 12:40
- Probléme Select Case multiples
-
- Select case avec des contrôles
par Joshua » 05 Oct 2011, 12:38 - 4 Réponses
- 84 Vus
- Dernier message par Joshua

05 Oct 2011, 13:54
- Select case avec des contrôles
-
- Copier/Coller une colonne dans un Select Case
par shenmicke » 10 Août 2011, 15:31
- 2 Réponses
- 121 Vus
- Dernier message par shenmicke

10 Août 2011, 16:39
- Copier/Coller une colonne dans un Select Case
Utilisateurs en ligne
Utilisateurs parcourant ce forum: Bing [Bot], Exabot [Bot], Google [Bot], Google Adsense [Bot] et 18 invités