problème sur workbook_open

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mikepers

XLDnaute Occasionnel
Bonsoir à tous, merci pour votre aide.
Pouvez vous me dire pourquoi l'évènement workbook_open ne semble t'il pas apprécier le code :
_____________________________________
Sub workbook_open()

sheets("feuille 1").Select
If Range("A5").Value = "SANS DP" Then
Rows("27:49").Select
Selection.EntireRow.Hiden = True
Else
If Range("A5").Value = "AVEC DP" Then
Rows("27:49").Select
Selection.EntireRow.Hiden = False

End If
End If
End Sub
______________________________________
???????J'ai du mal à saisir, merci si vous pouvez m'aider.
@+
 
Re : problème sur workbook_open

Bonjour,

Pb de syntaxe il me semble

Extrait du club des développeurs

Voici la syntaxe :
If Condition1 Then
'Instructions si la condition est vraie
ElseIf Condition2 Then
'Instructions si la condition est vraie
ElseIf Condition3 Then
'Instructions si la condition est vraie
Else
'Instructions si la condition est fausse
End If


Exemples :
If AgeFrederic > 30 Then
'Instructions si la condition est vraie
msg = "Frédéric a plus de 30 ans"
MsgBox msg
ElseIf AgeFrederic >25 Then
'Instructions si la condition est vraie
msg = "Frédéric a plus de 25 ans"
MsgBox msg
ElseIf AgeFrederic >20 Then
'Instructions si la condition est vraie
msg = "Frédéric a plus de 20 ans"
MsgBox msg
ElseIf AgeFrederic > 15 Then
'Instructions si la condition est vraie
msg = "Frédéric a plus de 15 ans"
MsgBox msg
Else
'Instructions si la condition est fausse
msg = "Frédéric a 15 ans ou moins de 15 ans"
MsgBox msg
End If
 
Re : problème sur workbook_open

Bonsoir,

dans ton code : Mets "HIDDEN" au lieu de "HIDEN"
Sinon ton code peut être comme ceci :
Code:
Sub workbook_open()
sheets("feuille 1").Activate
If Range("A5").Value = "SANS DP" Then
Rows("27:49").EntireRow.Hidden = True
Else
If Range("A5").Value = "AVEC DP" Then
Rows("27:49").EntireRow.Hidden = False
End If
End If
End Sub

A bientôt
 
Re : problème sur workbook_open

merci dan, et les autres !
en fait j'ai mal exprimé ma question, l'évènement dont je parle devrais se situer plutot sur "worksheet_activate", et non sur workbook, car j'ai plusieurs feuilles dans le classeur.
MAis bon, ton code aurrais du fonctionner tout de même. Pour le nom de la feuille, en fait il s'agit de "salle 1", puis"salle 2" etc..
Enfait la condition hidden doit se faire à la sélection de chaque feuille, mais ca marche pas.
______________________
private sub worksheet_activate()

' et ici le code -
end sub
_______________________
et ceci sur le code du worksheet; qu'en pense tu ?
 
Re : problème sur workbook_open

Code:
Sheets("feuil1").Select
    Select Case Range("A5")
        Case "SANS DP"
            Rows("27:49").EntireRow.Hidden = True
        Case "AVEC DP"
            Rows("27:49").EntireRow.Hidden = False
        Case Else
            '....
    End Select
 
Dernière édition:
Re : problème sur workbook_open

merci kiki !
bien vu le sélect case.
Mais, j'ai placé ton code dans le code de la feuille ( "salle 1" ). Rien ne se passe à l'ouverture de workbook, mais si je sélectionne une autre feuille, lorsque je reviens sur "salle 1", même message d'erreur. Visiblement un souci avec la classe hidden sur le range....
 
Re : problème sur workbook_open

Salut à toutes/tous
dans le module ThisWorkBook
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Salle 1" or Sh.Name = "Salle 2" Then
If Range("A5").Value = "SANS DP" Then
Rows("27:49").Hidden = True
Else
Rows("27:49").Hidden = False
End If
End If
End Sub
je préfère utiliser une fonction de test simple qui permet de lever les ambiguïté : dans ton cas, comment doivent être les lignes 27:49 si la cellule A5 est vide ?
A+
 
Re : problème sur workbook_open

re,

Kiki29, tn code fait exactement la même chose qu'avec un IF. Donc le pb n'est pas là.

Mikepers, quelle est ta version d'excel et peux-t-on voir le code complet.
Où se trouve le RANGE("A5") ? dans chaque feuille ou dans une seule feuille ?

A te lire
 
Re : problème sur workbook_open

MERCI( je teste ton code...)
pour répondre à ta question, la cellule A5 ne peut être vide car elle contient la formule :

=SI(B27="";"SANS DP";"AVEC DP")

j'espère que le fait qu'il il ai une formule dans cette cellule n'est pas la source du problème !!!

merci.
 
Re : problème sur workbook_open

dézolé ( message croisé )...
__________________________________
version 2002 - sp2
____________________
le code pour l'instant - mis dans le code ("salle 1");
Private Sub worksheet_activate()
Select Case Range("A5")
Case "SANS DP"
Rows("27:49").EntireRow.Hidden = True
Case "AVEC DP"
Rows("27:49").EntireRow.Hidden = False

End Select
End Sub

ps: je n'ai pas encore testé le dernier code proposé ( vous allez plus vite que moi !!!!)
merci beaucoup.
 
Re : problème sur workbook_open

Re,

avec ce code j'ai aucun souci :
Code:
Private Sub Worksheet_Activate()
If Range("A5").Value = "SANS DP" Then
Rows("27:49").EntireRow.Hidden = True
Else
If Range("A5").Value = "AVEC DP" Then
Rows("27:49").EntireRow.Hidden = False
End If
End If
End Sub
Code à placer en VBA dans chaque feuille où tu dois lire la cellule A5.

A te lire
 
Re : problème sur workbook_open

bon écoute Dan, on va laisser tomber, visiblement je doit avoir un autre module ou autre chose qui bogue.
J'ai fait un copier-coller de ton code, et j'ai toujours l'erreur suivante lorsque je sélectionne la feuille "salle 1", là ou se trouve le code.
_________________________________
"erreur d'exécution 1004 : impossible de définir la propriété Hidden de la classe range."

IL faut que je revoie tout ca, il y a un loup sur mon fichier, si tu me dis que tu n'a pas de souci de ton côté.

en tout LES CAS, merci ^pour tous vos post, j'adore ce forum !!!

bien à vous.
 
Re : problème sur workbook_open

bon, pour le fun :
il semble que j'ai trouvé.
En fait le code fait référence à un cellule qui contient une formule :
=SI (B27="";"SANS DP";"AVEC DP")

visiblement ça perturbe le code.
Tout bêtement, j'ai fait référence directement à la cellule B27, j'ai donc le nouveau code :
_______________________________________________
If range ("B27").Value= "" then
Rows("27:49").EntireRow.Hidden = true
Else
If range("B27").Value <> "" then
Rows("27:49").EntireRow.Hidden = false
End if
End if
End sub
_______________________________________________
Ca marche !!!!!!!!
damned, 1000 fois merci à vous tous.
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
176
Réponses
8
Affichages
390
Réponses
15
Affichages
784
Réponses
9
Affichages
385
Retour