XL 2K VBA, masquer des colonnes non contiguës, Array?

Le
J
Bonjour à tous
Tous les jours, on m'adresse une feuille nouvelle, de même format.
Je dois masquer un certain nombre de colonnes, non contiguës, qui n'ont
rien de commun.

Je le fais comme cela :
Columns("AN:AN").EntireColumn.Hidden = True
Columns("AF:AF").EntireColumn.Hidden = True
Columns("AA:AA").EntireColumn.Hidden = True
Columns("W:W").EntireColumn.Hidden = True
Columns("S:U").EntireColumn.Hidden = True
Columns("P:P").EntireColumn.Hidden = True
Columns("F:F").EntireColumn.Hidden = True
Columns("D:D").EntireColumn.Hidden = True

Cela fonctionne mais c'est assez lent, et lourd.
Y aurait-il moyen de faire plus rapide, un array serait-il une solution
et comment?

Merci
@+
J@@
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #22519371
Presque pareil :

Dim arCol, arLarg, Col
arCol = Array("AF:AF", "S:U") 'etc
For i = 0 To UBound(arCol)
Range(arCol(i) & ":" & arCol(i)).EntireColumn.Hidden = True
Next i

Daniel


Bonjour à tous
Tous les jours, on m'adresse une feuille nouvelle, de même format.
Je dois masquer un certain nombre de colonnes, non contiguës, qui n'ont rien
de commun.

Je le fais comme cela :
Columns("AN:AN").EntireColumn.Hidden = True
Columns("AF:AF").EntireColumn.Hidden = True
Columns("AA:AA").EntireColumn.Hidden = True
Columns("W:W").EntireColumn.Hidden = True
Columns("S:U").EntireColumn.Hidden = True
Columns("P:P").EntireColumn.Hidden = True
Columns("F:F").EntireColumn.Hidden = True
Columns("D:D").EntireColumn.Hidden = True

Cela fonctionne mais c'est assez lent, et lourd.
Y aurait-il moyen de faire plus rapide, un array serait-il une solution et
comment?

Merci
@+
J@@
michdenis
Le #22519561
Bonjour,

M'inspirant de la solution de Daniel, tu pourrais aussi utiliser cette syntaxe

Sub test()
Dim ArCol(), Elt As Variant
ArCol = Array("AF:AF", "S:U") 'etc
For Each Elt In ArCol
Range(Elt).EntireColumn.Hidden = True
Next
End Sub

--
MichD
--------------------------------------------


"J@@" Bonjour à tous
Tous les jours, on m'adresse une feuille nouvelle, de même format.
Je dois masquer un certain nombre de colonnes, non contiguës, qui n'ont
rien de commun.

Je le fais comme cela :
Columns("AN:AN").EntireColumn.Hidden = True
Columns("AF:AF").EntireColumn.Hidden = True
Columns("AA:AA").EntireColumn.Hidden = True
Columns("W:W").EntireColumn.Hidden = True
Columns("S:U").EntireColumn.Hidden = True
Columns("P:P").EntireColumn.Hidden = True
Columns("F:F").EntireColumn.Hidden = True
Columns("D:D").EntireColumn.Hidden = True

Cela fonctionne mais c'est assez lent, et lourd.
Y aurait-il moyen de faire plus rapide, un array serait-il une solution
et comment?

Merci
@+
J@@
LSteph
Le #22520211
Bonjour,
donc lescolonnes non contigues nommées mescols, pour dé../masquer

With [mescols].Columns.EntireColumn
.Hidden = Not .Hidden
End With

'LSteph

On 30 août, 04:19, "J@@"
Bonjour à tous
Tous les jours, on m'adresse une feuille nouvelle, de même format.
Je dois masquer un certain nombre de colonnes, non contiguës, qui n'ont
rien de commun.

Je le fais comme cela :
     Columns("AN:AN").EntireColumn.Hidden = True
     Columns("AF:AF").EntireColumn.Hidden = True
     Columns("AA:AA").EntireColumn.Hidden = True
     Columns("W:W").EntireColumn.Hidden = True
     Columns("S:U").EntireColumn.Hidden = True
     Columns("P:P").EntireColumn.Hidden = True
     Columns("F:F").EntireColumn.Hidden = True
     Columns("D:D").EntireColumn.Hidden = True

Cela fonctionne mais c'est assez lent, et lourd.
Y aurait-il moyen de faire plus rapide, un array serait-il une solution
et comment?

Merci
@+
J@@
J
Le #22521511
Bonour
Merci DanielCo, MichDenis, LSteph
Je vois tout cela tout à l'heure
Amicalement
J@@


Le 30/08/2010 02:07, LSteph a écrit :
Bonjour,
donc lescolonnes non contigues nommées mescols, pour dé../masquer

With [mescols].Columns.EntireColumn
.Hidden = Not .Hidden
End With

'LSteph

On 30 août, 04:19, "J@@"
Bonjour à tous
Tous les jours, on m'adresse une feuille nouvelle, de même format.
Je dois masquer un certain nombre de colonnes, non contiguës, qui n'ont
rien de commun.

Je le fais comme cela :
Columns("AN:AN").EntireColumn.Hidden = True
Columns("AF:AF").EntireColumn.Hidden = True
Columns("AA:AA").EntireColumn.Hidden = True
Columns("W:W").EntireColumn.Hidden = True
Columns("S:U").EntireColumn.Hidden = True
Columns("P:P").EntireColumn.Hidden = True
Columns("F:F").EntireColumn.Hidden = True
Columns("D:D").EntireColumn.Hidden = True

Cela fonctionne mais c'est assez lent, et lourd.
Y aurait-il moyen de faire plus rapide, un array serait-il une solution
et comment?

Merci
@+
J@@



J
Le #22523361
Merci encore Daniel, Denis & LSteph
Tout fonctionne, j'ai utilisé le code de Denis :-)
@+
J@@


Le 30/08/2010 00:20, michdenis a écrit :
M'inspirant de la solution de Daniel, tu pourrais aussi utiliser cette syntaxe

Sub test()
Dim ArCol(), Elt As Variant
ArCol = Array("AF:AF", "S:U") 'etc
For Each Elt In ArCol
Range(Elt).EntireColumn.Hidden = True
Next
End Sub
Publicité
Poster une réponse
Anonyme