Macro Excel pour mettre en forme du texte dans une cellule

Bonjour,

Dans le tableau ci-joint, je ne parviens pas à créer une macro pour mettre en forme du texte dans l'onglet Etats de Service du document.

Pour la colonne A, il faudrait que les numéraux ordinaux aient un exposant pour 1er, 2eme, 3eme, plutôt que 1er, 2eme, 3eme et aussi que la première ligne soit systématiquement en gras.

De même pour les deux premières lignes de la colonne B en gras.

Au final, seules les dernières lignes des cellules ne doivent pas être en gras si ça peut simplifier les choses.

Est-ce que quelqu'un pourrait m'aider ?

Je vous souhaite une agréable journée.

Bonjour,

Essayez ceci, l'action de cliquer sur le bouton "Import des données et mise en forme", comme son intitulé l'indique, importe les données de la feuille "Réglage" et les met en forme, comme demandé.

Cdlt

Bonjour,

J'ai dû apporter quelques adaptations, mais ça marche, très impressionnante, cette macro, merci beaucoup !

Je te souhaite une agréable journée.

Bonjour,

En voulant mettre à jour mon tableau, j'ai remarqué que la Macro ne fonctionnait plus et je ne comprends pas pourquoi.

Le tableau mis à jour est en pièce jointe.

Je vous souhaite une agréable journée,
Cordialement.

Bonjour,

En voulant mettre à jour mon tableau, j'ai remarqué que la Macro ne fonctionnait plus et je ne comprends pas pourquoi.

Dans le tableau d'origine, il y avait une valeur dans la colonne A de la feuille "Réglage", maintenant vous avez mis une formule qui renvoie rien du tout, il faudrait commencer par chercher de ce côté là.

Cdlt

Bonjour,

Chez moi, pas d'erreur car la référence est présente, donc ça ne vient pas de là. Je peux faire en sorte que cette colonne n'affiche pas d'erreur, c'est juste que le tableau de référence n'est plus là, donc ça bug.

Mais ça ne change rien au problème, voir en pièce jointe.

Je vous souhaite une agréable journée.

Bonjour,

Je veux bien vous croire mais, le code d'origine tient compte des valeurs de la colonne A, si elle est vide , aucune donnée ne remontera, par contre si elle est remplie, les données sont bien rapatriées. Exemple avec la vidéo, ci-dessous, dans un premier temps la colonne A de lal feuille "Réglage" est vide, après lancement de la macro, rien ne se passe, puis dans un second temps, elle est remplie avec une valeur incrémentée, après lancement de la macro , les valeurs sont importées dans la feuille "Etats de Service".

ciol

Votre code réorganisé:

Sub Mise_en_Forme_Colonnes_AB()
    Dim f1 As Worksheet, f2 As Worksheet
    Dim Trouve As Long, i As Long, NbCar As Long, DerLig_f2 As Long
    Application.ScreenUpdating = False
    Set f1 = Sheets("Etats de Service")
    Set f2 = Sheets("Réglage")
    With f1.Columns("A:B").Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 10
        .Bold = False
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row
    Range(f1.Cells(2, "A"), f1.Cells(DerLig_f2, "A")).FormulaR1C1 = "=IF(ISNUMBER(VLOOKUP(" & f2.Name & "!RC1," & f2.Name & "!C6:C7,1,FALSE)),VLOOKUP(" & f2.Name & "!RC1," & f2.Name & "!C6:C7,2,FALSE),"""")"
    Range(f1.Cells(2, "B"), f1.Cells(DerLig_f2, "B")).FormulaR1C1 = "=IF(ISNUMBER(VLOOKUP(" & f2.Name & "!RC1," & f2.Name & "!C6:C7,1,FALSE)),VLOOKUP(" & f2.Name & "!RC1," & f2.Name & "!C6:C8,3,FALSE),"""")"
    Range(f1.Cells(2, "B"), f1.Cells(DerLig_f2, "A")).Value = Range(f1.Cells(2, "A"), f1.Cells(DerLig_f2, "B")).Value
    For i = 2 To DerLig_f2
        Trouve = InStr(1, f1.Cells(i, "A"), "er service")
        NbCar = 2
        If Trouve = 0 Then
            Trouve = InStr(1, f1.Cells(i, "A"), "ème service")
            NbCar = 3
        End If
        f1.Cells(i, "A").Characters(Start:=Trouve, Length:=NbCar).Font.Superscript = True
    Next i
    f1.Columns(2).Font.Bold = False
    For i = 2 To DerLig_f2
        PosDerRetCar = InStrRev(f1.Cells(i, "B"), Chr(10), -1) 'Position du dernier renvoi à la ligne
        f1.Cells(i, "B").Characters(Start:=1, Length:=PosDerRetCar - 1).Font.Bold = True
    Next i
End Sub

Cdlt

Bonjour,

Je comprends mieux le problème de mon premier document, en effet.

Après implémentation de la macro modifiée, je n'ai toujours aucun résultat.

Je vous souhaite une agréable journée.

Montrez ce que vous avez fait

Bonjour,

J'ai simplement inséré la Macro que vous m'avez donnée dans la feuille correspondante du fichier que je vous ai fait parvenir, ça donne le résultat en pièce jointe et la macro ne donne aucun résultat, aucun message d'erreur, même :

Je vous souhaite une agréable journée.

Bonjour,

La macro correspondait au fichier initial, et on récupérait les données par rapport au chiffre situé en colonne A de la feuille "Réglage" et ce pour chaque ligne à récupérer. Dans votre nouveau fichier, il n'y a plus ces chiffres, donc la macro n'est plus adaptée.

Voici le fichier avec la macro modifiée:

Cdlt

Bonjour,

Désolée pour le temps d'attente, j'attendais d'être au travail pour expérimenter tout ça. Quoi qu'il en soit, la nouvelle macro ne fonctionnait toujours pas, mais suite à tes explications, j'ai reproduit la colonne de chiffres en cellule A afin de faire fonctionner l'ancienne Macro :D

Merci beaucoup, je te souhaite une agréable journée.

Rechercher des sujets similaires à "macro mettre forme texte"