XL 2016 Masquer des lignes si la cellule x se trouvant sur une autre feuille contient y

bellenm

XLDnaute Impliqué
Bonjour à tous,

je cherche la formule qui permettrait de cacher plusieurs ligne sur une feuille,
si le contenu qui d'une cellule contient "C" mais qui se trouve sur une autre feuille.

Plus simple avec le fichier:
si sur la feuille "CINT" la cellule "J7" contient "c ou C"
il faut que les lignes "18,19 et 20" sur la feuille "O1" soit masquée.

Merci d'avance pour votre aide.

Marc B
 

bellenm

XLDnaute Impliqué
???
Voilà Job75 je viens de comprendre et donc effacer l'erreur qui ouvrait une feuille supprimer du fichier principale.
M'étant pas informatien donc oui nul je n'en excuse, j'ai appris quelque choe au moins aujourd'hui merci Job75.
 
Dernière édition:

bellenm

XLDnaute Impliqué
Bonjour Roblochon, Job75,

Merci c'est tout ce qu'il me fallait et j'ai trouver ou se trouve la modification
merci beaucoup et bonne fin de journée à toi et les autres du forum véritable aides pour les gens comme moi nul en informatique.

Marc B
 

bellenm

XLDnaute Impliqué
Re:
J'ai un petit soucis c'est vrai je ne l'ai pas spécifier mais je dois avoir la solution pour deux cellules sur deux feuilles différente donc j'ai modifier la formule de Roblochon mais il y a une erreur.

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Cells(1, 1).Address(0, 0) = "J7" Then
    Sheets("O1").Range("A18:A20").EntireRow.Hidden = LCase(Target.Cells(1, 1)) = "c"
 End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Cells(1, 1).Address(0, 0) = "J19" Then
    Sheets("O2").Range("A18:A20").EntireRow.Hidden = LCase(Target.Cells(1, 1)) = "c"
 End If
End Sub
Nom ambigu détecté: worksheet_change

quel est le problème, pour Job75 la formule est dans "CINT"
 

Pièces jointes

  • test_ordre (2).xlsm
    388.4 KB · Affichages: 3

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

On ne duplique jamais les procédures évènementielles des objets!
Donc une seule Worksheet_Change par feuille
Solution possible vous offrant l'éventualité d'autres adresse de cellules
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet
    Dim adr As String: adr = Target.Cells(1, 1).Address(0, 0)
    Select Case adr
    Case "J7": Set ws = Sheets("O1")
    Case "J19": Set ws = Sheets("O2")
    End Select
    If Not ws Is Nothing Then ws.Range("A18:A20").EntireRow.Hidden = LCase(Target.Cells(1, 1)) = "c"
End Sub
Cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Ce sont deux façons différentes de voir les choses. L'une est provoquée par l'activation d'une feuille, l'autre par le changement de valeur de cellule.
l'avantage il faut la mettre sur une seule feuille
On peut faire la même chose sur activation d'une feuille en mettant le code dans Workbook_SheetActivate comme dans le classeur joint ici (V2)
Le code est à un seul endroit et peut traiter l'activation de chaque feuille du classeur.
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim c As Range
    Select Case Sh.Name
        Case "O1": Set c = Sheets("CINT").Range("J7")
        Case "O2": Set c = Sheets("CINT").Range("J19")
    End Select
    If Not c Is Nothing Then Sh.Range("18:20").EntireRow.Hidden = LCase(c) = "c"
End Sub

Cordialement
 

Pièces jointes

  • test_ordre_v2.xlsm
    397.9 KB · Affichages: 6

bellenm

XLDnaute Impliqué
Bonjour à tous,

dans l'optique de supprimer une ligne sur une feuille, comme très bien exécuté ici, pourrais je aussi le faire sur une deuxième feuille et supprimer une ligne différente?

VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim c As Range
    Select Case Sh.Name
        Case "O1": Set c = Sheets("CINT").Range("J7")
        Case "O2": Set c = Sheets("CINT").Range("J19")
    End Select
    If Not c Is Nothing Then Sh.Range("18:20").EntireRow.Hidden = LCase(c) = "c"
End Sub

Ici si j'ai bien compris : Si sur la feuille "CINT" à la celulle "J7" la réponse est "c" alors masque les lignes "18:20" de la feuille "O1"
et même chose pour la cellule "J19" pour la feuille "O2".
Donc comment demander de masquer également si la réponse en "J7" est "c" sur une nouvelle feuille et d'autre ligne. Même chose pour "J19" désoler je n'avais pas prévus cette possibilité si c'est faisable bien sûr!

Merci pour vos réponse

Marc B
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Là ça ne supprimer pas, ça masque les ligne.
Soyez plus précis sur ce que vous voulez faire ou tentez par vous-même d'adapter.
On vous a montrer différentes possibilités, à vous d'apprendre, essayer, échouer, recommencer et comprendre.
Nous n'allons pas refaire à chaque fois qu'un paramètre évolue.

Cordialement et bon apprentissage.
 

bellenm

XLDnaute Impliqué
Bonjour le forum,

Malgré de nombreuse tentative je n' y arrive pas soit rien ne ce passe soit j'ai "Nom ambigu détecté: worksheet_change "

Donc sans aide je vais laisser le fichier avec les dernières formules qui fonctionne.

Merci de votre aide à tous.

Marc B
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib