2009-01-15 7 views
0

Je consulte une macro qui masque les colonnes d'une plage particulière chaque fois que j'exécute la requête. Par exemple: Pour la première fois lorsque j'exécuterai la requête, j'aurais besoin que les colonnes A à D soient masquées, comme si la prochaine fois que je lance la requête, les colonnes E à H devraient être cachées.Masquage des colonnes lors de l'exécution d'une requête

C'est essentiellement une requête qui généraliserait le motif de masquage de colonne.

Je demande votre expertise à cet égard.

+0

colonnes dans quel système, exactement? – Alnitak

+0

J'essaie de travailler sur la version Microsoft Excel 2003 –

Répondre

0

La procédure ci-dessous permet de masquer les colonnes A à D si vous transmettez une valeur RunCount de 1, colonnes E à H si vous transmettez une valeur de 2, colonnes I à L si vous transmettez une valeur de 3, etc. ainsi de suite ...

Public Sub HideColumns(RunCount As Integer, TargetSheet As Worksheet) 
    Dim rngHide As Range 
    Dim ColOffset As Integer 

' Initialise rngHide to columns A to D of the target worksheet. 
    Set rngHide = TargetSheet.[A:D] 

' Calculate the offset from column A to the first column _ 
    that needs to be hidden, update rngHide if required. 
    ColOffset = (RunCount - 1) * 4 
    If ColOffset > 0 Then 
    Set rngHide = rngHide.Offset(0, ColOffset) 
    End If 

' Hide the columns. 
    rngHide.ColumnWidth = 0 
End Sub 

Si vous décidez que de masquer certaines colonnes, il suffit de changer la ligne:

Set rngHide = TargetSheet.[A:D] 

Par exemple, Pour masquer seulement les premières & dernières colonnes, la colonne A (et D, E colonne et H, etc.):

Set rngHide = TargetSheet.[A:A, D:D] 

Pour masquer seulement les deux premières colonnes:

Set rngHide = TargetSheet.[A:B]