GeoTrouvePas
XLDnaute Impliqué
Bonjour tout le monde,
Afin de prendre en compte le rajout d'une ou plusieurs lignes dans un plage nommée, je me suis fait la macro suivante qui redimensionne la plage, la colore correctement, refait les bordures etc...
Cette macro fonctionne à peu près mais j'aurai aimé l'améliorer un petit peu car elle pose quelques soucis :
1) Même en utilisant une plage nommée en argument, je suis obligé de rajouter le nom de la plage en second argument car je n'arrive pas à le récupérer
2) J'ai été obligé de rajouter ".Name.Delete" au début sinon le redimensionnement ne fonctionnait pas systématiquement.
3) Je suis obligé d'employer une gestion d'erreur car, lorsque j'utilise une référence absolue en argument, la macro plante sur le Name.Delete
Auriez vous une ou deux idées pour rendre ce code un peu plus propre ?
Je vous remercie par avance de votre attention.
Bonne journée !
Afin de prendre en compte le rajout d'une ou plusieurs lignes dans un plage nommée, je me suis fait la macro suivante qui redimensionne la plage, la colore correctement, refait les bordures etc...
Code:
Sub Actualiser_Plage(Plage_A_Actualiser As Range, Nom_Plage As String)
With Plage_A_Actualiser
On Error Resume Next
'Efface le nom
.Name.Delete
'Remet la couleur de fond
.Cells.Interior.Color = RGB(102, 102, 53)
'Compte le nombre de lignes
Compteur = 1
While .Item(Compteur + 1, 1) <> "" And .Item(Compteur + 2, 1) <> ""
Compteur = Compteur + 1
Wend
'Renomme, colore et refait les bordures du tableau
With .Resize(Compteur, .Columns.Count)
.Name = Nom_Plage
.Interior.Color = RGB(255, 255, 255)
End With
'Refait les bordures de l'entête du tableau
With .Resize(1, .Columns.Count)
'+ Gestion des bordures
End With
End With
End Sub
Cette macro fonctionne à peu près mais j'aurai aimé l'améliorer un petit peu car elle pose quelques soucis :
1) Même en utilisant une plage nommée en argument, je suis obligé de rajouter le nom de la plage en second argument car je n'arrive pas à le récupérer
2) J'ai été obligé de rajouter ".Name.Delete" au début sinon le redimensionnement ne fonctionnait pas systématiquement.
3) Je suis obligé d'employer une gestion d'erreur car, lorsque j'utilise une référence absolue en argument, la macro plante sur le Name.Delete
Auriez vous une ou deux idées pour rendre ce code un peu plus propre ?
Je vous remercie par avance de votre attention.
Bonne journée !