Masquer/Démasquer des colonnes selon un résultat

mel7

XLDnaute Nouveau
Bonjour à toutes et à tous, au Forum...

Dans une feuille Excel, je souhaite masquer ou démasquer des colonnes selon un résultat.

Je m'explique : Chaque jour j'effectue des enregistrements, ses enregistrements sont ensuite enregistrer dans la base de données et je souhaite créer une feuille "consultation" qui reprendrait selon le numéro d'enregistrement, toutes les données relatives à cet enregistrement.

Par exemple : Enregistrement numéro 3 comporte 7 données. Puis enregistrement numéro 4 comporte 5 données.

Donc je souhaite que dans ma feuille "consultation", quand je choisi l'enregistrement numéro 3 que ses 7 données apparaissent dans les colonnes respectives puis ensuite lorsque que je souhaite vérifier l'enregistrement numéro 4 qui ne comporte que 5 données et bien que les colonnes vides sans données soient masquées.

J'espère vous avoir bien expliqué ce que je voulais faire. Si vous souhaitez d'autres infos, n'hésitez pas à me demander.

Merci d'avance pour vos réponses.
Bien cordialement. Mel.
 

youky(BJ)

XLDnaute Barbatruc
Re : Masquer/Démasquer des colonnes selon un résultat

Bonjour mel7,
En macro bien sur...
A mettre dans le code de l'onglet
Le seul fait de selectionner lance la macro
Clicker sur la ligne voulue en col A .
Pour remettre tout visible clicker sur A1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Columns.Hidden = False: Exit Sub
If Target.Column = 1 Then
x = ActiveCell.Row
For k = 2 To Range("IV" & x).End(xlToLeft).Column
Columns(k).Hidden = IIf(Cells(x, k) = "", True, False)
Next
End If
End Sub
 

mel7

XLDnaute Nouveau
Re : Masquer/Démasquer des colonnes selon un résultat

Bonjour Youky et merci pour ta réponse.

Je vais essayer le code que tu m'a donné. Par contre une petite précision que j'ai oublié de mentionner : le choix des résultats se fait dans une zone de liste déroulante et non dans une cellule.

Est-ce que ton code est toujours valable et est-ce que tu peux me mettre en gras dans ton code les éléments que je dois remplacer par rapport à ma feuille Excel stp?

Merci pour ta réponse.
Cordialement
 

youky(BJ)

XLDnaute Barbatruc
Re : Masquer/Démasquer des colonnes selon un résultat

Bonjour mel7,
Je suis parti ici comme si tu avais une liste de validation en B5.
Donc change $B$5 par la bonne adresse...c'est tout

Si exemple dans cette liste tu cliques sur 3(il faut du numéric)
la macro s'exécutera sur la ligne 3.
si écart entre le N°de la liste et la ligne concernée
exemple (5 lignes) plus bas alors mets...
x = Target.Value +5
au lieu de:
x = Target.Value

J'ai prévu dés la selection sur A1 de rendre tout visible au cas où.
Si inutile tu peux supprimer ces 3 lignes.


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$5" Then Exit Sub
x = Target.Value
For k = 2 To Range("IV" & x).End(xlToLeft).Column
Columns(k).Hidden = IIf(Cells(x, k) = "", True, False)
Next
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then Columns.Hidden = False: Exit Sub
End Sub
 

mel7

XLDnaute Nouveau
Re : Masquer/Démasquer des colonnes selon un résultat

Re bonjour youky,

Merci pour ta réponse. Mais en faite je cherche à supprimer des colonnes et non des lignes. Je vais te donner un exemple pour mieux comprendre car c'est vrai que c'est assez compliqué et surtout je suis débutante en macro excel... Lol...:)

Voilà donc par un exemple dans l'enregistrement n°3, il y a 7 données d'enregistrer, puis dans l'enregistrement n°5, il y a 5 données d'enregistrer.

Quand je choisis l'enregistrement N°3, les 7 résultats s'affichent en colonne (par exemple de D->I sur ligne 17 pour le titre et ligne 18 pour résultats). Puis ensuite je choisi l'enregistrement n°5 où seulement 5 données s'affichent il y a donc 2 colonnes à supprimer à décaler vers la gauche.

Est-ce que jusque ici tout va bien ?

Ensuite l'opération doit s'effectuer dans l'autre sens, c'est à dire ajouter des colonnes quand plus de résultats.

Est-ce que ce que je souhaite faire est possible?
Merci. Cordialement
 

Discussions similaires

Réponses
2
Affichages
231

Statistiques des forums

Discussions
312 757
Messages
2 091 774
Membres
105 069
dernier inscrit
nico63