[RESOLU] : Fonction Grouper tableau

joedu31

XLDnaute Nouveau
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:

thebenoit59

XLDnaute Accro
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
 

joedu31

XLDnaute Nouveau
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?
 

thebenoit59

XLDnaute Accro
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.
 

joedu31

XLDnaute Nouveau
Re : Fonction Grouper tableau

Super, ça marche impeccable, merci :D

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:

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 326
Membres
103 516
dernier inscrit
René Rivoli Monin