Cells.. [Résolu]

Signaler
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011
-
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011
-
Bonjour,

J'aimerai utiliser la propriété
With Selection.Borders(xlEdgeLeft)
.Weight = xlMedium
End With

pour une mise en forme de mes cellules. Il faut donc selectionner la plage de cellules souhaités
Range("L5:L8").Select
With Selection.Borders(xlEdgeLeft)
.Weight = xlMedium
End With

LE PROBLEME est que ma plage n'est jamais la même, il faut donc que j'utilise la propriété
"Cells(x,y)"

Donc j'ai pensé à utiliser une boucle FOR. LA macro se compile mais le résultat donné n'est pas celui souhaité
Dim tour As Integer

For tour Cells(5, 12) To Cells(cellule, 12) Step 1 'cellule 8
With Selection.Borders(xlEdgeLeft)
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.Weight = xlMedium
End With
Next tour

merci

5 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
non, ne boucle pas sur les adresses de cellules !

Dim tour As Integer
For tour = 1 To 5 Step 1 '<--- dans ton cas le step ne sert a rien mais ne posera pas de probleme non plus, donc tu peux le laisser
                With Cells(tour,12)
                          .Borders(xlEdgeLeft).Weight = xlMedium
                          .Borders(xlEdgeRight).Weight = xlMedium    
                End With
Next tour

A+
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

Bonjour,

J'aimerai utiliser la propriété
With Selection.Borders(xlEdgeLeft)
.Weight = xlMedium
End With

pour une mise en forme de mes cellules. Il faut donc selectionner la plage de cellules souhaités
Range("L5:L8").Select
With Selection.Borders(xlEdgeLeft)
.Weight = xlMedium
End With

LE PROBLEME est que ma plage n'est jamais la même, il faut donc que j'utilise la propriété
"Cells(x,y)"

Donc j'ai pensé à utiliser une boucle FOR. LA macro se compile mais le résultat donné n'est pas celui souhaité
Dim tour As Integer

For tour Cells(5, 12) To Cells(cellule, 12) Step 1 'cellule 8
With Selection.Borders(xlEdgeLeft)
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.Weight = xlMedium
End With
Next tour

merci
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

MAIS Zuttttttttt

J'aimerai utiliser la propriété
With Selection.Borders(xlEdgeLeft)
    .Weight = xlMedium
End With

pour une mise en forme de mes cellules. Il faut donc selectionner la plage de cellules souhaités
Range("L1:L4").Select
With Selection.Borders(xlEdgeLeft)
    .Weight = xlMedium
End With

LE PROBLEME est que ma plage n'est jamais la même, il faut donc que j'utilise la propriété
"Cells(x,y)"

Donc j'ai pensé à utiliser une boucle FOR. LA macro se compile mais le résultat donné n'est pas celui souhaité

Dim tour As Integer
For tour = Cells(1, 12) To Cells(5, 12) Step 1
                With Selection.Borders(xlEdgeLeft)
                          .Weight = xlMedium
                End With
                With Selection.Borders(xlEdgeRight)
                        .Weight = xlMedium
                End With
Next tour
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Passer par .Select et ensuite faire with .selection est dans 99% des cas inutile et energivors...

Comme [auteur/BIGFISHLEVRAI/510670.aspx bigfish_le vrai]l'a indiquer il est preferable de passer directement par ton range... with cells(x,y)

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Messages postés
152
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
20 novembre 2011

D'accord,
Merci votre macro fonctionne correctement
@+
JD