Modification police dans tableau Excel avec VBA

Bonsoir à tout le forum,

Je bloque sur une macro qui parait pourtant simple à développer.

J'ai dans mon classeur principal, une feuille qui se nomme "Index". Dans cette feuille, il y a en colonne A de mon tableau "T_index" des liens hypertexte qui mènent aux différentes feuilles de mon classeur. Il y a aussi un bouton qui me permet d'exporter ce tableau dans un nouveau classeur et de supprimer les liens hypertexte présents en colonne A.

J'aimerais modifié la police de la colonne A du tableau T_index du nouveau classeur.

J'aimerais obtenir la police "Arial Black", taille 12, (comme sur les autres colonnes) il y a des erreurs dans mon code mais je pensais à ceci:

ActiveSheet.Range(T_index).Columns(1).Font
.Name = "Arial Black"
.Size = 12

Je poste mon fichier, cela sera plus facile pour vous aider. Merci à vous tous :)

Bonne soirée

JB

6jb-export.xlsm (155.78 Ko)

C'est bon j'ai trouvé !!

Désolé pour le dérangement :/

With Activesheet.ListObjects("T_index").ListColumns(1).DataBodyRange
 .Font.Name = "Arial Black"
 .Font.Size = 12
 .Font.ColorIndex = xlAutomatic
 End With

JB

Bonsoir Jean Baptiste, bonsoir le forum,

Ou, en gardant ton idée première :

With ActiveSheet.Range("T_index").Columns(1).Font
    .Name = "Arial Black"
    .Size = 12
End With
End Sub

Il manquait juste le With... End With et les guillemets autour de T_Index...

Merci beaucoup ThauThème, j'ai réussi à m'en sortir ! Je serai plus vigilent la prochaine fois :) C'est gentil d'avoir proposé en tout cas !

Par contre je bloque sur une macro que j'aimerais créer. Est-il possible de couper/coller une colonne dans un tableau structuré?

JB

Re,

Si j'ai bien compris, essaie ce genre de code (à adapter) :

Sub Macro1()
Dim O As Worksheet
Dim TS As ListObject

Set O = Worksheets("Feuil1")
Set TS = O.ListObjects(1)
TS.Range.Columns(2).Copy O.Range("E1")
TS.ListColumns(2).Delete
End Sub

Bonsoir à tous,

Merci pour ta réponse ThauThème, je galère à créer ma macro.

J'ai mis en Feuil1 le stade initial et en Feuil2 le stade final que j'aimerais obtenir.

Voici la macro que je pensais utiliser mais il y a un souci au moment d'ajouter une colonne:

Sub Macro1()
Dim O As Worksheet
Dim TS As ListObject

Set O = Worksheets("Feuil1")
Set TS = O.ListObjects(1)
TS.ListColumns(6).Add
TS.Range.Columns(10).Copy O.Range("F2")
TS.ListColumns(10).Delete
End Sub

Merci à celles et ceux qui pourront m'aider :)

Bonne soirée

JB

6tableau-s.xlsm (11.38 Ko)

Re,

En fait si tu veux juste déplacer une colonne :

Sub Macro1()
Dim O As Worksheet
Dim TS As ListObject

Set O = Worksheets("Feuil1")
Set TS = O.ListObjects(1)
TS.ListColumns(9).Range.Cut
TS.ListColumns(6).Range.Insert Shift:=xlToRight
End Sub

Super, ça fonctionne nickel et en plus c'est plus simple, merci beaucoup ThauThème :)

J'ai une question qui est hors sujet mais je ne comprends pas pourquoi la msgbox ne s'affiche pas si la date renseignée dans Textbox_date est inférieure à la date du jour? Avez-vous une piste s'il vous plait ? Si vous préférez, j'ouvre un nouveau post, pas de souci :)

If TextBox_Date Like "##/##/####" And IsDate(TextBox_Date.Value) Then
    Else
    MsgBox "Attention, saisissez une date d'expédition en respectant le format JJ/MM/AAAA.", vbExclamation, "Excel"
    TextBox_Date.SetFocus
    Exit Sub
    End If

      If IsDate(TextBox_Date.Value) >= Date Then
      Else
   rep = MsgBox("Attention, la date d'expédition renseignée (" & TextBox_Date & ") est antérieure à la date du jour." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Souhaitez vous la rectifier ?", vbYesNo + vbExclamation, "Excel")
    If rep = vbYes Then
         TextBox_Date.SetFocus
    Exit Sub
    End If
    End If

Un grand merci à vous tous :)

JB

Re,

Ça serait mieux que tu ouvres un nouveau post qui sera lu par beaucoup plus de monde. Pense à joindre le fichier qui va bien si tu veux qu'on puisse tester avant de répondre...

Pas de souci Thauthème, je comprends tout à fait !

Je clos ce sujet, encore un grand merci :)

Heu... Atends, j'ai trouvé :

Private Sub CommandButton1_Click()
If TextBox_Date Like "##/##/####" And IsDate(TextBox_Date.Value) Then
Else
    MsgBox "Attention, saisissez une date d'expédition en respectant le format JJ/MM/AAAA.", vbExclamation, "Excel"
        With TextBox_Date
            .SelStart = 0
            .SelLength = Len(.Value)
            .SetFocus
        End With
    Exit Sub
End If
If CDate(TextBox_Date.Value) >= Date Then
Else
    rep = MsgBox("Attention, la date d'expédition renseignée (" & TextBox_Date & ") est antérieure à la date du jour." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Souhaitez vous la rectifier ?", vbYesNo + vbExclamation, "Excel")
    If rep = vbYes Then
        With TextBox_Date
            .SelStart = 0
            .SelLength = Len(.Value)
            .SetFocus
        End With
        Exit Sub
    End If
End If
End Sub

Re,

C'est parfait, ça fonctionne à merveille ! Merci beaucoup ThauThème :) Vous êtes si réactifs sur ce forum, au top !

JB

Rechercher des sujets similaires à "modification police tableau vba"