Masquer lignes sous conditions

leXav

XLDnaute Nouveau
Bonjour,

je souhaiterai afficher ou masquer des lignes sous Excel 2002 / XP sous conditions mais je ne sais pas comment m'y prendre.

Si vous pouviez me donner un coup de main cela m'arrangerai.

Merçi d'avance,
Le Xav

J'ai joint un fichier 'exemple.xls' qui vous permettra de mieux comprendre mes problèmatiques.

Message édité par: LeXav, à: 27/05/2005 17:42
 

leXav

XLDnaute Nouveau
leXav écrit:
Bonjour,

je souhaiterai afficher ou masquer des lignes sous Excel 2002 / XP sous conditions mais je ne sais pas comment m'y prendre.

Si vous pouviez me donner un coup de main cela m'arrangerai.

Merçi d'avance,
Le Xav

J'ai joint un fichier 'exemple.xls' qui vous permettra de mieux comprendre mes problèmatiques.<br>
[file name=exemple_20050527174658.zip size=2357]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20050527174658.zip[/file]
 

Pièces jointes

  • exemple_20050527174658.zip
    2.3 KB · Affichages: 34

Gael

XLDnaute Barbatruc
Bonjour Le Xav,

Une solution simple est de faire une mise en forme conditionnelle sur la plage à masquer en fonction de la formule =C1='NON' par exemple puis de choisir comme format une police de couleur blanche et un fond identique.

Rien n'apparaît si la cellule contient 'NON' et les formats initiaux s'affichent à nouveau pour toute autre valeur.

NB: Protège la feuille pour verrouiller les cellules dans ce cas pour éviter toute saisie intempestive.

Ga&euml;l
 

leXav

XLDnaute Nouveau
Merçi a vous deux.

Je suit le premier message qui explique comment masquer.
(ok pour la syntaxe et la casse)

Par contre le 2nd message dans le fichier de Gérard.

1)Comment tu fait pour suprimer les lignes ?
2)Comment puis je afficher ce que tu a fais ?

Cordialement
LeXav
:eek:

Message édité par: LeXav, à: 27/05/2005 20:28
 

Gérard DEZAMIS

XLDnaute Accro
Bonsoir Le Xav

Pour vérifier l'absence éventuelle de '/02/' dans la cellule B3 il faut déjà rechercher la position du / car l'on ne connaît pas le nombre de chiffre frappés avant (x), ensuite comme 02/ fait trois caractères on recherche les caractères qu'il y a avec x+3.On extrait les caractères de gauche puis ensuite les 4 caractères de droite pour normalement avoir /02/. Cette valeur est placée en A1 (car je ne sais pas écrire cette recherche de caractères en VBA !!!!)
Cette cellule est au format ;;; qui cache son contenu.
La formule est :
=DROITE(GAUCHE(B3;TROUVE('/';B3)+3);4)
Ensuite en faisant Alt+ F11 tu entres dans VBE (Editeur Visual Basic) et là tu trouves des lignes de codes comme

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Cette opération s'effectuera à chaque changement de valeur dans la feuille'
Dim Selection As 'On déclare le type de données'
Set Selection1 = Range('Zone1')' Les deux zones (zone1 et Zone2) qui doivent 'disparaitre' ont été nommées Insertion Non définir (C'est plus pratique)'
Set Selection2 = Range('Zone2')
If Range('A1').Value <> '/02/' Then 'si la cellule a une valeur différente de /02: alors'
Selection1.EntireRow.Hidden = True 'on Cache la ligne'
Else
Selection1.EntireRow.Hidden = False ' sinon on la fait réapparaitre'
If Range('B17').Value = 'Non' Then 'si la cellule B17 contient 'Non' alors'
Selection2.EntireRow.Hidden = True 'toutes les lignes de la zone2 sont cachées'
Else
Selection2.EntireRow.Hidden = False ' dans le cas contraire elles sont apparentes'
End If 'fin de 1° condition'
End If 'fin de 2° condition'
End Sub ' Fin de procédure'

ça va mieux comme ça ? Je ne m'étais pas étendu sur les explications car bien souvent la réponse ne correspond pas à la demande donc .......inutile de perdre son temps
OK ?

@+ GD
 

SHINTRA

XLDnaute Occasionnel
Hello tout le monde


t' as solution est tres interresante Gérard DEZAMIS, pourrait on adapter ton code pour qu'il sapplique a toute une feuille pour par exemple la condition suivante:

pour la colonne I : si la cellule Ix='' et si la cellule Ix +1 =''
alors masquer jusqu'a la ligne jusqu'a ce que Ix soit different de ''

un peux complexe non ?
 

SHINTRA

XLDnaute Occasionnel
Merci bcp

Je ne peux makheuresement te repondre de suite ( sauf si tu depose le code ) car l ordinateur sur lequel je travail est relier a un reso qui verrouille le telechargement .

toutefois je le regarderais des que possible et te confirmearai tpout sa par message en retour


merci mille fois de ta rapidité et ton efficaité
 

Gérard DEZAMIS

XLDnaute Accro
Salut Shintra

Je dépose !

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
For i = 10 To 3665
If Range('I' & i).Value = '' And Range('I' & i + 1).Value = '' Then
Rows(i).EntireRow.Hidden = True
Rows(i + 1).EntireRow.Hidden = True
End If
Next i
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton2_Click()
Cells.Select
Selection.EntireRow.Hidden = False
Range('A1').Select
End Sub

J'ai mis ce code dans deux boutons un pour masquer les lignes , l'autre pour réafficher les lignes masquées (on ne sait jamais .... une erreur est toujours possible).
On peut aussi rendre automatique le 'masquage' avec

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
For i = 10 To 3665
If Range('I' & i).Value = '' And Range('I' & i + 1).Value = '' Then
Rows(i).EntireRow.Hidden = True
Rows(i + 1).EntireRow.Hidden = True
End If
Next i
Application.ScreenUpdating = True

End Sub

Regarde si cela peut te convenir

@+ GD
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 453
dernier inscrit
benjiii88