Masquage de lignes sur autre feuille...

Absinth

XLDnaute Junior
Bonjour bonjour,

Voila, j'ai une macro qui s'active en cliquant sur un bouton.

Dans cette macro, j'ai, entre autre, un filtre qui masque les lignes selon:

une case de ma feuille PRINCIPALE me donne une valeur (O2)
la macro sélectionne la feuille correspondant à une valeur (C10) et sur cette feuille dont le nom est la valeur C10, elle masque les lignes si la valeur de la colonne I n'est pas O2... Mais ca ne marche pas, j'arrive pas à identifier l'erreur... Voici la macro:

Code:
 Sheets(Sheets("PRINCIPAL").Range("C10").Value).Select
    Dim c As Range
    For Each c In Range("I1:I" & Range("I500").End(3).Row)
    c.Rows.Hidden = c.Offset(, 1) = Sheets("PRINCIPAL").Range("O2").Value
    Next c

    
    Sheets("PRINCIPAL").Activate

Si quelqu'un sait me touver l'erreur...
 

Jelf

XLDnaute Occasionnel
Re : Masquage de lignes sur autre feuille...

Bonjour le forum, bonjour Absinth.

Je pense que ton début de lacro n'est pas correct, pour le reste je ne sais pas;

Code:
Sheets nomfeuil As String
nomfeuil = Sheets ("PRINCIPAL").Range("C10")
Sheets (nomfeuil).Select


Fais un essai et tiens nous au courant.

Amicalement.

Jelf
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Masquage de lignes sur autre feuille...

Bonjour

Petite question : où se trouve ton code ?
Dans un module ou sur le code d'une feuille ?

Si c'est dans le code d'une feuille tu ne peux pas sélectionner une autre feuille il faut mettre ton code dans un module
 

Luki

XLDnaute Accro
Re : Masquage de lignes sur autre feuille...

Bnjour Absinth, Salut Pascal

Tu peux essayer ceci :

Code:
Sheets(Sheets("PRINCIPAL").Range("C10").Value).Activate
    Dim c As Range
    For Each c In Range("I1:I" & Range("I500").End(3).Row)
    If c.Value <> Sheets("PRINCIPAL").Range("O2").Value Then c.Rows.Hidden = True
    Next c

    
    Sheets("PRINCIPAL").Activate
A te lire
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Masquage de lignes sur autre feuille...

Re

essaies

Code:
Sub toto()
Dim x  As Integer
Dim mafeuille As String
mafeuille = Sheets("PRINCIPAL").Range("C10")
maligne = Sheets(mafeuille).Range("I65536").End(xlUp).Row

For x = maligne To 1 Step -1
    If Sheets(mafeuille).Range("I" & x) <> Sheets("PRINCIPAL").Range("O2") Then Sheets(mafeuille).Rows(x).Hidden = True
Next
End Sub
 

Absinth

XLDnaute Junior
Re : Masquage de lignes sur autre feuille...

Ah!!!

On s'approche, sauf qu'avant elle faisait rien, maintenant elle masque tout :D

Hem... plutot que de jouer avec un <>, un "plus grand que" serait plus utile dans mon cas (la valeur de O2 est un chiffre) le ">" marche en VBA?
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Masquage de lignes sur autre feuille...

re

essaies alors

Code:
Sub toto()
Dim x  As Integer
Dim mafeuille As String
mafeuille = Sheets("PRINCIPAL").Range("C10")
maligne = Sheets(mafeuille).Range("I65536").End(xlUp).Row

For x = maligne To 1 Step -1
    If Sheets(mafeuille).Range("I" & x) > Sheets("PRINCIPAL").Range("O2") Then Sheets(mafeuille).Rows(x).Hidden = True
Next
End Sub
 

Absinth

XLDnaute Junior
Re : Masquage de lignes sur autre feuille...

Toujours pas....
Bon, chngeons de technique...

Peut-etre que je devrait faire une macro sur chaque feuille qui va automatiquement masquer les lignes selon une valeur...

Dans ce cas, il faudrait:

-des qu'on touche: réafficher tout,
-remasquer selon la nouvelle valeur (disposée dans une case)

C'est faisable plus facilement?
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Masquage de lignes sur autre feuille...

RE

voici mon classeur de test

j'ai mis une feuille avec un nom toto en c10
j'ai mis la valeur 12 en o2
le tout sur ma feuille principal

je lance la macro et il me masque toutes les ligne dans la feuille toto dont la valeur de la colonne I est supérieur à 12
 

Pièces jointes

  • Classeur1.zip
    7.6 KB · Affichages: 22
  • Classeur1.zip
    7.6 KB · Affichages: 20
  • Classeur1.zip
    7.6 KB · Affichages: 19

Luki

XLDnaute Accro
Re : Masquage de lignes sur autre feuille...

Re, Pascal, absinth,

je vois dans ton premier post que tu passe un "offset" et j'ai un doute:
Quelle colonne contient la valeur de référence que veux tu veux comparer pour faire le masquage?
 

Absinth

XLDnaute Junior
Re : Masquage de lignes sur autre feuille...

Hello,

Et bien j'ai
Valeur de référence pour nom de feuille sur ma feuille principale en C10
Valeur a tester pour masquer sur ma feuille principale en O2
Lignes à masquer, sur la feuille dont le nom est "C10"

Je viens de jeter un coup d'oeil au fichier de Pascal, il marche bien, et j'ai la meme chose, et sur le mien ca marche pas... :(:(:(:(
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Masquage de lignes sur autre feuille...

re

tu pourrais envoyer ton fichier stp

tu laisses juste une feuille dans le nom est en c10 et une valeur en o2
tu vires toutes tes valeurs de tes cellules sauf la colonne i de ta feuille et tu envoies le fichier
 

Discussions similaires

Réponses
2
Affichages
179
Réponses
7
Affichages
361

Statistiques des forums

Discussions
312 541
Messages
2 089 412
Membres
104 163
dernier inscrit
Lolo37