Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro de masquage/démascage de colonne en fonction d'une valeur prise

18 réponses
Avatar
Chimilmili Blick
Bonjour,

Je souhaiterais, via une macro, pouvoir d=E9masquer/masquer automatiquement=
des colonnes en fonction qu'une valeur est pr=E9sente en ligne 4 de la col=
onne ou pas.

En d'autres terme et p.ex si la valeur B4 est =E9gale =E0 "", la colonne B =
doit =EAtre/se masquer, si par contre la valeur B4 est =E9gale =E0 une vale=
ur (p.ex. "A" ou "6") la colonne doit se d=E9masquer.

Ci-joint un classeur qui permettra peut-=EAtre de mieux comprendre ce que j=
e souhaite.

http://cjoint.com/?DIwlqP9ebye=A0

Mille mercis =E0 celui/celle qui pourra m'aider =E0 trouver le code associ=
=E9.

Chimilimili

8 réponses

1 2
Avatar
MichD
| Mais où sont passés tout ces kilos de bits ?

Il faut éviter de sélectionner des colonnes ou des lignes entières aux fins de formatage.
Depuis Excel 2007, le nombre de cellules dans une colonne est au-delà 1,000,000
par plus de 16,000 cellules par ligne. Ceci augmente substantiellement l'étendue
de la plage définie dans chacune des feuilles et par conséquent augmente le poids
du fichier même si ton fichier n'a pas beaucoup de données.
Avatar
Chimilimili Blick
Le mercredi 24 septembre 2014 15:36:22 UTC+2, MichD a écrit :
| Mais o� sont pass�s tout ces kilos de bits ?



Il faut �viter de s�lectionner des colonnes ou des lignes enti�res aux fins de formatage.

Depuis Excel 2007, le nombre de cellules dans une colonne est au-delï ¿½ 1,000,000

par plus de 16,000 cellules par ligne. Ceci augmente substantiellement l' �tendue

de la plage d�finie dans chacune des feuilles et par consï¿ ½quent augmente le poids

du fichier m�me si ton fichier n'a pas beaucoup de donn�e s.



Bonjour,

Je me permets de revenir sur ce fil pour tâcher de résoudre mon p etit problème.

Merci pour les explications relatives au poids des classeurs à cause d e mises en forme faites sur l'ensemble du classeur et ses cellules vides. C et information est très intéressante. Le code de nettoyage associ é précieux.

Voici le lien concernant mon classeur d'origine. (Je l'ai réduit au mi nimum pour les besoin de la question.)

http://cjoint.com/?DIDkFe7Y1Fa

La saisie des projet se fait sur la feuille SaisiePojCom. L'information sai sie est reportée sur la feuille 2014-2015. La feuille 2014 2015 contie nt des colonnes masquées. L'idée est que ces colonnes se dém asquent automatiquement dès qu'une information qui les concerne est sa isie en feuille SaisiePojCom. Il s'agit aussi qu'elles se masquent si l'inf ormation est effacée.

Comme vous le constaterez, cela n'est pas encore le cas. Les colonnes masqu ées/démasquées l'on été fait manuellement et ne so nt pas le reflet de ce qui devrait être (de l'information utile est ma squée).

Les solutions proposées par Jacky sont exactement ce que je recherche. Comment les adapter à mon classeur ? Tel est la question.

Un grand merci d'avance pour votre coup de main.

Chimilimili
Avatar
MichD
'-------------------------------
L'idée est que ces colonnes se démasquent automatiquement dès qu'une information qui les concerne
est saisie en feuille SaisiePojCom. Il s'agit aussi qu'elles se masquent si l'information est
effacée.
'-------------------------------

Quelles sont les colonnes sur la feuille 2014-2015 que tu veux masquer ou afficher selon ce que
l'usager tape dans la feuille "SaisiePojCom", dans la une cellule de la colonne correspondante?
Avatar
Chimilimili Blick
Quelles sont les colonnes sur la feuille 2014-2015 que tu veux masquer ou a fficher selon ce que l'usager tape dans la feuille "SaisiePojCom", dans la une cellule de la colonne correspondante?

Et bien les colonnes correspondantes :

Une saisie en SaisiePojCom'C3 démasque la colonne 2014-2015'E:E
Une saisie en SaisiePojCom'G5 démasque la colonne 2014-2015'AK:AK
Une saisie en SaisiePojCom'O11 démasque la colonne 2014-2015'CY:CY

dès qu'une colonne de la feuille 2014-2015 contient (ramène) une inform ation utile (non vide) dans son espace (plage) E3:EX3 elle doit se démasq uer. Quand ces même colonnes ont pour valeur une cellule vide en ligne 3 la colonne doit se masquer.

Oups ai-je été clair ?

Merci en tout cas pour votre aide.

Chimilimili
Avatar
MichD
Tu veux dire que dans toute ton application, tu ne veux saisir des données que dans les 3 cellules
suivantes?

Une saisie en SaisiePojCom'C3 démasque la colonne 2014-2015'E:E
Une saisie en SaisiePojCom'G5 démasque la colonne 2014-2015'AK:AK
Une saisie en SaisiePojCom'O11 démasque la colonne 2014-2015'CY:CY
Avatar
MichD
OK, je viens de comprendre :

Fais un clic droit sur l'onglet de la feuille "SaisiePojCom" et copie la procédure
suivante dans cette page.

'Dans le code, j'utilise le nom de l'objet "Feuille" que représente
'la propriété "Name" de l'objet au lieu du nom de l'onglet de la feuille.

'Dans la petite fenêtre de ton projetVBA, l'arborescence se lit comme suit :
'Feuil1!(SaisiePojCom)
'Feuil2!(2014-2015)

'Feuil2 est le nom de la propriété Name
'2014-2015 est le nom d'onglet de la même feuille.
'--------------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
With Feuil2
For Each C In .Range("E3:EX3")
If C.Value <> "" Then
C.EntireColumn.Hidden = False
Else
C.EntireColumn.Hidden = True
End If
Next
End With
End Sub
'--------------------------------------------------------------------------------------------
Avatar
Chimilimili Blick
Le lundi 29 septembre 2014 16:42:20 UTC+2, MichD a écrit :
OK, je viens de comprendre :



Fais un clic droit sur l'onglet de la feuille "SaisiePojCom" et copie la proc�dure

suivante dans cette page.



'Dans le code, j'utilise le nom de l'objet "Feuille" que repr�sen te

'la propri�t� "Name" de l'objet au lieu du nom de l'ongle t de la feuille.



'Dans la petite fen�tre de ton projetVBA, l'arborescence se lit c omme suit :

'Feuil1!(SaisiePojCom)

'Feuil2!(2014-2015)



'Feuil2 est le nom de la propri�t� Name

'2014-2015 est le nom d'onglet de la m�me feuille.

'------------------------------------------------------------------------ --------------------

Private Sub Worksheet_Change(ByVal Target As Range)

Dim C As Range

With Feuil2

For Each C In .Range("E3:EX3")

If C.Value <> "" Then

C.EntireColumn.Hidden = False

Else

C.EntireColumn.Hidden = True

End If

Next

End With

End Sub

'------------------------------------------------------------------------ --------------------



Bonjour MichD,

Oui c'est exactement ça!
C'est parfait ! Merci infiniment! :)

Chimilimili Blick

Pour vous remercier un lien sur une de mes dernières super-productions :o)
http://www.youtube.com/watch?v=CvguRgskzB0
Avatar
MichD
| http://www.youtube.com/watch?v=CvguRgskzB0

Je trouve le sujet féminin de la présentation intéressante !

;-))
1 2