VBA - Conserver le contenu et le format de cellules

Bonjour,

la question se pose par rapport au document excel joint.

L'onglet 1 est l'onglet de reporting permettant d'avoir une meilleure vision de suivi d'actions. L'onglet 2 est la base de référence (j'ai réduit les colonnes et lignes pour plus de clarté).

Je souhaite (par la "Ref Test") récupérer les informations "Intitulé" "Résultat 2018" "Fréquence" "Testeur" "Commentaires" depuis la base de référence.

Petit dilemne (sinon recherchev suffirait...), j'ai besoin de récupérer également le format des cellules :

Colonne K -> la police en Gras sur certains mots

Colonne L -> la couleur de la cellule.

Si quelqu'un a une solution, je suis preneur, sachant que le fichier initial a bien plus de lignes, sinon un simple copié collé suffirait...

Ou si je peux être redirigé sur un forum qui a la solution... J'ai cherché mais pas trouvé de réponse.

Merci d'avance pour votre temps,

Bonne journée

Bonjour,

Pour le gras de la cellule, à part passer par du VBA, j'ai du mal à voir comment tu pourrais faire, en revanche pour la couleur, il semble que ce que tu veux faire c'est de la mise en forme conditionnelle, il suffit que dans une formule de mise en forme conditionnelle, tu ailles chercher la valeur : 100% ou autre, et que tu donnes une couleur à ta cellule en fonction.

J'espère avoir pu t'orienter un peu...

Bonjour,

Comme dit Ausecour ( ) dans le résultat d'une formule il est impossible de mettre en gras que certains caractères donc, sans VBA pas de salut !

Voici ton classeur avec des RechercheV(), des MFC et une procédure événementielle Change() pour la récup des mots en gras :

Bonjour Theze

Merci d'avoir fournit ces informations

Merci d'avoir fournit ces informations

c'est toujours avec plaisir

Merci beaucoup Theze pour ce travail !

petite question subsidiaire, est ce qu'il existe une procédure VBA pour la couleur des cellules ? sans avoir à mettre une MFC sur la Feuil1 ?

Encore merci

Tu supprimes les MFC et tu remplaces le code qui se trouve dans le module de la feuille par celui-ci :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim I As Integer

    If Target.Count > 1 Then Exit Sub
    If Target.Column > 1 Then Exit Sub

    With Worksheets("Feuil2")

        Application.EnableEvents = False
        Target.Offset(, 5).Value = .Cells(Target.Row, 11).Value
        Application.EnableEvents = True

        Target.Offset(, 2).Interior.Color = .Cells(Target.Row, 12).Interior.Color

        For I = 1 To Len(.Cells(Target.Row, 11).Value)

            Target.Offset(, 5).Characters(I, 1).Font.Bold = .Cells(Target.Row, 11).Characters(I, 1).Font.Bold

        Next I

    End With

End Sub

C'est top merci!

je viens juste de voir qu'il y a juste un petit (mais alors tout petit hein) problème :

les infos récupérées lors de l'exécution de la procédure VBA ne sont pas les infos correspondantes à la base de référence...

exemple :

100201 CI L1N1 001 => le commentaire qui apparaît est pas le bon. Il devrait y avoir "11/12/18 (VDN) - Se poser la question des caméras au poste" mais c'est "11/12/18 (VDN) - Il faut contrôler tous les types de Gardes" qui apparaît.

tu as une solution ?

Je t'en demande déjà beaucoup... merci pour le boulot fait !!

Idem pour les couleurs malheureusement . . .

Bonjour,

Ok, dans ce cas, il faut faire une recherche avec Find()

Je regarde ça ce soir car je suis sur mon iPhone !

Bonjour,

Le code en ayant supprimé les RechercheV() :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Plage As Range
    Dim Cel As Range
    Dim I As Integer

    If Target.Count > 1 Then Exit Sub
    If Target.Column > 1 Then Exit Sub

    With Worksheets("Feuil2")

        Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
        Set Cel = Plage.Find(Target.Value, , xlValues, xlWhole)

        If Not Cel Is Nothing Then

            Application.EnableEvents = False

            Range(Target.Offset(, 1), Target.Offset(, 5)).Value = ""
            Target.Offset(, 1).Value = Cel.Offset(, 1).Value
            Target.Offset(, 2).Value = Cel.Offset(, 11).Value
            Target.Offset(, 3).Value = Cel.Offset(, 4).Value
            Target.Offset(, 4).Value = Cel.Offset(, 3).Value
            Target.Offset(, 5).Value = Cel.Offset(, 10).Value

            Application.EnableEvents = True

            Range(Target.Offset(, 1), Target.Offset(, 5)).Font.Bold = False

            Target.Offset(, 2).Interior.Color = Cel.Offset(, 11).Interior.Color

            For I = 1 To Len(Cel.Offset(, 10).Value)

                Target.Offset(, 5).Characters(I, 1).Font.Bold = Cel.Offset(, 10).Characters(I, 1).Font.Bold

            Next I

        End If

    End With

End Sub

OK merci de ton temps en tout cas

Rechercher des sujets similaires à "vba conserver contenu format"