Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

affichage colonne sous condition

nisuc

XLDnaute Nouveau
bonsoir
je voudrais qu'excel affiche certaines colonnes en fonction d'une condition inscrite dans une cellule.
concrètement, si "janvier" est affiché en A1 affiche moi les colonnes que j'aurais définis comme "janvier

merci de votre aide
Philippe
 

Staple1600

XLDnaute Barbatruc
Re : affichage colonne sous condition

Bonsoir et bienvenue parmi nous

Tu peux essayer d'utiliser le Filtre automatique

Données/Filtre automatique

Edit :houps , tu parles de colonnes

Dans ce cas je passerais par une macro
Pour tester
Saisis des dates (du mois de janvier)
sur la ligne 1
ensuite lance la macro affiche_janvier

Pour tout réafficher , lance affiche_tout
Code:
Sub affiche_janvier()
Application.ScreenUpdating = False
Dim cell As Range
Der_Cel = Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious).Row
For Each cell In Range(Cells(1, 1), Cells(Der_Cel, 256))
If Not Month(cell) = 1 Then cell.Columns.Hidden = True
Next
Application.ScreenUpdating = True
End Sub
Sub affiche_tout()
Cells.Columns.Hidden = False
End Sub
 
Dernière édition:

fanfan38

XLDnaute Barbatruc
Re : affichage colonne sous condition

Bonsoir
Un fichier serait le bien venu...
Cliquer avec le bouton droit de la souris sur le nom de la feuille concernée et choisir: Visualiser le code
Copier les lignes ci dessous

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 1 Then Exit Sub
If Target.Column > 1 Then Exit Sub
Cells.Select
Selection.EntireColumn.Hidden = False
Select Case Target.Value
Case Is = "Janvier"
Range("C:C,E:E,G:G,I:I").Select
'case is="ce que tu veux"
'action
'case...
'etc
End Select
Selection.EntireColumn.Hidden = True
End Sub
A+ François
 

nisuc

XLDnaute Nouveau
Re : affichage colonne sous condition

bonsoir
en faite je voudrais qu'il masque les colonnes qui ne rentre pas dans la condition du mois en A1
les mois sont en entête de colonnes
j'espère être claire
 

nisuc

XLDnaute Nouveau
Re : affichage colonne sous condition

merci pour l'accueil
en pj mon exemple

je teste en attendant la macro
 

Pièces jointes

  • flash.xls
    46 KB · Affichages: 185
  • flash.xls
    46 KB · Affichages: 179
  • flash.xls
    46 KB · Affichages: 199

Staple1600

XLDnaute Barbatruc
Re : affichage colonne sous condition

ReBonsoir


Uee solution à optimiser
A tester dans le code de la feuille
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address(0, 0) = "E1" Then Exit Sub
Dim i As Long
Select Case Target.Value
Case "janvier"
For i = 1 To 20
If Not Cells(7, i).Value Like "JANVIER" Then
Cells(7, i).Columns.Hidden = True
End If
Next i
Case "février"
For i = 1 To 20
If Not Cells(7, i).Value Like "FÉVRIER" Then
Cells(7, i).Columns.Hidden = True
End If
Next i
Case "mars"
For i = 1 To 20
If Not Cells(7, i).Value Like "MARS" Then
Cells(7, i).Columns.Hidden = True
End If
Next i
'continuer ainsi our les autres mois
End Select
 
Dernière édition:

nisuc

XLDnaute Nouveau
Re : affichage colonne sous condition

merci mais je n'y arrive pas
j'ai remis en ordre mon fichier qui est à présent super limpide sur les tenants et l'aboutissement
je rêve peut être mais il doit bien y avoir une solution miracle

va bouteille à la mer.....
Philippe
 

Pièces jointes

  • Classeur1.xls
    42 KB · Affichages: 156
  • Classeur1.xls
    42 KB · Affichages: 145
  • Classeur1.xls
    42 KB · Affichages: 150

Staple1600

XLDnaute Barbatruc
Re : affichage colonne sous condition

Re


Voici un code plus abouti

Pour qu'il fonctionne les mois doivent être saisis avec les majuscules accentuées

edit: code modifié en rapport avec la pièce jointe du message suivant
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address(0, 0) = "B1" Then Exit Sub
Dim tab_mois(12)
Dim i As Long: Dim j As Long
For j = 1 To 12
tab_mois(j) = UCase(Format(30 * j, "mmmm"))
Application.ScreenUpdating = False
Select Case Target.Value
Case LCase(tab_mois(j))
For i = 4 To 76
If Cells(2, i).Value Like tab_mois(j) Then Cells(2, i).Columns.Hidden = False
If Not Cells(2, i).Value Like tab_mois(j) Then Cells(2, i).Columns.Hidden = True
Next
Case "all"
Cells.Columns.Hidden = False
End Select
Next
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

nubys

XLDnaute Nouveau
Re : affichage colonne sous condition

Bonjour à tous et plus particulièrement à Staple1600,

Je souhaiterais réaliser une marco dans le meme genre que "testOK.xls" sauf que ce ne sont pas des mois mais des éléments (au nombre de 30 et non 12). Je m'explique, j'ai télécharger le fichier testok et j'y ai remplacer par exemple "JANVIER" par "SILICIUM" dans les titres de colonne et également dans la liste de choix mais lorsque je choisis "silicium dans la liste, rien ne se masque et rien ne s'affiche....
Comment faire pour adapter la macro ?

D'avance merci ;-)
 

Emiaime

XLDnaute Nouveau
Bonjour,

je travaille actuellement un fichier excel et mon besoin est sensiblement le même.

En colone A, le nom de mes employés sont inscrits. (Si la case est vide, c'est parce qu'il n'a pas d'employé) (A6 à A31)
Ces même nom se retrouvent aussi dans une ligne (5B à 5AA) 52 fois (pour chaque semaine de l'année)

J'aimerais donc que la ligne 5 affiche seulement les noms des employés se retrouvant dans ma colone A.
Ce qui veut dire; Si en A30 ma cellule est vide, la colone 5Z sera masquée.

Je dois répéter ceci pour mes 52 semaines.

J'ai joint le fichier

J'ai aucune idée de comment fonctionne le code...

Pouvez-vous m'aider?
 

Pièces jointes

  • Comptabilisation heurese formation.xlsx
    2.6 MB · Affichages: 63

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…