Mise en forme conditionnelle /nuance / plusieurs lignes

Bonjour a tous

Par avance pardon si ma demande vous parait ultra simple ou dej aposée... mais j'ai epluché Google de long en large et je ne trouve aucune solution...

Mon proble est simple

Un tableau Excel avec des colonne est des chiffres

Sur une ligne je sais faire une MEFC avec nuances de couleurs = pas de soucis

La ou je deviens fou... c'est quand j'essaye d'etirer la ligne mise en forme vers le bas pour "reproduire" la MEFC sur le reste des lignes

Ca produit un resultat mais qui prend en compte TOUTES les les cellules ...et non LIGNE PAR LIGNE

Donc il classe les cellules par couleurs... mais pas comme la premiere... (!)

Seule solution actuelle = copie la MEFC et la reproduire sur la ligne du dessous

Quand il y a 5 lignes ca va...

Quand il y en a 150... je peux y passer une heure

Et quand il y a 4 tableaux... bah je pleure

Alors si quelqu'un peut m'aider ca serait cool

Merci !!!

PS : je joint le fichier avec les 2 lignes bien mise en forme

Et le resultat prise de tete sur les lignes suivantes

Bonjour et sur le forum,

Malheureusement, je ne connais pas de solution permettant d'appliquer la mise en forme en une seule fois, en revanche, je peux facilement te faire une macro pour copier la mise en forme conditionnelle de façon quasiment instantanée.

Mais j'ai besoin d'une information supplémentaire pour ça, j'ai remarqué tu avais filtré des lignes, est-ce que tu ne veux appliquer ta mise en forme conditionnelle que sur les lignes qui sont affichées par le filtre, ou bien toutes les lignes?

Re,

Comme je n'ai pas eu de retour par rapport à la question, j'ai pris les devants, je te propose donc un programme que tu peux appeler avec le raccourci Ctrl + Shift(Maj) + M (comme Mise en forme), tu choisis ensuite la source de la mise en forme, tu choisis ensuite la zone que tu veux affecter, tâche de bien sélectionner toutes les cellules (en largeur aussi), tu peux choisir plusieurs zones pour cible, en revanche, pour la source, tu ne pourras choisir qu'une seule source, une cellule suffit d'ailleurs

Pour le choix de mettre la mise en forme sur les cellules masquées ou non, j'ai ajouté un simple popup qui demande via deux boutons si oui/non tu veux mettre en forme les cellules masquées par le filtre.

Il ne reste ensuite plus qu'à voir le résultat et le tour est joué

Le traitement est un tout petit peu long avec la mise en forme sur les cellules masquées sur le tableau de départ mais bon, ça devrait aller quand même

Voici le fichier:

Bonjour,

Avant de tester je n'avais jamais remarqué que cette mise en forme ne pouvait être copiée collée

Cochonner... de, comprend pas pourquoi microsoft à bloqué la séléction à =$C$4:$K$4

alors que pour copier on avait besoin de =$C4:$K4

Bonjour,

Avant de tester je n'avais jamais remarqué que cette mise en forme ne pouvait être copiée collée

Cochonner... de, comprend pas pourquoi microsoft à bloqué la séléction à =$C$4:$K$4

alors que pour copier on avait besoin de =$C4:$K4

Bonjour Xmenpl

Parce qu'il y a encore plein de choses mal fichues sur ce logiciel

Bonjour et mercdi pour ton aide

Malheuresement j'ai un message d'erreur en executant le programme...

Je te mets le visuel en pj

Re,

Comme je n'ai pas eu de retour par rapport à la question, j'ai pris les devants, je te propose donc un programme que tu peux appeler avec le raccourci Ctrl + Shift(Maj) + M (comme Mise en forme), tu choisis ensuite la source de la mise en forme, tu choisis ensuite la zone que tu veux affecter, tâche de bien sélectionner toutes les cellules (en largeur aussi), tu peux choisir plusieurs zones pour cible, en revanche, pour la source, tu ne pourras choisir qu'une seule source, une cellule suffit d'ailleurs

Pour le choix de mettre la mise en forme sur les cellules masquées ou non, j'ai ajouté un simple popup qui demande via deux boutons si oui/non tu veux mettre en forme les cellules masquées par le filtre.

