XL 2K VBA, masquer des colonnes non contiguës, Array?
5 réponses
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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
DanielCo
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@@
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?
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
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
"J@@" a écrit dans le message de groupe de discussion : i5f4ga$n4t$ 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@@
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
"J@@" <kjg@hy.gg> a écrit dans le message de groupe de discussion : i5f4ga$n4t$1@speranza.aioe.org...
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?
"J@@" a écrit dans le message de groupe de discussion : i5f4ga$n4t$ 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
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@@" wrote:
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@@
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@@" <k...@hy.gg> wrote:
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?
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@@" wrote:
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
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@@" wrote:
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@@
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@@"<k...@hy.gg> wrote:
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?
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@@" wrote:
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
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
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