Macro Afficher/Masquer des colones en fonction d'une cellule

jeremy

XLDnaute Nouveau
Bonjour a tous

Comment allez vous aujourd'hui ?

Désole pour les fautes et accents. Je ne suis pas en France et mon clavier est un QWERTZ.

En tant que NOVICE en MACRO (j'ai tout a apprendre), je sollicite votre aide.

J'aimerai créer une macro pour Afficher/Masquer des colonnes (1 ou plusieurs classeur) en fonction d'une information contenu sur une ligne.

Ex : afficher toute les colonnes contenant OUI en ligne 8. et masquer toutes les colonnes contenant NON.

En deuxième étape, j'aimerai pouvoir afficher les colonnes contenant OUI en ligne 8 et un chiffre supérieur a 0 en ligne 9.

Pouvez vous m'apporter votre aide SVP ?

Voici un fichier en exemple.
 

Pièces jointes

  • test1.xls
    15.5 KB · Affichages: 84
  • test1.xls
    15.5 KB · Affichages: 83
  • test1.xls
    15.5 KB · Affichages: 81

Ladoo

XLDnaute Nouveau
Re : Macro Afficher/Masquer des colones en fonction d'une cellule

for i=2 to 7
if cells(8,i).value<>"OUI" Then
Columns(i).Hidden = True
end if
next

Je n'ai pas compris votre deuxième étape...sûrement l'heure d'aller manger. A moins que :

for i=2 to 7
if cells(8,i).value <>"OUI" and cells(9,i)<=0 Then
Columns(i).Hidden = true
end if
next

J'ai un clavier QWERTZ, il y a des accents...
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Macro Afficher/Masquer des colones en fonction d'une cellule

Salut jeremy et le forum
Une proposition
Code:
Sub Test()
Dim X As Integer
For X = 2 To Cells(7, Columns.Count).End(xlToLeft).Column
    If Cells(8, X) = "OUI" And Cells(9, X) > 0 Then
        Columns(X).Hidden = False
    Else
        Columns(X).Hidden = True
    End If
Next
End Sub
'---------------------------------------------------------------------
Sub essai()
Columns.Hidden = False
End Sub
j'aimerai pouvoir afficher les colonnes contenant OUI en ligne 8 et un chiffre supérieur a 0 en ligne 9. => test
Essai ne sert qu'à réafficher toutes les colonnes masquées.
A+
 

jeremy

XLDnaute Nouveau
Re : Macro Afficher/Masquer des colones en fonction d'une cellule

Merci pour votre aide...

Lorsque je l'insere dans mon fichier la macro ne demarre pas...

Savez vous si j ai fais une erreur en l inserant ?
 

Pièces jointes

  • test2.xls
    28.5 KB · Affichages: 69
  • test2.xls
    28.5 KB · Affichages: 75
  • test2.xls
    28.5 KB · Affichages: 71

Ladoo

XLDnaute Nouveau
Re : Macro Afficher/Masquer des colones en fonction d'une cellule

Voilà.
je pense que ça marche maintenant.
 

Pièces jointes

  • test2(1).xls
    30.5 KB · Affichages: 116
  • test2(1).xls
    30.5 KB · Affichages: 115
  • test2(1).xls
    30.5 KB · Affichages: 107

jeremy

XLDnaute Nouveau
Re : Macro Afficher/Masquer des colones en fonction d'une cellule

J'ai tester avec le code suivant et ca a l'air de marcher :

Option Explicit
Dim X As Byte

Sub Masque()
For X = 2 To Application.WorksheetFunction.CountA(Rows(8))
If Cells(8, X) <> "NON" Then Columns(X).EntireColumn.Hidden = True
Next X
End Sub

Sub Affiche()
For X = 2 To Application.WorksheetFunction.CountA(Rows(8))
Columns(X).EntireColumn.Hidden = False
Next X
End Sub



Par contre savez vous comment je pourrai appliquer cette macro a plusieurs feuille
(Pas toutes les feulles)

Voici mon ex ou la macro ne fonctionne que sur la Feuille 1
 

Pièces jointes

  • test3.xls
    35.5 KB · Affichages: 86
  • test3.xls
    35.5 KB · Affichages: 92
  • test3.xls
    35.5 KB · Affichages: 88

Gorfael

XLDnaute Barbatruc
Re : Macro Afficher/Masquer des colones en fonction d'une cellule

Salut jeremy et le forum
Par contre savez vous comment je pourrai appliquer cette macro a plusieurs feuille
(Pas toutes les feulles)
Ta macro s'applique uniquement sur la feuille active, quelle qu'elle soit.
Si tu veux qu'elle s'applique sur plusieurs feuilles, il faut le lui dire. Mais avec aussi peu de renseignements...
Peut-être en faisant une boucles "for each F in sheets", avec un discriminateur "if F.range("A9")="EN STOCK" then"
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 351
Membres
103 526
dernier inscrit
HEC