Macro cache au fur et à mesure

Résolu/Fermé
Claudine - 24 janv. 2012 à 12:05
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 - 24 févr. 2012 à 14:58
Bonjour,

J'ai fait une macro pour cacher mes onglets qui s'appel SF02 N° 1 SF02 N° 1A etc jusqu'au n° 25 par rapport aux informations que je mets sur ma feuille SF03

Si je mets 1 l'onglet reste si 0 il s'enlève mais ma macro fonctionne si je clic sur ma macro à la fin.

Je voudrais améliorer ma macro en disant que dès que je mes 0 l'onglet correspondant se cache sans attendre la fin.

Voic ma macro :

Sub Cache_Onglets()
For x = 1 To Sheets.Count
If Left(Sheets(x).Name, 4) = "SF02" Then
Sheets(x).Activate
If Range("E12").Value = 0 And Range("E12").Value <> "" Then
'Cache Onglet
Sheets(x).Visible = False
End If
End If
Next x
End Sub

Merci de votre aide que vous voudrez bien m'apporter.

Bien cordialement

A voir également:

17 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
24 janv. 2012 à 13:52
Bonjour,

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 Then Exit Sub 'sortie si plus d'une cellule selectionnee

If Target.Column <> 5 And Target.Row <> 12 Then 'cellule E12 selectionnee ??
'pas E12
Else
With Sheets(Sh.Name)
If Left(.Name, 4) = "SF02" And .Range("E12").Value = 0 And .Range("E12").Value <> "" Then
.Visible = False
End If
End With
End If

End Sub

Vous copier ce code dans ThisWorkbook du VBA

Bonne suite

PS: vous savez comment faire pour reafficher les onglets caches!...
1
Pour reafficher les onglets j'ai fait cette macro est-elle toujours valable avec votre macro.

Sub affOnglet()
Dim w As Worksheet
For Each w In Worksheets
If Left(w.Name, 4) = "SF02" Then
w.Visible = True
End If
Next w
End Sub

Merci de votre aide

Je viens d'essayer votre macro et la première ligne se met en rouge il ne excel ne veut pas du "sub"

Encore merci de votre aide
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
24 janv. 2012 à 14:20
Re
Macro toujours valable.

Bonne suite
0
Je viens d'essayer votre macro et la première ligne se met en rouge il ne excel ne veut pas du "sub"

Encore merci de votre aide
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
24 janv. 2012 à 16:53
Re,
Montrez ce que vous avez comme code
0
comme code j'ai erreur d'execusion '424'

Sub Cache_Onglets()
If Target.Column <> 5 And Target.Row <> 12 Then 'cellule E12 selectionnee ??
'pas E12
Else
With Sheets(Sh.Name)
If Left(.Name, 4) = "SF02" And .Range("E12").Value = 0 And .Range("E12").Value <> "" Then
.Visible = False
End If
End With
End If

End Sub

La ligne If traget. se met en surbrillance
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
23 févr. 2012 à 14:35
Bonjour,

il ne faut pas récupérer le code de f894009 et le mettre dans votre macro, mais bien de copier ce qu'il a écrit.

La macro a utiliser est simplement celle de f894009, ni plus, ni moins.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je suis un peut blonde mais je n'est pas mis le code f894009 dans ma macro

Voici exacement se que j'ai mis :
Sub Cache_Onglets()
If Target.Column <> 5 And Target.Row <> 12 Then 'cellule E12 selectionnee ??
'pas E12
Else
With Sheets(Sh.Name)
If Left(.Name, 4) = "SF02" And .Range("E12").Value = 0 And .Range("E12").Value <> "" Then
.Visible = False
End If
End With
End If

End Sub

Dite moi se que je fais mal ou se que je dois faire ou comment procéder.

Merci d'avance
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
23 févr. 2012 à 14:54
Ce qu'il faut faire :

1°) ouvrir VBA (Alt+F11)
2°) Dans la colonne de gauche, double-cliquer sur 'This Workbook'
3°) Copier sans rien changer la macro de f894009
4°) enregistrer

Le principe de sa macro est qu'il s'agit d'une macro événementielle, qui se déclenche lors d'une action spécifique (ici la modification d'une cellule). Ce qui la différencie de vos macro, c'est que pouvoir les lancer, vous devez cliquer sur un bouton, ou les lancer manuellement. Les macro événementielles se déclenche automatiquement.
0
Pardon mais les macro ne sont pas simple pour moi et j'ai des laccunes

Alors voilà ou j'en suis :
1 - quand je fais Alt+F11 je tombe sur ma première macro
2 - je n'ai pas de colonne de gauche pour double clic sur 'This Workbook'

j'ai en haut de l'écran ma barre d'outil

en dessous un à gauche un déroulant ou il y a d'écrit général et à droite un déroulant ou il y a d'écrit cache_onglets
puis la macro suivante :

Sub Cache_Onglets()
For x = 1 To Sheets.Count
If Left(Sheets(x).Name, 4) = "SF02" Then
Sheets(x).Activate
If Range("E12").Value = 0 And Range("E12").Value <> "" Then
'Cache Onglet
Sheets(x).Visible = False
End If
End If
Next x
End Sub

Merci de me guider encore une fois
0
J'ai trouver ma colonne sur la gauche et j'ai clic double clic sur This Workbook, j'ai copier la macro, j'ai enregistrer mais elle ne fonctionne pas je pense qu'il me manque une petite chose par exemple à la place de mettre :

Sub Cache onglets() on doit mettre autre chose et à la fin de la macro à la place de mettre End Sub on devrait aussi mettre autre chose.

Mais ma question est Quoi ?
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié par f894009 le 23/02/2012 à 16:18
Bonjour Claudine

Vous devez mettre le code que je vous ai fourni.
Votre macro Sub Cache onglets() ne sert plus.

A+
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 23/02/2012 à 16:10
Salut,

Il est fortement déconseillé d'ouvrir plusieurs discussions sur le même sujet qui n'a pour effet que de disperser les intervenants alors que des discussions restent en souffrances.
Des solutions t'on été données sur cette discussion qui on été remerciées par des votes négatifs alors que le sujet à été mis en statut résolu drôle façon de remercier les intervenants qui donnent sans compter
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Pardon pour Mike, mais comme nous somme a 2 sur mon log ma collègue m'avait dit que ta solution était OK mais je n'ai pu l'appliquer et comme il y a quelque temps j'avais commencé a faire les démarches j'ai repris le relais et je lui est demandé de ne plus prendre mon log afin qu'il n'y est pas de soucis d'interprétation.

Pour répondre à f0894009 :

Je voulais que quand je mets un 1 dans ma cellule E12 l'onglet reste et si je mets un 0 l'onglet se cache.

Dans l'attente de votre aide
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
23 févr. 2012 à 16:33
Re,

Ouvrir VBA par Alt+F11
double click sur ThisWorkbook
Copiez le code ci-dessous

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 Then Exit Sub 'sortie si plus d'une cellule selectionnee

If Target.Column <> 5 And Target.Row <> 12 Then 'cellule E12 selectionnee ??
'pas E12
Else
With Sheets(Sh.Name)
If Left(.Name, 4) = "SF02" And .Range("E12").Value = 0 And .Range("E12").Value <> "" Then
.Visible = False
End If
End With
End If

End Sub

A votre ecoute pour toutes explications
0
Encore moi,

Et pardon pour mon ignorance sur le sujet. Je viens de faire ce que vous me dites puis j'ai enregistré mais rien ne se passe. Et quand je fais outil macro elle n'apparaît pas dans la liste des macros, et quand je fait Alt F11 à l'écrant apparraît ma première macro comment dois-je faire car je pense que je suis vraiment bête et excuser moi encore une fois.
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
Modifié par chossette9 le 23/02/2012 à 16:47
e viens de faire ce que vous me dites puis j'ai enregistré mais rien ne se passe
Avez -vous essayé ensuite de modifier une cellule et de voir si l'onglet était caché ?
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
23 févr. 2012 à 16:50
Re,
Pas de soucis. Votre EXCEL: 2003 ou 2007-2010 pour vous mettre a dispo un exemple?

A+
0
oui, mais l'onglet ne se cache pas
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 23/02/2012 à 16:57
Re,

En E12 tu saisis 0 tous les onglets se cachent, ensuite 2 affiche la feuil2, 3 la feuil3 etc ...
En E12 le numéro de feuille peut être remplacé par son nom

https://www.cjoint.com/?BBxq0MLRKsH
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
23 févr. 2012 à 16:59
Bonjour Mike-31
Il semble que la demande a evolue depuis la proposition que j'ai faite le 24 janvier. Je vous laisse la main.
Bye
0
Bonsoir,

Je vous joint mon fichier

Dans l'onglet SF03 je mets un 1 et dans l'onglet SF02 il se met tout seul et je veux quand il y a un 1 dans la cellule E12 que l'onglet reste et quand il y a 0 l'onglet se cache

http://cjoint.com/?3BxroF3YP1J

Merci de votre aide
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
Modifié par Mike-31 le 23/02/2012 à 18:30
Re,

C'est plus parlant avec ton fichier, pour commencer sur ta feuille SF03 dans quelle cellule veux tu saisir 1 ?

Si je comprends bien, en mettant 1 dans ta cellule à définir, feuille SF03 toutes les feuilles s'affichent ou simplement les SF02 ?

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
23 févr. 2012 à 20:58
J'ai décortiqué ton fichier, je modifie la macro et te retourne le fichier
A+
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
23 févr. 2012 à 23:16
Re,

récupère ton fichier sur ce lien

http://dl.free.fr/getfile.pl?file=/i4xgyNIK
0
Merci merci Merci encore à vous tous qui vous êtes donnés beaucoup de mal avec ma macro.
Merci encore Mike-31 pour ta précieuse aide car vraiment je n'y serai pas arrivée toute seul.

Encore merci.
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
24 févr. 2012 à 14:58
Re,

Ce n'est rien, et il serait possible d'améliorer le code. J'ai préféré écrire 4 lignes par feuille pour te permettre de le comprendre et surtout de le reproduire. J'ai supprimé des codes inutiles par contre tu as deux Modules avec des codes dont 1 inutile que tu peux supprimer.
Si tu as besoin n'hésite pas de revenir sur le forum et évite d'ouvrir plusieurs discussions similaires
0