Est-il possible d'écrire une macro qui peut formater un tableau à partir de n'importe quelle sélection active? Par exemple, j'ai une macro qui fera simplement une sélection Ctrl + Maj + Fin de plage. Après cela, j'aimerais que la macro puisse formater la plage sélectionnée sous forme de tableau, mais lorsque j'enregistrer cette action dans VBA, elle utilisera les adresses de plage, qui ne seront pas toujours les mêmes d'une feuille à l'autre.
Sub A_SelectAllMakeTable()
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$AO$2959"), , xlYes).Name _
= "Table1"
Range("A1:AO2959").Select
ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleMedium15"
End Sub
Merci d'avance.
Essayez celui-ci pour la sélection actuelle:
Sub A_SelectAllMakeTable2()
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)
tbl.TableStyle = "TableStyleMedium15"
End Sub
ou l'équivalent de votre macro (pour la sélection Ctrl + Maj + Fin de plage):
Sub A_SelectAllMakeTable()
Dim tbl As ListObject
Dim rng As Range
Set rng = Range(Range("A1"), Range("A1").SpecialCells(xlLastCell))
Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, rng, , xlYes)
tbl.TableStyle = "TableStyleMedium15"
End Sub