Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

XL2K VBA, ajuster les largeurs de colonnes, encore array?

5 réponses
Avatar
J
Bonjour à tous
comment éviter d'écrire pleins de fois la même chose, quand j'ai des
colonnes à régler en largeur, sachant que souvent elles ont la même
largeur??

Columns("AQ:AQ").ColumnWidth = 35
Columns("AP:AP").ColumnWidth = 10
Columns("AO:AO").ColumnWidth = 10
Columns("AK:AK").ColumnWidth = 8
Columns("AJ:AJ").ColumnWidth = 8
Columns("AI:AI").ColumnWidth = 8
Columns("AM:AM").ColumnWidth = 10
Columns("AH:AH").ColumnWidth = 8
Columns("AG:AG").ColumnWidth = 8

Je pense encore à l'array (si vous me permettez cet à peu près), mais
sans savoir comme le mettre en œuvre.

Merci pour l'aide.
@+
J@@

5 réponses

Avatar
DanielCo
Bonjour.
Oui, array :

Dim arCol, arLarg, Col
arCol = Array("AG", "AH", "AM", "AI", "AJ", "AK", "AO", "AP")
arLarg = Array(8, 8, 10, 8, 8, 8, 10, 10)
For i = 0 To UBound(arCol)
Columns(arCol(i) & ":" & arCol(i)).ColumnWidth = arLarg(i)
Next i

Cordialement.
Daniel


Bonjour à tous
comment éviter d'écrire pleins de fois la même chose, quand j'ai des colonnes
à régler en largeur, sachant que souvent elles ont la même largeur??

Columns("AQ:AQ").ColumnWidth = 35
Columns("AP:AP").ColumnWidth = 10
Columns("AO:AO").ColumnWidth = 10
Columns("AK:AK").ColumnWidth = 8
Columns("AJ:AJ").ColumnWidth = 8
Columns("AI:AI").ColumnWidth = 8
Columns("AM:AM").ColumnWidth = 10
Columns("AH:AH").ColumnWidth = 8
Columns("AG:AG").ColumnWidth = 8

Je pense encore à l'array (si vous me permettez cet à peu près), mais sans
savoir comme le mettre en ½uvre.

Merci pour l'aide.
@+
J@@
Avatar
Jacquouille
Bonjour
Ne pourrais-tu déjà les regrouper par largeur identique?
Columns("AQ:AQ").ColumnWidth = 35
Columns("AP:AP;AO:AO;AM:AM").ColumnWidth = 10
Columns("AK:AK;AJ:AJ;AI:AI;AH:AH;AG:AG").ColumnWidth = 8


ou mieux, baptiser la plage des col 35 d'un nom, celles de 10 d'un autre et
celles de 8 d'un troisième nom. Non ?
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille (MPFE).

"J@@" a écrit dans le message de news:
i5f7r8$rtn$
Bonjour à tous
comment éviter d'écrire pleins de fois la même chose, quand j'ai des
colonnes à régler en largeur, sachant que souvent elles ont la même
largeur??

Columns("AQ:AQ").ColumnWidth = 35
Columns("AP:AP").ColumnWidth = 10
Columns("AO:AO").ColumnWidth = 10
Columns("AK:AK").ColumnWidth = 8
Columns("AJ:AJ").ColumnWidth = 8
Columns("AI:AI").ColumnWidth = 8
Columns("AM:AM").ColumnWidth = 10
Columns("AH:AH").ColumnWidth = 8
Columns("AG:AG").ColumnWidth = 8

Je pense encore à l'array (si vous me permettez cet à peu près), mais sans
savoir comme le mettre en œuvre.

Merci pour l'aide.
@+
J@@
Avatar
J
Bonjour
et merci DanielCo et Jacqouille
Je vois cela tout à l'heure
@+
J@@



Le 29/08/2010 23:42, Jacquouille a écrit :
Bonjour
Ne pourrais-tu déjà les regrouper par largeur identique?
Columns("AQ:AQ").ColumnWidth = 35
Columns("AP:AP;AO:AO;AM:AM").ColumnWidth = 10
Columns("AK:AK;AJ:AJ;AI:AI;AH:AH;AG:AG").ColumnWidth = 8


ou mieux, baptiser la plage des col 35 d'un nom, celles de 10 d'un autre et
celles de 8 d'un troisième nom. Non ?
Avatar
J
Au poil ton code.
Ton idée est bonne Jacquouille, mais j'ai une trop grande variété de
largeurs.
@+
J@@

Le 29/08/2010 23:39, DanielCo a écrit :
Oui, array :

Dim arCol, arLarg, Col
arCol = Array("AG", "AH", "AM", "AI", "AJ", "AK", "AO", "AP")
arLarg = Array(8, 8, 10, 8, 8, 8, 10, 10)
For i = 0 To UBound(arCol)
Columns(arCol(i) & ":" & arCol(i)).ColumnWidth = arLarg(i)
Next i

Cordialement.
Daniel

comment éviter d'écrire pleins de fois la même chose, quand j'ai des
colonnes à régler en largeur, sachant que souvent elles ont la même
largeur??

Columns("AQ:AQ").ColumnWidth = 35
Columns("AP:AP").ColumnWidth = 10
Columns("AO:AO").ColumnWidth = 10
Columns("AK:AK").ColumnWidth = 8
Columns("AJ:AJ").ColumnWidth = 8
Columns("AI:AI").ColumnWidth = 8
Columns("AM:AM").ColumnWidth = 10>
Avatar
michdenis
Bonjour,

Comme ceci, te permet de définir autant de colonne que tu désires :

Tu peux définir autant de Case que tu veux dans le Select Case

'-----------------------------------
Sub test()
Dim arCol(), Elt As Variant
arCol = Array("AG", "AH", "AM", "AI", "AJ", "AK", "AO", "AP")
With Worksheets("sheet1")
For Each Elt In arCol
Select Case Elt
Case "AG", "AH", "AI", "AJ", "AK"
.Columns(Elt).ColumnWidth = 8
Case "AM", "AO", "AP"
.Columns(Elt).ColumnWidth = 10
End Select
Next
End With
End Sub
'-----------------------------------

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


"J@@" a écrit dans le message de groupe de discussion : i5f7r8$rtn$
Bonjour à tous
comment éviter d'écrire pleins de fois la même chose, quand j'ai des
colonnes à régler en largeur, sachant que souvent elles ont la même
largeur??

Columns("AQ:AQ").ColumnWidth = 35
Columns("AP:AP").ColumnWidth = 10
Columns("AO:AO").ColumnWidth = 10
Columns("AK:AK").ColumnWidth = 8
Columns("AJ:AJ").ColumnWidth = 8
Columns("AI:AI").ColumnWidth = 8
Columns("AM:AM").ColumnWidth = 10
Columns("AH:AH").ColumnWidth = 8
Columns("AG:AG").ColumnWidth = 8

Je pense encore à l'array (si vous me permettez cet à peu près), mais
sans savoir comme le mettre en œuvre.

Merci pour l'aide.
@+
J@@