VBA Copier sans mise en forme conditionnelle [Résolu/Fermé]

Signaler
Messages postés
185
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
21 juin 2020
-
Messages postés
185
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
21 juin 2020
-
Bonjour,

J'ai enregistré la macro suivante:

ActiveSheet.Unprotect
Range("W2:AK502").Select
Selection.ClearContents
Range("D2:R502").AdvancedFilter Action:= _
xlFilterCopy, CopyToRange:=Range("W2:AK502"), Unique:=True
Range("W2:AK502").Select
ActiveWorkbook.Worksheets("Tableau").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tableau").Sort.SortFields.Add Key:=Range("Y2:Y502" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Tableau").Sort.SortFields.Add Key:=Range("W2:W502" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Tableau").Sort.SortFields.Add Key:=Range("X2:X502" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tableau").Sort
.SetRange Range("W2:AK502")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("D2:R502").Select
Selection.Copy
Range("W2").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.ScrollColumn = 14
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("S11").Select
ActiveWorkbook.Save
End Sub


Elle permet donc grace au filtre avancé de copier un tableau sans ses doublons et de faire un tri.
Par contre, cela apparait en blanc car la mise en page du tableau n'est pas copiée.
Donc, la macro fait aussi une copie de la mise en forme du 1er tableau vers le second.

Par contre je copie aussi la mise en forme conditionnelle et ça pose problème! Pourriez vous m'aider à modifier la macro svp?

Merci beaucoup!

Configuration: Windows / Firefox 63.0

3 réponses

Messages postés
591
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
19 juin 2020
48
re
joint un fichier exemple pour pouvoir bosser dessus

pour joindre ton fichier
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

dans le même style tu as https://mon-partage.fr/
Messages postés
185
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
21 juin 2020
1
https://www.cjoint.com/c/HKyopaeENRL

Il s'agit de la macro "Actualiser"

(Attention elle sauvegarde et verrouille la feuille)

J'aimerais qu'elle copie la mise en forme comme elle le fait, mais pas la mise en force conditionnelle

Merci beaucoup!
Messages postés
185
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
21 juin 2020
1
Il y a une chose qui serait peut être possible,

Sur la feuille il y a 3 mises en formes conditionnelles possibles: deux pour le premier tableau et une pour le deuxième tableau.

C'est possible de les gérer en VBA directement sur la feuille? comme ça, la copie de cellule ne changerait rien!
Messages postés
185
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
21 juin 2020
1
C'est dingue, je ne trouve aucun moyen de copier la mise en forme sans la MFC... Il suffirait de ça....
Messages postés
185
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
21 juin 2020
1
Ok j'ai trouvé la solution bêtement en créant un 3eme tableau dans une feuille masquée.

1er tableau copie ses valeurs sans doublons vers le 2eme tableau.
3eme tableau copie sa mise en forme (et mise en forme conditionnelle) vers le 2eme tableau, sans les valeurs.

Et le tour est joué :)