Bonjour,
je réalise actuellement un tableau dans l'idée de faire l'état des lieux de bâtiments pour différents projets.
Étant donné que chaque projet à un nombre des bâtiments différents et très variables, j'ai fait un petit code qui me permet d'avoir le nombre exact de ligne dans mon tableau en rentrant le nombre de bâtiments dans une cellule. J'aimerais pouvoir mettre une bordure épaisse autour du tableau mais comme le nombre de lignes varie d'un projet à l'autre je ne sais pas trop comment m'y prendre...
J'ai essayé quelque chose sans succès, voici le code que j'ai fait pour le moment :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Byte
If Not Application.Intersect(Target, Range("N3")) Is Nothing And IsNumeric(Range("N3")) Then 'Si la valeur en N3 est numérique et seule la valeur change est N3 alors
Application.EnableEvents = False 'On désactive les procédures évenementielles (évite boucle infinie)
Range("B7:O100").ClearFormats
Range(Cells(7, 4), Cells(Application.Max(Application.Max(7, Cells(Rows.Count, 4).End(xlUp).Row)), 15)).Clear 'On nettoie la plage L7C4:LMAXC15 où LMAX est la dernière ligne pleine de la colonne 15
Range("D7:O7").Copy 'On copie la plage D7:O7
For I = 1 To Range("N3") 'Pour I = 1 à la valeur de N3
Cells(6 + I, 4).PasteSpecial 'On colle la plage à partir de la cellule de la cellule L6+IC4
Cells(6 + I, 4) = I 'On inscrit le numéro du bâtiment dans la cellule L6+IC4
Range(Cells(6, 2), Cells(6 + I + 1, 2)).Interior.Color = RGB(0, 153, 153)
Range(Cells(6, 4), Cells(6 + I, 14)).BorderAround Weight:=xlMedium
Next I 'On boucle sur le I suivant
Application.CutCopyMode = False 'On vide le presse papier
Application.EnableEvents = True 'On réactive les procédures évenementielles (si M3 rechange)
End If
End Sub
Merci d'avance pour votre aide.
PS: je souhaiterais aussi griser une ligne sur deux dans mon tableau, j'ai commencé à regarder rapidement mais je ne trouve rien de bien intéressant. Si vous avez des idées je suis preneur.
PPS: Je suis une bille en code ;)