Masquer des colonnes en fonction d'une valeur

Metabaron

XLDnaute Nouveau
Bonjour, je m'arrache les cheveuxn sur un truc qui parait pas dur, mais que je n'arrive pas à sortir..

Contexte :
-Tableau avec entre 100 et 200 colonnes (nombre variable)
-Colonnes fonctionnant par 4 (par ex : col K : résultats ; col L : ± ; col M: incertitude ; Col N: test de conformité)
-Certaines colonnes devant accueillir un résulat sont vides
-d'un essais à l'autre les résultats ne sont pas ds les même colonnes.

Plus de details
-la ligne 16 contient du texte lorsque la colonne est utilisée
-la cellule à tester est sur la ligne 14, toutes les 4 colonnes K ; O ; S ; W...... si la cellule = 0 on masque, sinon on laisse et passe à la suite..


Objectif :
Masquer les colonnes vides

J'ai fait différents essais : avec des 'Do While Sheets("Résultats").Cells(16, colini) <> "" ou autres boucles, ca marche pas !!!!!

Voilà mon dernier test qui marche pas non plus... je craque !!!!, il me masque toutes les col , rien à faire qu'il y a un zéro ou non, et va meme pas jusqu'à la col 51...


Dim i, colini, colfin As Integer

colini = 11
colfin = 11

For colini = 11 To 51

'la condition if then suivante marche bien de K à N!!
'------------------------------------------
If Cells(14, colini).Value = 0 Then
i = 0
Do
Columns(colfin).Select
Columns(colfin).Hidden = True
colfin = colfin + 1
i = i + 1
Loop While (i < 4)
End If
'---------------------------------------------
colini = colini + 4

Next colini
End Sub

-------
Je sais plus, dc à votre bon coeur !!
 

job75

XLDnaute Barbatruc
Re : Masquer des colonnes en fonction d'une valeur

Bonjour Metabaron,

Fichier joint avec ces macros :

Code:
Sub Masquer()
Dim col As Integer, r As Range, masque As Range
For col = 11 To Cells(14, Columns.Count).End(xlToLeft).Column Step 4
  Set r = Cells(14, col).Resize(, 4)
  If r(1) = 0 Then Set masque = Union(r, IIf(masque Is Nothing, r, masque))
Next
If Not masque Is Nothing Then masque.EntireColumn.Hidden = True
End Sub

Sub Afficher()
Columns.Hidden = False
End Sub
A+
 

Pièces jointes

  • feuille résultat(1).xlsm
    87 KB · Affichages: 73

Metabaron

XLDnaute Nouveau
Re : Masquer des colonnes en fonction d'une valeur

Bonjour Job, franchement, je suis scotché, c'est trop fort, t'as fait un truc en 5 min que j'ai cherché plusieurs heures, je Retourne à ma panoplie de petit chimiste...
Sinon un ami m'a proposé quasi en meme temps que ton post la macro ci-dessous, même si elle est moins belle, je la copie pour lui faire honneur, il a pas mal cherché aussi..

Dim i, colini As Long
colini = 11
Do
If Cells(14, colini) = 0 Then
Range(Columns(colini), Columns(colini + 3)).Select
Range(Columns(colini), Columns(colini + 3)).Hidden = True

colini = colini + 4
Loop Until Sheets("Résultats").Cells(16, colini) = ""

End Sub


Encore Merci et à une prochaine !!
 

Discussions similaires

Réponses
2
Affichages
158

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 210
Membres
103 158
dernier inscrit
laufin