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

Colonnes choisies à masquer ou afficher

4 réponses
Avatar
pat
Bonsoir à tous,
j'ai un petit problème que je n'arrive pas à résoudre seul, c'est
pourquoi j'ai pensé que vous pourriez m'aider.
J'ai donc une feuille en Excel 2003 contenant 200 colonnes , chaque
colonne représente un article avec en ligne 1 son nom et en ligne 2 le
nom du fichier source dont sont issus les autres paramètres de l'article
résumé dans les cellules en dessous.

Mon pb est le suivant :
je voudrais choisir dans une liste le nom du fichier source et ne faire
apparaître que les colonnes des articles issus du même fichier source
pour ne pas avoir les 200 colonnes ouvertes mais seulement une douzaine
où je pourrait avoir toutes les variantes d'un article par exemple.

Je précise que les colonnes d'un même fichier source ne sont pas cote à
cote.

Je sait créer une liste mais ne garder que les colonnes intéressantes je
ne sais pas le faire.
S'il faut créer une ligne au dessus du nom pour y mettre un indicateur
invisible du style 0 ou 1 de la même couleur que le fond, c'est
possible, pas d'opposition, de même que pour associer un n° à un fichier
source... (J'ai déjà réfléchi à des possibilités mais j'ai du mal à
concrétiser)

Merci pour votre aide

4 réponses

Avatar
DanielCo
Bonjour,
Avec tes données commençant en colonne B, mets dans un module standard
:

Sub test()
Columns(1).Insert
For Each c In Range([b2], Cells(2, Columns.Count).End(xlToLeft))
If c <> "" Then
ctr = ctr + 1
Cells(ctr, 1) = c
End If
Next c
Columns(1).RemoveDuplicates Columns:=1, Header:=xlNo
With [B1].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=" & Range([A1], Cells(Rows.Count,
1).End(xlUp)).Address
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Columns(1).Hidden = True
End Sub

pour construire la liste de validation.

Mets ensuite le code suivant dans le module de la feuille (la liste de
validation est en B1) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub
For i = Cells(2, Columns.Count).End(xlToLeft).Column To 3 Step -1
If Cells(2, i) <> Target Then Columns(i).Hidden = True
Next i
End Sub

Daniel

pat a écrit
Bonsoir à tous,
j'ai un petit problème que je n'arrive pas à résoudre seul, c'est pourquoi
j'ai pensé que vous pourriez m'aider.
J'ai donc une feuille en Excel 2003 contenant 200 colonnes , chaque colonne
représente un article avec en ligne 1 son nom et en ligne 2 le nom du fichier
source dont sont issus les autres paramètres de l'article résumé dans les
cellules en dessous.

Mon pb est le suivant :
je voudrais choisir dans une liste le nom du fichier source et ne faire
apparaître que les colonnes des articles issus du même fichier source pour ne
pas avoir les 200 colonnes ouvertes mais seulement une douzaine où je
pourrait avoir toutes les variantes d'un article par exemple.

Je précise que les colonnes d'un même fichier source ne sont pas cote à cote.

Je sait créer une liste mais ne garder que les colonnes intéressantes je ne
sais pas le faire.
S'il faut créer une ligne au dessus du nom pour y mettre un indicateur
invisible du style 0 ou 1 de la même couleur que le fond, c'est possible, pas
d'opposition, de même que pour associer un n° à un fichier source... (J'ai
déjà réfléchi à des possibilités mais j'ai du mal à concrétiser)

Merci pour votre aide
Avatar
pat
bonjour,
le pb c'est que les colonnes non retenues disparaissent définitivement
je voulais simplement les masquer pour pouvoir faire un autre choix ou
tout afficher ensuite
merci de voir si c'est possible simplement sinon j'abandonne et on se
fera le masquage à la main

Le 10/10/2011 10:14, DanielCo a écrit :
Bonjour,
Avec tes données commençant en colonne B, mets dans un module standard :

Sub test()
Columns(1).Insert
For Each c In Range([b2], Cells(2, Columns.Count).End(xlToLeft))
If c <> "" Then
ctr = ctr + 1
Cells(ctr, 1) = c
End If
Next c
Columns(1).RemoveDuplicates Columns:=1, Header:=xlNo
With [B1].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & Range([A1], Cells(Rows.Count,
1).End(xlUp)).Address
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
Columns(1).Hidden = True
End Sub

pour construire la liste de validation.

Mets ensuite le code suivant dans le module de la feuille (la liste de
validation est en B1) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub
For i = Cells(2, Columns.Count).End(xlToLeft).Column To 3 Step -1
If Cells(2, i) <> Target Then Columns(i).Hidden = True
Next i
End Sub

Daniel

pat a écrit
Bonsoir à tous,
j'ai un petit problème que je n'arrive pas à résoudre seul, c'est
pourquoi j'ai pensé que vous pourriez m'aider.
J'ai donc une feuille en Excel 2003 contenant 200 colonnes , chaque
colonne représente un article avec en ligne 1 son nom et en ligne 2 le
nom du fichier source dont sont issus les autres paramètres de
l'article résumé dans les cellules en dessous.

Mon pb est le suivant :
je voudrais choisir dans une liste le nom du fichier source et ne
faire apparaître que les colonnes des articles issus du même fichier
source pour ne pas avoir les 200 colonnes ouvertes mais seulement une
douzaine où je pourrait avoir toutes les variantes d'un article par
exemple.

Je précise que les colonnes d'un même fichier source ne sont pas cote
à cote.

Je sait créer une liste mais ne garder que les colonnes intéressantes
je ne sais pas le faire.
S'il faut créer une ligne au dessus du nom pour y mettre un indicateur
invisible du style 0 ou 1 de la même couleur que le fond, c'est
possible, pas d'opposition, de même que pour associer un n° à un
fichier source... (J'ai déjà réfléchi à des possibilités mais j'ai du
mal à concrétiser)

Merci pour votre aide




Avatar
DanielCo
Bonsoir,
Fais alors un filtre avancé avec l'option "extraction sans doublon". Je
n'ai pas le temps de m'y mettre ce soir. Sers-toi de l'enregistreur de
macros.
Daniel


bonjour,
le pb c'est que les colonnes non retenues disparaissent définitivement
je voulais simplement les masquer pour pouvoir faire un autre choix ou tout
afficher ensuite
merci de voir si c'est possible simplement sinon j'abandonne et on se fera
le masquage à la main
Avatar
pat
Bonjour,
cela fonctionne avec le filtre
Je te remercie pour la piste
bonne fin de WE


Le 14/10/2011 21:31, DanielCo a écrit :
Bonsoir,
Fais alors un filtre avancé avec l'option "extraction sans doublon". Je
n'ai pas le temps de m'y mettre ce soir. Sers-toi de l'enregistreur de
macros.
Daniel


bonjour,
le pb c'est que les colonnes non retenues disparaissent définitivement
je voulais simplement les masquer pour pouvoir faire un autre choix ou
tout afficher ensuite
merci de voir si c'est possible simplement sinon j'abandonne et on se
fera le masquage à la main