Macro incomplète (convertir plage en TABLEAU)
Résolu
ButteDuLac
Messages postés
534
Statut
Membre
-
ButteDuLac -
ButteDuLac -
Bonjour,
Dans un classeur, j'ai créé la macro suivante :
La macro « MaPlageSelect » se lit ensuite comme suit :
Sauf que la partie où il y a la mise en forme tableau (partie en gras dans le code), je ne voudrais pas que les références de cellules restent A7:L13, car elles vont varier d'un classeur à l'autre, en fonction des cellules sélectionnées par «MaPlageSelect».
Comme je fais pour que ce soit seulement la sélection créée par MaPlageSelect qui se mette en forme de tableau?
(J'espère avoir été assez claire et je vous remercie à l'avance!)
Dans un classeur, j'ai créé la macro suivante :
Sub TB_transport_stat()
'
' TB_transport_stat Macro
'
'
Cells.Select
Selection.UnMerge
Columns("D:F").Select
Selection.EntireColumn.Hidden = False
Range("E3").Select
Selection.Cut
Range("F3").Select
ActiveSheet.Paste
Columns("E:E").Select
Selection.Delete Shift:=xlToLeft
Columns("J:L").Select
Selection.EntireColumn.Hidden = False
MaPlageSelect
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$7:$L$13"), , xlNo).Name = _
"Tableau1"
Range("Tableau1#All").Select
ActiveSheet.ListObjects("Tableau1").TableStyle = "TableStyleMedium1"
Range("A7").Select
End Sub
La macro « MaPlageSelect » se lit ensuite comme suit :
Sub MaPlageSelect()
Dim maPlage As Range
Dim DernLigne As Long, DernColonne As Integer
'dernière ligne colonne A
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
'dernière colonne ligne 7
DernColonne = Cells(7, Cells.Columns.Count).End(xlToLeft).Column
Set maPlage = Range(Cells(7, 1), Cells(DernLigne, DernColonne))
maPlage.Select
End Sub
Sauf que la partie où il y a la mise en forme tableau (partie en gras dans le code), je ne voudrais pas que les références de cellules restent A7:L13, car elles vont varier d'un classeur à l'autre, en fonction des cellules sélectionnées par «MaPlageSelect».
Comme je fais pour que ce soit seulement la sélection créée par MaPlageSelect qui se mette en forme de tableau?
(J'espère avoir été assez claire et je vous remercie à l'avance!)
A voir également:
- Macro incomplète (convertir plage en TABLEAU)
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
Pour que la variable MaPlage puisse être utilisée par les 2 procédures, elle doit être déclaréee en tête du module, avant le premier Sub.
A+
Pour que la variable MaPlage puisse être utilisée par les 2 procédures, elle doit être déclaréee en tête du module, avant le premier Sub.
Dim MaPlage As Range
Sub TB_transport_stat()
Cells.UnMerge
Columns("D:F").EntireColumn.Hidden = False
Range("E3").Cut
Range("F3").Select
ActiveSheet.Paste
Columns("E:E").Delete Shift:=xlToLeft
Columns("J:L").EntireColumn.Hidden = False
MaPlageSelect
ActiveSheet.ListObjects.Add(xlSrcRange, MaPlage, , xlNo).Name = "Tableau1"
ActiveSheet.ListObjects("Tableau1").TableStyle = "TableStyleMedium1"
End Sub
Sub MaPlageSelect()
Dim DernLigne As Long, DernColonne As Integer
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
DernColonne = Cells(7, Cells.Columns.Count).End(xlToLeft).Column
Set MaPlage = Range(Cells(7, 1), Cells(DernLigne, DernColonne))
End Sub
A+
Merci, super!