Il ne reste ensuite plus qu'à voir le résultat et le tour est joué

Le traitement est un tout petit peu long avec la mise en forme sur les cellules masquées sur le tableau de départ mais bon, ça devrait aller quand même

Voici le fichier:

Copie de Annonceurs_BFMTV BFMB_FEV19 - Copie.xlsm

sans titre

Re,

Est-ce que tu pourrais me dire à quelle partie du programme ça plante? est-ce que tu as pu sélectionner tes plages de cellules et voir le popup avec les choix oui/non? quand ça plante, ça te surligne quelle ligne?

Salut

Tout fonctionne parfaitement jusqu'a ce que tu cliques OK pour lancer la commande

Et la tu as un ecran qui s'affaiche comme dans le screenshot

Re,

En effet c'est bizarre, Set Ws = RngCible.worksheet était devenu Ws = RngCible.worksheet, ce qui faisait que ça ne marchait plus, bizarre, je ne me souviens pas avoir supprimé ça

Je te retourne le fichier qui marche cette fois:

Merci 1000 fois Ca marche

En revanche, comment puis je me former a faire ce genre de chose pour mes futurs tableaux...?

Est ce atteignable ?

Bonjour,

C'est atteignable oui, personnellement j'ai appris sur le tas, sans passer par des formations, mais j'ai eu le temps de le faire, si tu veux apprendre les bases du codage, tu as des cours sur différents sites, je pense par exemple à ce site, dans la section "Cours VBA".

Après dans le code fournit, il n'y a pas grand chose en réalité:

Déclaration de variables:

Dim RngSource As Range, RngCible As Range, Zone As Range, ligne As Range
Dim Ws As Worksheet
Dim ColDep As Long, ColFin As Long
Dim Filtre As Boolean

Utilisation d'une fonction avec un paramètre:

Set RngSource = GetRange("Sélectionnez la plage de cellules qui servira de référence.")
Set RngCible = GetRange("Sélectionnez la plage de cellules où vous voulez copier la mise en forme.")

C'est une fonction qui retourne une plage de cellules, on utilise Set parce qu'on utilise des objets.

Utilisation de la fonction msgbox:

Filtre = MsgBox("Voulez-vous mettre en forme les cellules masquées par un filtre?", vbYesNo, "Choix") = vbNo

Conditions et Exit Sub:

If RngSource Is Nothing Or RngCible Is Nothing Then
    MsgBox "Au moins une des deux plages de cellules n'est pas renseignée, le programme ne peut continuer.", _
    vbInformation, "Information"
    Exit Sub
End If

Utilisation de l'objet application:

Application.ScreenUpdating = False

Manipulation des méthodes d'un objet Range:

RngCible.FormatConditions.Delete
RngSource.Copy

Boucle For sur des objets:

For Each Zone In RngCible.Areas
Next Zone

Encore l'utilisation d'un objet Range:

    ColDep = RngCible.Column
    ColFin = ColDep + RngCible.Columns.Count - 1
    Set Ws = RngCible.Worksheet

Boucle For avec objets:

    For Each ligne In Zone.Rows
    Next ligne

Condition avec "Or" (OU)

        If ligne.Hidden = False Or Not Filtre Then

Coller (généré par l'enregistreur de macro puis modifié pour utiliser des variables):

            Ws.Range(Ws.Cells(ligne.Row, ColDep), Ws.Cells(ligne.Row, ColFin)).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False

Utilisation d'une Fonction personnalisée:

Function GetRange(msg As String) As Range
On Error GoTo sortie
Set GetRange = Application.InputBox(msg, "Sélection", Type:=8)

'gestion d'erreur
Exit Function
sortie:
Set GetRange = Nothing
End Function

Euuuh, ouai, j'avais dis qu'il n'y avait pas grand chose, finalement tu as quand même pas mal d'informations dans le code

Ok

C'est du chinois mais je vais m'autoinformer

Merci !

C'est du chinois mais au moins tu as la liste des différentes choses à connaître pour faire ce code

Rechercher des sujets similaires à "mise forme conditionnelle nuance lignes"