web-dev-qa-db-fra.com

Macro Excel - Sélectionnez toutes les cellules avec les données et le format sous forme de tableau

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.

16
Janu

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
32
Dmitry Pavliv