Formule/Macro permettant d'afficher certaines colonnes

Pentarou

XLDnaute Nouveau
Bonjour,

je ne m'y connait que très peu en Excel et j'aurais aimé me faire un fichier qui m'aiderait grandement.
Je ne sais pas si ce que je vais demander et très complexe ou très facile mais je tente quand même.

Voilà ce que je cherche à faire c'est pouvoir afficher certaines colonnes de mon fichier Excel à partir d'un test simple de comparaison.

Plus concrètement:
J'ai une liste de personne (Colonne A = Nom, Colonne B = Prénom).
J'ai une liste d'objectifs (Colonne C = Objectif 1, Colonne D = Objectif 2, Colonne X = Objectif n)
Pour chaque personne je coche des objectifs manuellement ( Ligne 2, Cellule A2 = Dupont, cellule B2 = Jean, cellule C2 = Vide, Cellule D2 = X, Cellule E2 = X).

J'aimerais faire une petite formule du style : SI (((C2="")ET(C5="")ET(C18=""));afficher la colonne C; ne pas afficher la colonne C)
=> En gros j'aimerais pour que pour les personnes que je choisisse, il me ressorte les colonnes des objectifs communs non réalisés (cellule vide).

Si possible sans passer par une macro, après j'avoue que j'aimerais bien pouvoir ne pas retoucher ma formule et juste pouvoir dire "je veux que tu me compare Pierre, Jean et Paul", sans avoir à modifier les lignes de ma formule genre , "je veux que tu me compare ligne 3, 5 et 18". Mais bon c'est déjà plus compliqué donc pas prioritaire.

Voilà si c'est simple, je veux bien une aide complète (oui la solution :) ), sinon juste une piste de recherche ou un tuto spécifique à lire.

Merci par avance.

Cordialement.
 

Pentarou

XLDnaute Nouveau
Re : Formule/Macro permettant d'afficher certaines colonnes

En parallèle de l'attente d'une réponse j'essaye des choses.
Je vous mettrais mon code ci-dessous et je le mettrais à jour régulièrement.
Pour l'instant j'ai :

EDIT :
Sub Test()
Dim nb As Integer
Dim Ligne(1 To 15) As Long
Dim Colonne(1 To 15) As Long
While nb <> "1" And nb <> "2" And nb <> "3" And nb <> "4" And nb <> "5" And nb <> "6" And nb <> "7" And nb <> "8" And nb <> "9" And nb <> "10" And nb <> "11" And nb <> "12" And nb <> "13" And nb <> "14" And nb <> "15"
nb = InputBox("Veuillez saisir le nombre de participant :")
MsgBox nb
Wend
i = 1
Dim plg(1 To 15) As Range
Do While i <= nb
Set plg(i) = Application.InputBox _
("Sélectionner une cellule", , , , , , , 8)
Ligne(i) = plg(i).Row
Colonne(i) = plg(i).Column
i = i + 1
Loop
For j = 2 To 15
Cells(j, 1).EntireRow.Hidden = True
Next j
h = 1
Do While h <= nb
Rows(Ligne(h)).Hidden = False
h = h + 1
Loop
End Sub


Me permettant de choisir le nombre de personne et de sélectionner une cellule par personne.
Ensuite ça me masque les lignes que je ne veux pas.
Prochaine étape, faire la comparaison des objectifs pour ensuite masquer les colonnes que je ne veux pas.
 
Dernière édition:

Pentarou

XLDnaute Nouveau
Re : Formule/Macro permettant d'afficher certaines colonnes

Bon ça m'a pris une aprem mais finalement j'y suis arrivé.
Voilà mon code final :

Sub Test()
Dim nb As Integer
Dim Ligne(1 To 15) As Long
Dim Colonne(1 To 15) As Long
While nb <> "1" And nb <> "2" And nb <> "3" And nb <> "4" And nb <> "5" And nb <> "6" And nb <> "7" And nb <> "8" And nb <> "9" And nb <> "10" And nb <> "11" And nb <> "12" And nb <> "13" And nb <> "14" And nb <> "15"
nb = InputBox("Veuillez saisir le nombre de participant :")
Wend
i = 1
Dim plg(1 To 15) As Range
Do While i <= nb
Set plg(i) = Application.InputBox _
("Sélectionner une cellule", , , , , , , 8)
Ligne(i) = plg(i).Row
Colonne(i) = plg(i).Column
i = i + 1
Loop
For j = 2 To 15
Cells(j, 1).EntireRow.Hidden = True
Next j
h = 1
Do While h <= nb
Rows(Ligne(h)).Hidden = False
h = h + 1
Loop
Z = 1
Do While Z <= nb
For k = 3 To 10
If Cells(Ligne(Z), k) <> "" Then
Cells(Ligne(Z), k).EntireColumn.Hidden = True
End If
Next k
Z = Z + 1
Loop
End Sub


Bon ça marche que pour 15 lignes et 10 colonnes mais c'est facilement adaptable maintenant.

Bye.
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87