Masquer 1 colonne selon le motif de la céllule en ligne 2

  • Initiateur de la discussion Initiateur de la discussion Boby71C
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Boby71C

XLDnaute Impliqué
Bonjour
Je désir masquer les colonnes dont la céllule en ligne 2 contient le motif suivant:

With Selection.Interior
.ColorIndex = 0
.Pattern = xlGray25
.PatternColorIndex = 1
End With

Je m'explique:
Tant que la ligne 2 est différente de rien, je la test.
Si je rencontre en ligne 2 le motif ci-dessus, je désir masquer la colonne.

Connaissez-vous une solution en VBA pour arriver à mes fins.

@+
 

Pièces jointes

Dernière édition:
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Bonjour Boby71c,

Code à la volée (non vérifié) pour tester les 100 premières colonnes :


for ii = 1 to 100
if cells(2,ii).interior.color = 0 _
and cells(2,ii).interior.pattern = xlgray25 _
and cells(2,ii).interior.patterncolorindex=1 then
columns(ii).hidden = true
next
 
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Bonjour Boby, bonjour le forum.

Je suis parvenu à faire ce que tu voulais, avec très peu de VB. Voici comment j'ai fais :

Sur une ligne, j'ai mis le n° du jour de la semaine en dessous de chaque journée, de 1 à 7 donc.
Ensuite, j'ai ajouté un tableau avec les jours fériés de l'année en cours.

Sur la ligne 6, en dessous de chaque jour, j'ai mis une formule qui affiche "xx" si le jour de la semaine est >5, ou si la journée est férié, ou si la journée est précédée d'un férié et si elle est collées à un samedi (pont).

C'est rudimentaire, mais ça fonctionne.

A bientôt.
 

Pièces jointes

Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Bonjour
Merci pour votre aide.

Pour Coriolan:
J'ai adapté ton code mais je ne suis pas sûr d'avoir faits correctement. Voici ce que j'ai faits et malheureusement, ça ne fonctionne pas. 😱

Sub Macro1()
'

For ii = 1 To 100
If Cells(2, ii).Interior.Color = 0 _
And Cells(2, ii).Interior.Pattern = xlGray25 _
And Cells(2, ii).Interior.PatternColorIndex = 1 Then
Columns(ii).Hidden = True
End If
Next
End Sub


Pour thomlau

Je ne peux pas adopter ta solution . J'ai joints un exemple simple mais mon fichier est beaucoup plus complexe et je ne peux rajouter tous ce que tu me m'indiques.

@+
 
Dernière édition:
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Re Robert,

Le code marche parfaitement; j'ai exécuté la macro suivante:

Sub test()
Cells(2, 5).Select
With Selection.Interior
.Color = 0
.Pattern = xlGray25
.PatternColorIndex = 1
End With


End Sub

qui met les critères requis dans la cellule E2

Le code que je t'avais donné:

Sub Macro1()
For ii = 1 To 100
If Cells(2, ii).Interior.Color = 0 _
And Cells(2, ii).Interior.Pattern = xlGray25 _
And Cells(2, ii).Interior.PatternColorIndex = 1 Then
Columns(ii).Hidden = True
End If
Next
End Sub

a pour effet de masquer la colonne E, ce qui est le résultat recherché.

Je ne comprends pas ce qui ne marche pas chez toi, à moins qu'il y ait erreur sur les critères.
 
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Bonsoir boby,
question bête : comme tu as réussi à affecter ce motif à certaines cellules via une macro, c'est que tu as fait une recherche...
Donc, en même temps que de la colorier, tu la masques..

With Selection
.Interior.ColorIndex = 0
.Interior.Pattern = xlGray25
.Interior.PatternColorIndex = 1
.EntireColumn.Hidden = True
End With

Edit : Question bête, c'est de ma part qu'il s'agit....
 
Dernière édition:
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Re
Désolé, mais la solution de Coriolan ne fonctionne pas chez moi (Excel 2003)
Peut être n'ai-je pas tout compris. si tu pouvais joindre mon fichier corrigé, ce serait génial pour que j'arrive à comprendre comment tu fais.

Pour l'idée de bhbh, je ne peux pas essayer avant lundi car je n'ai pas mon fichier d'origine qui fonctionne sur le réseau de ma boite.

Merci à tous deux.
Bon Weekend
 
Dernière édition:
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Re,

??? J'utilise également Excel 2003 !!! (j'ai essayé 2007, et l'ai désinstallé très vite ...)

Blague dans le coin, je ne comprends pas ... Si tu exécutes test(), la cellule E2 devient noire. Et si tu exécutes macro1 à la suite, la colonne E DOIT se masquer. C'est du code simplissime ...
 
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Re
C'est exact, sur la colonne E, ça fonctionne, je te confirme.
Ta solution est bonne.
Dès que j'essaie de l'adapter à ma mise en forme par rapport aux motifs dans mon fichier, ça ne fonctionne plus.
Donc je te rassure et te confirme, ça doit être moi qui n'ai pas tout compris.
Je rajoute mon fichier modifié avec ta solution.
J'ai adapté ma mise en forme du test identique à mes mises en formes existantes.
@+
 

Pièces jointes

Dernière édition:
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Oups
Désolé, ça fonctionne, je ne faisais pas tout à fait le même motif que celui existant.
Il y a une obligation que je n'arrive pas à comprendre, le code masque seulement les cellules qui ont étés grisées avec le test
J'ai faits l'essai sur les colonnes V et W et là, ça fonctionne.
Si nous ne passons pas par le test, malgré les mêmes motifs dans les autres cellules, rien ne va plus!!
code rajouté dans test:
Cells(2, 22).Select
With Selection.Interior
.ColorIndex = 2 '0
.Pattern = xlGray25
.PatternColorIndex = xlAutomatic '1
End With

Je vais corriger.

Merci pour votre aide à tous 2.
Pour bhbh, je vais essayer lundi car ta solution est également très logique.

@+
 
Dernière édition:
Re : Masquer 1 colonne selon le motif de la céllule en ligne 2

Bonjour
Ci-joint l'idée de bhbh qui s'avère être excellente.
Je la mets en ligne pour qu'elle soit utile à d'autres.
Merci bhbh.

Pou la solution de Coriolan, je cherche pouquoi ça ne masque pas mes colonnes.
Merci quand même Corolian pour ton aide.

Mes remerciements également à thomlau qui avait une bonne idée mais que je ne pouvais utiliser sur mon fichier. Le dernier fichier que j'ai joint se rapporte un petit peux à sa solution, sauf que mon calendrier sur mon fichier de boulot, je vais le chercher sur un fichier externe.


Bon Dimanche.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour