Microsoft 365 Conserver le format suite suppression MFC

AIr-V

XLDnaute Junior
Bonjour,

Etant débutant sur VBA, je reste bloqué sur le format de mes cellules qui disparait, je m'explique :

Suite à une MFC appliquée sur les cellules de ma feuille A en fonction des données de ma feuille B (cellules se remplissent en couleur dans la feuille A), je souhaite supprimer la feuille B mais je perds ma MFC et donc le remplissage de mes cellules (logique).
Aussi, existe-t-il un moyen sur Excel de pouvoir conserver cette MFC malgré la suppression de l'une des feuilles?
Ou peut-être passer par une reconnaissance des cellules mises sous couleur via la MFC puis de les remplir automatiquement via une autre couleur?

Je tourne un peu en rond à ce niveau. Merci par avance.
 

AIr-V

XLDnaute Junior
Oui, bien sûr, avec mes excuses.

Ci-joint un fichier exemple. Feuille A avec cellules conditionnées par rapport à la feuille B (compare tableau avec en rouge les différences)
Puis, après suppression de la feuille B, perte de la MFC.
 

Pièces jointes

  • Conserv_format_MFC.xlsm
    85.2 KB · Affichages: 10

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @AIr-V ,

Je ne suis pas certain de votre MFC.

En français (et non en langage Excel) que voulez faire avec votre MFC ?
  1. Colorer la ligne de A si au moins une des 4 cellules de la ligne de A est différente de la même ligne de B ?
  2. Ou bien colorer la ligne de A si seulement les deux colonnes A (celle de l’onglet A et celle de l'onglet B) sont différentes sans s'occuper des autre colonnes ?

A priori, la MFC de votre fichier suit la seconde option. Voir fichier joint ligne 3.
 

Pièces jointes

  • AIr-V- Conserv_format_MFC- v1.xlsm
    112.3 KB · Affichages: 3

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @AIr-V ,

Que la MFC soit correcte ou non, ça n'empêche pas de répondre à votre question initiale:

Voir le code suivant qui affecte à chaque cellule concernées par la MFC sa couleur de fond "en dur" issue de la MFC (la MFC est ensuite supprimée):
VB:
Sub compare()
Dim xcell As Range, CouleurMFC, rep

With Sheets("A").Range("a1").CurrentRegion   'avec la zone en cours de la cellule a1
   .FormatConditions.Delete
   .FormatConditions.Add Type:=xlExpression, Formula1:="=A1<>B!A1"
    With .FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 10198015
        .TintAndShade = 0
    End With
    ' Pour chaque cellule de la plage de la feuille A
    For Each xcell In .Cells
      If xcell.Row > 1 Then
         'on ne touche qu'aux lignes de numéro >=2
         ' on recherche la couleur de fond du à la MFC
         CouleurMFC = xcell.DisplayFormat.Interior.Color
         ' on applique cette couleur "en dur" à la cellule
         xcell.Interior.Color = CouleurMFC
      End If
   Next xcell
   ' On enlève la MFC de la feuille A
   .FormatConditions.Delete
   rep = MsgBox("Fin du coloriage en dur d'après la MFC" & vbLf & _
      "La MFC de la feuille A a été supprimée" & vbLf & vbLf & _
      "Supprimer la Feuille B et renommer A en B ?", vbQuestion + vbYesNo + vbDefaultButton2)
   If rep <> vbYes Then Exit Sub    'on arrête si l'utilisateur le veut
   ' Renommage des onglets'
   Application.DisplayAlerts = False
   Sheets("B").Delete
   Application.DisplayAlerts = True
   Sheets("A").Name = "B"
End With
End Sub
 

Pièces jointes

  • AIr-V- Conserv_format_MFC- v2a.xlsm
    96.5 KB · Affichages: 3
Dernière édition:

AIr-V

XLDnaute Junior
En fait idéalement j'aimerais uniquement colorer la cellule de la feuille A qui n'est pas égale à la cellule de la feuille B.

Exemple :
si cellule A9 feuille A = cellule A9 feuille B -> pas de remplissage couleur
si cellule A9 feuille A différente de cellule A9 feuille B -> remplissage couleur rouge de la cellule A9

si cellule C60 feuille A = cellule C60 feuille B -> pas de remplissage couleur
si cellule C60 feuille A différente de cellule C60 feuille B -> remplissage couleur rouge de la cellule C60

Sauf qu'après je souhaite supprimer la feuille B et là patatrac, je perds le remplissage des cellules dans ma feuille A

Désolé si je n'étais pas assez précis dans le descriptif.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

J'ai modifié le fichier avec la MFC qui convient.
J'ai donc aussi modifié le code et le fichier du message #5.

Obligatoirement prendre cette nouvelle version v2a (la v2 avait un souci:mad:)
 

Pièces jointes

  • AIr-V- Conserv_format_MFC- v2a.xlsm
    96.5 KB · Affichages: 8
Dernière édition:

AIr-V

XLDnaute Junior
Salut mapomme,

Je pensais t'avoir répondu depuis, tout fonctionne parfaitement bien. J'ai réussi à m'aider de ton fichier et à intégrer les bouts de code dans mon programme pour le rendre opérationnel.

Top en tout cas, mille mercis pour ton aide si précieuse, passe une très belle journée. :)
 

Discussions similaires

Réponses
4
Affichages
180
Réponses
2
Affichages
381

Statistiques des forums

Discussions
312 113
Messages
2 085 420
Membres
102 886
dernier inscrit
eurlece