Bordure de cellule VBA

Résolu/Fermé
RaihanaTag Messages postés 17 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 28 mai 2016 - Modifié par pijaku le 17/12/2015 à 12:29
RaihanaTag Messages postés 17 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 28 mai 2016 - 17 déc. 2015 à 10:26
Bonjour,
J'essaie de tracer un tableau avec VBA , voici mon code :
 
Sub demandes() ' Contruction du tableau des demandes feuille 2
Worksheets(2).Cells(14 + nb, 2) = "Demandes:"
Worksheets(2).Cells(15 + nb, 3) = "Di"
Worksheets(2).Range("C" & 15 + nb).Interior.ColorIndex = 40
Worksheets(2).Range("D" & 15 + nb).Interior.ColorIndex = 15

Dim cellule As Range ' Construire les bordures
For Each cellule In Worksheets(2).Range(Cells(15 + nb, 3), Cells(15 + nb, 4 + nb))
    cellule.Borders.Weight = xlThin
    cellule.HorizontalAlignment = xlCenter
Next
End Sub

Avec nb la taille du tableau
Lors de l'execution ça génére erreur 1004 au niveau du " For each cellule"
J ai pas su y remedier j ai besoin de votre aide
Merci d'avance

3 réponses

ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
Modifié par ccm81 le 15/12/2015 à 20:01
Bonjour

Il te faut préciser la feuille dans laquelle sont définies les cellules
For Each cellule In Worksheets(2).Range(Worksheets(2).Cells(15 + nb, 3), Worksheets(2).Cells(15 + nb, 4 + nb)) 

ou mieux
Sub demandes() ' Contruction du tableau des demandes feuille 2
Dim cellule As Range ' Construire les bordures
With Worksheets(2)
.Cells(14 + nb, 2) = "Demandes:"
.Cells(15 + nb, 3) = "Di"
.Range("C" & 15 + nb).Interior.ColorIndex = 40
.Range("D" & 15 + nb).Interior.ColorIndex = 15
For Each cellule In .Range(.Cells(15 + nb, 3), .Cells(15 + nb, 4 + nb))
cellule.Borders.Weight = xlThin
cellule.HorizontalAlignment = xlCenter
Next cellule
End With
End Sub

RQ. La vaiable nb n'est pas affectée dans cette procédure ?

Cdlmnt
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
16 déc. 2015 à 10:30
Bonjour CCM, ca va ?

Tu peux peut-^tre éviter de boucler pour encadrer les cellules de la zone
With .Range(.Cells(15 + nb, 3), .Cells(15 + nb, 4 + nb))
.borders.weight=xlthin
.HorizontalAlignment = xlCenter
end with


a toi de voir ;o)
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
16 déc. 2015 à 11:49
Salut Michel,

Exact, et avec le temps gagné, on pourra aller boire l'apéro ;-)
A part ça tout va bien !

Bonne journée
0
RaihanaTag Messages postés 17 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 28 mai 2016
17 déc. 2015 à 10:26
Bonjour et merci pour votre aide
J ai découvert la connerie que je faisais tout le temps, en faite je ne peux pas lancer cette procédure sans que la feuille en question soit activée ( même avec le worksheets(2). )
Donc j ai ajouté cette instruction au début
Worksheets(2).activate et ça marche à merveille :)
0