Bonjour,
Je voudrais mettre en forme un tableau qui change de nom en permanence j'obtiens une erreur "Erreur d'exécution 9 l'indice n'appartient pas à la selection;
Dans un premier temps j'importe des données depuis un fichier HTML dans la feuille tickets
Ensuite je supprime la feuille suivi et je la recrée par une copie d'une feuille qui s'appelle "Tickets" .
Ensuite dans cette feuille "suivi",
Je ne sais pas comment modifier le code pour que je puisse appliquer la mise en forme quelque soit le nom du tableau.
J'espère que je suis claire.
Merci d'avance pour vos réponses
Cid ci-dessous le code;
Sub AddColumnCommentaire()
' Insertion de la colonne commentaires
Sheets("Suivi").Select
Range("D1").Select
Selection.ListObject.ListColumns.Add Position:=4
Range("D1").Select
ActiveCell.FormulaR1C1 = "Commentaires"
Range("D2").Select
Columns("D").ColumnWidth = 77.22
Sheets("Menu").Select
'Report des commentaires précédents
Sheets("Suivi").Select
Range("D2").Select
ActiveCell.FormulaR1C1 = "=INDEX(Hier!C[-2]:C,MATCH([@Clé],Hier!C[-2],0),3)"
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Copy des commentaires en valeur
Range("D2").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.ListObjects("Tickets4").TableStyle = "TableStyleMedium9" (c'est ici que le bât blesse)
Columns("D").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("E:E").Select
Selection.ColumnWidth = 13.22
Columns("F:F").Select
Selection.ColumnWidth = 12.78
Columns("G:G").Select
ActiveWindow.SmallScroll ToRight:=3
Selection.ColumnWidth = 11
MsgBox "Refresh Commentaires realized", vbInformation, "Refesh"
End Sub
Je voudrais mettre en forme un tableau qui change de nom en permanence j'obtiens une erreur "Erreur d'exécution 9 l'indice n'appartient pas à la selection;
Dans un premier temps j'importe des données depuis un fichier HTML dans la feuille tickets
Ensuite je supprime la feuille suivi et je la recrée par une copie d'une feuille qui s'appelle "Tickets" .
Ensuite dans cette feuille "suivi",
- j'ajoute une colonne "commentaires"
- puis j'importe les commentaires de la feuille nommé "hier" à l'aide des formules "index" et "equiv"
- Ensuite je voudrais appliquer à ce tableau la mise en forme : "TableStyleMedium9"
Je ne sais pas comment modifier le code pour que je puisse appliquer la mise en forme quelque soit le nom du tableau.
J'espère que je suis claire.
Merci d'avance pour vos réponses
Cid ci-dessous le code;
Sub AddColumnCommentaire()
' Insertion de la colonne commentaires
Sheets("Suivi").Select
Range("D1").Select
Selection.ListObject.ListColumns.Add Position:=4
Range("D1").Select
ActiveCell.FormulaR1C1 = "Commentaires"
Range("D2").Select
Columns("D").ColumnWidth = 77.22
Sheets("Menu").Select
'Report des commentaires précédents
Sheets("Suivi").Select
Range("D2").Select
ActiveCell.FormulaR1C1 = "=INDEX(Hier!C[-2]:C,MATCH([@Clé],Hier!C[-2],0),3)"
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Copy des commentaires en valeur
Range("D2").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.ListObjects("Tickets4").TableStyle = "TableStyleMedium9" (c'est ici que le bât blesse)
Columns("D").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("E:E").Select
Selection.ColumnWidth = 13.22
Columns("F:F").Select
Selection.ColumnWidth = 12.78
Columns("G:G").Select
ActiveWindow.SmallScroll ToRight:=3
Selection.ColumnWidth = 11
MsgBox "Refresh Commentaires realized", vbInformation, "Refesh"
End Sub
Pièces jointes
Dernière édition: