[RESOLU] : Fonction Grouper tableau

  • Initiateur de la discussion Initiateur de la discussion joedu31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

joedu31

Guest
Bonjour,

J'ai un petit problème, j'ai un classeur avec 2 feuilles;

- une avec un tableau de référence : dans lequel j'inscris par exemple des nom de Pays en Ref 1, 2,3...6
- une autre feuille avec des tableaux; j'ai ajouté la fonction grouper pour cacher les tableaux qui ne renseigne pas de nom de pays. (Ici 4, 5, 6)

Je voudrais créer une fonction ou macro qui permettre que lorsqu'il n'y pas de Pays renseigné dans le tableau Feuille 1, cache les tableaux page 2.

Peut être avec une fonction
Code:
=SI(REFPAYS1; ""; cacher tableau?)

Merci à vous,
Joe
 
Dernière modification par un modérateur:
Re : Fonction Grouper tableau

Bonjour joe.
Je suis très nul en formule.
Une méthode en VBA :
Code:
Sub Masquer_Tableau()
    Dim i As Long
    With Sheets("Feuil2")
    For i = 2 To .UsedRange.Columns.Count Step 4
    If .Cells(2, i).Value <> 0 Then
    .Range(.Cells(2, i), .Cells(2, i + 2)).Columns.Hidden = False
    Else: .Range(.Cells(2, i), .Cells(2, i + 2)).Columns.Hidden = True
    End If
    Next i
    End With
End Sub
 
Re : Fonction Grouper tableau

Bonjour à toi,

Merci pour ta réponse, cela fonctionne très bien avec une macro, je vais partir sur cette idée. 😉

J'ai modifié ma disposition de tableau, et je m'aperçois que la macro ne marche plus... Pour temps le fonctionnement, c'est bien quand il voit un zéro sur la ligne, il cache le tableau?
 
Re : Fonction Grouper tableau

Oui c'est quand il trouve le 0.
Mais dans le premier tableau, le 0 se cherchait à partir de la colonne B puis toutes les quatre colonnes.
Dans le nouveau il faut débuter à D et incrémenter de 4.

Code:
 For i = 4 To .Cells.Find("*", , , , xlByColumns, xlPrevious).Column Step 4

J'ai changé le calcul de la dernière colonne, je me suis rendu compte que le résultat escompté n'était pas le bon étant donné que les tableaux débutent colonne 2.

Second changement, maintenant que le 0 est en troisième colonne de chaque tableau il faut modifier le Range :
Code:
 .Range(.Cells(2, i-2), .Cells(2, i))

i étant le numéro de colonne.
Normalement cela devrait fonctionner maintenant.
 
Re : Fonction Grouper tableau

Super, ça marche impeccable, merci 😀

Code:
Sub Masquer_Tableau()
     Dim i As Long
     With Sheets("Feuil2")
     For i = 4 To .Cells.Find("*", , , , xlByColumns, xlPrevious).Column Step 4
     If .Cells(2, i).Value <> 0 Then
      .Range(.Cells(2, i - 2), .Cells(2, i)).Columns.Hidden = False
     Else: .Range(.Cells(2, i - 2), .Cells(2, i)).Columns.Hidden = True
     End If
     Next i
     End With
 End Sub

J'ai encore modifié le fichier, afin de pouvoir renseigner toutes mes données mais j'avoue que je bloque un peu...
Il y a maintenant 2 sortes de tableaux donc, 2 incrémentations à faire si j'ai bien compris?

Promis, c'est le dernier... 🙁
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Tableau
Réponses
5
Affichages
250
Réponses
1
Affichages
203
Retour