XL 2016 Problème de Or et and

Phillip

XLDnaute Occasionnel
Bonjour,

J'ai un fichier dont je veux masquer tous les onglets sauf 2. Mon OR ne fonctionne pas, et ça ne fonctionne pas avec un AND...

VB:
Sub masquer()
Dim VFeuille As Worksheet

Vsemaine = DatePart("ww", Date)
VNomS = "S" & Vsemaine & "-2020"

For Each VFeuille In ThisWorkbook.Worksheets
    If VFeuille.Name <> VNomS Or VFeuille.Name <> "Statistiques" Then

    VFeuille.Visible = xlSheetHidden
    End If
    
Next


End Sub

Quelle est l'erreur de syntaxe ?

merci

Cordialement
 

Pièces jointes

  • masquerS.xlsm
    21 KB · Affichages: 46

TooFatBoy

XLDnaute Barbatruc
Je ne disais pas que ta solution n'était pas exacte. ;)

Je disais simplement qu'eriiiic avait raison quand il disait qu'une partie de ta réponse dans le message #10 était fausse.

C'est ce passage qui est faux, et plus précisément la partie en gras :
vba interprete avec or la seconde condition comme l'annulation de la première parce que avec "OU" c'est ou l'un ou l'autre mais pas les deux
Il fallait donc rectifier pour ne pas induire Phillip en erreur.
That's all ;)

Bonne journée
 

eriiic

XLDnaute Barbatruc
Bonjour,

Relis toi patrick, tu avais écrit " avec "OU" c'est ou l'un ou l'autre mais pas les deux :)
Ca, c''est la table de vérité du XOR
C'est ce que j'ai voulu corriger et jamais je n'ai dit qu'il fallait l'utiliser ici.
eric

Ah, merci Marcel, je n'avais pas vu le dernier post :)

EDIT : je remet ma question au demandeur, je crains qu'il ne la voit plus :

tu ne peux pas masquer toutes les feuilles.
Est-ce que ça ne serait pas la dernière visible que tu cherches à masquer ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Un peu d'autopromotion
(Faut relancer le pays, parait-il)
Une resucée de ce que j'avais précédemment proposé dans le fil.
VB:
Sub Vivons_Cachés_Vivons_Heureux_Bis()
Dim ws As Worksheet, Vsemaine$, VNomS$
Vsemaine = DatePart("ww", Date)
VNomS = "S" & Vsemaine & "-" & Year(Date) & ",Statistiques"
For Each ws In Worksheets
If InStr(VNomS, ws.Name) = 0 Then
ws.Visible = xlSheetHidden
End If
Next
End Sub
=>Phillip
Ca fonctionne dans la vraie vie ou pas?
 

Staple1600

XLDnaute Barbatruc
Re

=>patricktoulon
[à emboucaneur, emboucaneur et demi ;)]
Préambule: Je suis maitre chez moi! (enfin dans mes Cellules)
1) Agenda, planning et cie, y a belle lurette que c'est dans le Cloud
(Il y l'embarras du choix)
2) Si j'étais moi et que je me laissais aller à confier à Excel des "choses sérieuses", je serai suffisamment "aware" pour que mon classeur ne contienne que des feuilles nommées selon mon cahier des charges.
3) Et si vraiment, j'étais moi, je me contenterai sans doute de 2 feuilles:
• feuille 1 : mes données
• feuille 2 : un TCD (qui pilote le tout)
[/à emboucaneur, emboucaneur et demi ;)]
 

Phillip

XLDnaute Occasionnel
Bonjour,

Je UP ce message, car vous allez rire ou pas. Moi, je ne ris pas !! J'ai suivi les conseils de Patricktoulon, et au lieu de "copier" l'onglet, je fais un currentregion, et je copie-colle les données dans une nouvelle feuille de mon fichier cible pour éviter les problèmes de requêtes en Anglais ou je ne sais quoi.

Eh bien, devinez quoi, j'ai toujours le même problème, mon premier onglet que je veux cacher a le nom "Sheet1"....

En l'écrivant, je viens d'avoir une illumination. J'ai fait un copier coller de mon dernier fichier, mais les semaines précédentes, je faisais un copier de mon onglet ! Donc je dois encore trainer des onglets avec des carabistouilles en Anglais, non ?

Merci

Cordialement

PS : Je vais donc "commenter" ma partie qui cache mes onglets et repartirai sur des bases saines en janvier !
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 110
Membres
103 121
dernier inscrit
SophieS