Copier les couleurs de police

Amandes

XLDnaute Nouveau
Bonjour à tous,

Nous avons rencontré dans excel un problème assez gênant : nous avons un méga fichier de planning, avec dans une même cellule, des polices et des couleurs différentes. L'autre jour, un utilisateur a eu un message d'erreur à la fermeture du fichier, mais il a fermé, et quand on l'a ouvert le lendemain (le fichier, pas l'utilisateur ;-) ), les polices avaient été modifiées et les couleurs changées. Super gênant, car les couleurs sont super codifiées.
Sans attendre la récup de la sauvegarde, un autre utilisateur a fait des modifs sur le fichier ; puis j'ai récupéré l'ancien fichier.
Bref, maintenant, nous avons un fichier A avec la mauvaise mise en forme et les bonnes valeurs, et un fichier B avec la bonne mise en forme et les mauvaises valeurs.
Chaque fichier comporte 10 onglets de 300 lignes et 50 colonnes environs.

J'ai donc fait un fichier C qui compare chaque cellule et indique celles qui sont bonnes et celles qu'il faut modifier.

Je voudrais donc, dans un quatrième fichier, tester pour chaque cellule la valeur de la cellule du fichier C correspondante :
si la valeur de C = "diff, mettre la valeur de A, sinon mettre la valeur de B.

Après cela, je ferai un copier coller spécial du format, et j'aurais tout bon... sauf pour les caractères, je n'arrive à récupérer ni les polices ni les couleurs...

Est-ce que quelqu'un aurait une idée ?

Merci beaucoup et beau soleil à tous !
 

Staple1600

XLDnaute Barbatruc
Re : Copier les couleurs de police

Bonjour et bienvenue


Es-tu à l'aise avec les macros, le VBA ?

Voici un exemple simple de ce qui être fait avec une macro

1) Formates une cellue de ton choix
Puis éxécutes la macro ci-dessous

(Voir ici comment faire)
Code:
Sub a()
Dim dp$
dp = "Police :" & vbTab & ActiveCell.Font.Name & vbLf
dp = dp & "Taille :" & vbTab & ActiveCell.Font.Size & vbLf
dp = dp & "Couleur :" & vbTab & ActiveCell.Font.ColorIndex & vbLf
dp = dp & "Style :" & vbTab & ActiveCell.Font.FontStyle & vbLf
MsgBox dp
End Sub
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Copier les couleurs de police

Bonjour Amandes et bienvenue :),
J'ai une bonne et une mauvaise nouvelle pour toi :p :
La bonne, c'est qu'il est possible de vérifier, voici par exemple pour copier la mise en forme de A3 en B3
Code:
Sub test()
Dim I As Integer
For I = 1 To Application.WorksheetFunction.Max(Len(Range("A3")), Len(Range("B3")))
With Range("B3").Characters(I, 1).Font
    .Name = Range("A3").Characters(I, 1).Font.Name
    .Size = Range("A3").Characters(I, 1).Font.Size
    .Color = Range("A3").Characters(I, 1).Font.Color
    .Bold = Range("A3").Characters(I, 1).Font.Bold
End With
Next I
End Sub
La mauvaise, c'est que pour que ça fonctionne, il faudrais que le texte soit identique, car
donnera
ce qui n'est pas ce que tu veux à mon avis :rolleyes:...
Sinon, si tout est réellement hyper codifié, tu peux essayer de passer par
Code:
InStr(1, Range("B3"), "RTT", vbTextCompare)
pour déterminer l'emplacement de RTT et traiter les 3 caractères avec
Code:
With Range("B3").Characters(InStr(...), 3).Font
Bon courage :cool:
Ajout : Salut Jean-Marie, je suis pas sûr que tu sois dans la bonne direction :rolleyes:...
 

Discussions similaires

Statistiques des forums

Discussions
312 279
Messages
2 086 722
Membres
103 378
dernier inscrit
phdrouart