Préserver la mise en forme conditionnelle sur le copier-coller


4

J'essaie d'aligner des données provenant de différentes sources pour savoir exactement quels sont les domaines qu'ils ont en commun et ceux qu'ils ne possèdent pas. Pour faciliter la visualisation des lignes, j'ai configuré une règle de mise en forme conditionnelle comme celle-ci:

Règle:

=MOD(ROW(),2)=0

S'applique à:

=$1:$1048576

Action:

Turn Green

Cela fonctionne très bien… jusqu'à ce que je coupe et colle un bloc de cellules dans une colonne ou une autre. Le "copier-coller intelligent" d'Excel casse tout, soit en dupliquant des règles, soit en supprimant des sections de la région, et je dois corriger à nouveau la mise en forme conditionnelle. Comment puis-je déplacer les données sans changer les règles de formatage conventionnelles?


Réponses:


3

J'ai réussi à trouver une solution, j'ai enregistré cette macro:

Sub FomattingRules()
'
' FomattingRules Macro
'
' Keyboard Shortcut: Ctrl+e
'
    Cells.Select
    Cells.FormatConditions.Delete

    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=MOD(ROW(),2)=0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.599963377788629
    End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub

Techniquement, cela fonctionne, mais je préférerais trouver une solution qui ne nécessite pas que j'appuie sur ctrl + e de temps en temps. Mais c'est mieux que de réinitialiser les règles à la main, je suppose.


1

Il n'y a pas de bon moyen de contourner cela. Je recommande de faire Copier + Coller les valeurs, puis de supprimer le contenu des cellules d'origine. Cela laissera toute la mise en forme inchangée, mais le contenu de la cellule sera déplacé avec succès. C'est un peu fastidieux, mais votre autre option est de refaire la mise en forme conditionnelle chaque fois que vous coupez et collez. Vous décidez qui est moins de travail.


Étant donné ma macro, je pense que cela représente moins de travail. Mais merci de confirmer qu'il n'y a pas de bonne façon de faire ça!
durron597

@ durron597 Je suis d'accord. Je voulais juste partager une alternative. Ma suggestion préserve toutes les mises en forme conditionnelles. Bien que le vôtre fonctionne totalement pour le PO, d’autres peuvent ne pas être heureux que la macro supprime TOUTES les mises en forme conditionnelles, puis applique uniquement celle qui est intégrée à la macro. Juste différent.
irockyoursocks

1

N'ayant pas le talent d'un programmeur comme certains d'entre vous, j'ai résolu le problème en un court processus en deux étapes. Tout d'abord, j'ai créé une ligne de données supplémentaire, séparée du champ de données sur lequel je travaille pour mon projet. Je me suis assuré que cette ligne de données présente le formatage conditionnel correct que je souhaite utiliser dans tout le champ de données. Pour plus de commodité, j'ai intitulé cette ligne "Standard".

Ensuite, je sélectionne simplement la ligne "Standard" en mettant en surbrillance toutes les cellules dont la formule doit être copiée. Troisièmement, j'utilise la fonction "peintre de format". Je clique sur "Format Painter" (coin supérieur gauche de l'écran ci-dessous Couper et copier), puis met en surbrillance les cellules pour lesquelles je souhaite que la formule corresponde à la formule conservée dans la ligne "Standard".

Ce n'est pas automatique, mais une fois que vous avez créé la ligne "Standard" en préservant la mise en forme conditionnelle que vous souhaitez utiliser, il est très facile de l'appliquer même à un très grand champ de données en seulement deux étapes.


0

J'ai trouvé une nouvelle façon de faire ça!

Vous verrouillez les cellules formatées conditionnellement. Lorsque vous coupez et collez, la mise en forme conditionnelle reste la même!


5
Félicitations pour votre découverte. Pouvez-vous modifier votre réponse pour partager les détails de la procédure de verrouillage des cellules formatées conditionnellement?
Fixer1234

Je serais susceptible d'upvoter et même d'accepter cette réponse si vous la modifiez comme décrit par @ fixer1234
durron597

-1

J'ai eu le même problème et j'ai trouvé une petite solution de contournement - peut-être utilisable pour vous:

Au lieu de copier / coller : marquez la dernière ligne / colonne (ou plage) et utilisez l'action Remplir / Remplir à droite (raccourci: strg+ </ strg+ >). Ensuite, le formatage est également transféré.

Cela peut également être fait avec macro, c'est-à-dire pour une plage de lignes:

Range("D2:D15").Select
Selection.FillDown

Au lieu de couper-coller : sélectionnez la ligne ou la colonne et déplacez-la en déplaçant le curseur jusqu'au bord de la sélection (le curseur en forme de croix avec une flèche apparaît) et faites glisser la ligne / colonne incl. en appuyant SHIFT. Alors ce n’est pas un copier / coller classique, mais émouvant. La mise en forme de la condition doit être conservée.


1
FYI: Strg est Ctrl dans la mise en page allemande. Et le raccourci pour remplir vers le bas / remplir à droite est respectivement
Ctrl

1
Remplir vers le bas / droite n'est pas un bon substitut pour couper + coller, et glisser-déplacer déplace également ma mise en forme conditionnelle
Dan Cecile

-1

Le verrouillage des cellules n'est pas une solution, testé et ne fonctionne pas!

Si vous collez avec "Collage spécial - pas de formatage", les cellules déjà formatées ne seront pas cassées et vous ne craindrez pas que l'utilisateur doive activer des macros pour corriger le formatage. Solution facile / solution de contournement pour les solutions déjà déployées!


En quoi cela diffère-t-il de la réponse de irockyoursocks?
durron597

C'est différent car j'encourage l'utilisation de PASTE SPECIAL-No Formatting. ce que irockyoursocks ne mentionne pas. DÉTAILS!
user703269

-1

Ceci est très inélégant, mais aussi très rapide, et semble fonctionner parfaitement aussi loin que je peux dire ...

Copiez vos cellules au format conditionnel, collez-les dans un document Word, copiez les cellules du document Word, collez-les dans la feuille Excel cible.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.