Colorié identiquemnt et automatiquement une cellule remplie de nombre en fct [Résolu]

Signaler
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020
-
Frenchie83
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
-
bonsoir a tous
je ne trouve pas ma réponse dans les forums
voila
j'ai une ligne de 5 cellules qui sont remplis de nombres variables et coloriés de 2 couleurs qui peuvent s'inverser
ces nombres peuvent d'une part changer de valeurs et de couleurs(2 le jaune et le bleu) un jour une cellule peut être jaune et le lendemain bleue
je veux reporter sur une ligne identique et bien sûr automatiquement la valeur et la couleur de ces 5 cellules sur une autre ligne
Dans les deux cas elles sont jointive
la ligne d'origine est B72:F72
celle recopiée est ND3:NH3
je suis preneur soit MFC ou VBA
merci a tous


vous êtes super!
merci à tous

9 réponses

Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263
La macro se lance automatiquement au changement de valeur d'une cellule, pour cela il faut que le code VBA soit copié comme dit précédemment dans le module de la feuille, exemple ci-dessous


De plus, suite à votre dernier post, je me suis aperçu que j'avais inversé les lignes, voici la modif
Private Sub Worksheet_Change1(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, Range("B72:F72")) Is Nothing Then
        Range("B72:F72").Copy Range("ND3:NH3")
    End If
    Application.EnableEvents = True
End Sub


Quant à votre nouvelle problématique, il serait intéressant de connaître les formules utilisées pour l'application des MFC pour pouvoir ainsi les récupérer et appliquer les couleurs à la colonne MX
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263
Je dois m'absenter, mais la solution idéale et simple de surcroit pour votre dernier problème est de faire une copie de la colonne MX et de la coller dans une autre feuille.
jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

j'ai créé une colonne OA
dans le VBA j'ai tout remplacé
Range("OA10:OA62").ClearContents
Range("OA10:OA62").FormatConditions.Delete
For i = 2 To 6
Set v = Range("NZ10:NZ62").Find(Cells(72, i), LookIn:=xlValues, lookat:=xlWhole)
If Not v Is Nothing Then
Cells(72, i).Copy Cells(v.Row, "OA")
End If
mes cellules se créent
je vais faire la MFC et se sera tout bon
par contre ne risque t'il pas d'y avoir interférence avec la première installée
je supprime la partie concernée ND3:NH3
un grand merci a toi
bon WE
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263
Bonjour,

Voici le fichier avec les modifications suivantes:
-A chaque clic sur le bouton "Sauvegarder", une copie du tableau de la colonne MX est envoyée dans la feuille 2, avec conservation de la date en première ligne du jour de la sauvegarde.
-Les couleurs sont reproduites à l'identique MFC ou pas.

le fichier
https://mon-partage.fr/f/IQnMn4iT/

le code utilisé
Dim Shf1 As Worksheet, Shf2 As Worksheet
Dim DerCol_f2 As Long

Sub Couleurs_et_Valeurs()
    Application.ScreenUpdating = False
    Range("B72:F72").Copy Range("ND3:NH3")
    Range("MX10:MX62").ClearContents
    Range("MX10:MX62").FormatConditions.Delete
    For i = 2 To 6
        Set v = Range("MW10:MW62").Find(Cells(72, i), LookIn:=xlValues, lookat:=xlWhole)
        If Not v Is Nothing Then
            Cells(72, i).Copy Cells(v.Row, "MX")
        End If
    Next i
End Sub

Sub Sauvegarde()
    Application.ScreenUpdating = False
    Set Shf1 = Sheets("Feuil1")
    Set Shf2 = Sheets("Feuil2")
    DerCol_f2 = Shf2.[XFD1].End(xlToLeft).Column + 1
    Shf1.Range("MX10:MX62").Copy Shf2.Cells(2, DerCol_f2)
    Shf2.Cells(1, DerCol_f2) = Date
    RecupCouleur
    Shf2.Select
End Sub

Sub RecupCouleur()
    Dim FC As FormatCondition, F1 As Variant
    Dim C As Range
    
    Shf1.Select
    For i = 10 To 62
        Set C = Cells.Find(Empty)
        For Each FC In Shf1.Cells(i, "MX").FormatConditions
            C.FormulaLocal = FC.Formula1: F1 = C
            F1 = C
            If F1 Then Exit For
        Next FC
        If Not FC Is Nothing Then Couleur = FC.Interior.Color Else: Couleur = Shf1.Cells(i, "MX").Interior.Color
        Shf2.Cells(i - 8, DerCol_f2).Interior.Color = Couleur
        C.Clear
    Next i
End Sub


Cdlt
jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

bonjour a toi
j'ai deux soucis
Dim Shf1 As Worksheet, Shf2 As Worksheet
Dim DerCol_f2 As Long
le déboguer me bloque à ces lignes
en second j'utilise déjà sub Sauvegarde
est on obligé de passer par feuille 1 feuille 2 ?

merci beaucoup
amicalement
jacques
Frenchie83
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263 > jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

Le code fourni remplace tout le code du module standard, il faut effacer le code précédent et coller celui-ci à la place.
jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020
> Frenchie83
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020

je n'ai pas tout compris désolé
Frenchie83
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263 > jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

Bonjour,

Pour les noms des feuilles, mettez celui que vous voulez, il suffit de remplacer dans le code (dans les 2 lignes ci-dessous) , "Feuil1" ou "Feuil2" par les noms que vous aurez choisit
dans la macro "Sauvegarde", remplacez les noms des feuilles par leurs vrais noms, exemple:

Ceci:
    Set Shf1 = Sheets("Feuil1")
    Set Shf2 = Sheets("Feuil2")


Remplacé par cela si vous avez renommé la "Feuil2" en "Resultats"
    Set Shf1 = Sheets("Feuil1")
    Set Shf2 = Sheets("Resultats")


Est-ce plus clair?

Questions: Avez-vous bien ouvert le dernier fichier joint précédemment? Fonctionnait-il correctement?

Cdlt
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263
Bonjour,

Questions:
-Peut-il y avoir un changement de couleur d'une cellule sans que sa valeur change?
-Ces changements de valeurs et/ou de couleurs, se font-ils manuellement ou bien par formule pour les valeurs et par MFC pour les couleurs, ou bien encore, est-ce une macro qui gère tout ça?

Cdlt
jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

bonjour a tous
c'est une MFC qui régit les couleurs
la cellule peut changer de couleur, bleu ou jaune mais aussi de valeurs
ou des fois seul l'un ou l'autre
merci de t'y interresser
amicalement
jacques
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263
Pour les couleurs, si c'est une MFC qui régit les couleurs, il suffit d'appliquer les mêmes conditions qui s'appliquent aux cellules ND3:NH3 aux cellules B72:F72.
Quant au changement de valeurs, un bout de code VBA à mettre dans le module de la feuille concernée fera l'affaire
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, Range("ND3:NH3")) Is Nothing Then
        Range("ND3:NH3").Copy Range("B72:F72")
    End If
    Application.EnableEvents = True
End Sub


Cdlt
jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

merci je vais tester
maintenant on prend les mêmes cellules mères B72:F72
je veux les reporter sur une colonne MX10:Mx62 dans laquelle il y a 2 espaces MX29:MX30 et MX46:MX47
la cellule MX10 représente les 1
la cellule MX69 représente les 49
les cellule se suivent l'une sous l'autre et a MX28 qui est 19 je saute à MX
31 à 20 et idem
MX45 représente 34 et MX48 35
MX62 c'est la fin à49
il faut donc que chaque cellules de B72:F72 viennent avec chacune leur valeur, s'écrire en valeur et couleur, au bon emplacement dans la colonne
par exemple B72=20 va se positionner en MX31
C72 = 34 va se positionner en MX45 en prenant également les mêmes couleurs
un grand merci
cordialement
jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

par contre comment nomme tu ta VBA pour la l'enregistrer et la lancer
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263
En attendant, voici une solution qui fonctionne en cliquant sur un bouton.

le fichier
https://mon-partage.fr/f/OcC21YSD/

le code dans un module standard en plus du code dans le module de la feuille
Sub Couleurs_et_Valeurs()
    Application.ScreenUpdating = False
    Range("B72:F72").Copy Range("ND3:NH3")
    Range("MX10:MX62").ClearContents
    Range("MX10:MX62").FormatConditions.Delete
    For i = 2 To 6
        Set v = Range("MW10:MW62").Find(Cells(72, i), LookIn:=xlValues, lookat:=xlWhole)
        If Not v Is Nothing Then
            Cells(72, i).Copy Cells(v.Row, "MX")
        End If
    Next i
End Sub


Cdlt
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

pour la première c'est super merci
pour la seconde c'est plus compliqué!
j'utilise en MFC =nb.si((.... et j'indique la couleur jaune sachant qu'a l'origine, mes cellules mères sont coloriées manuellement en bleu
mais ou ça se complique que j'ai oublié de mentionné,
a chaque fois que je modifie une cellule mère je me décale d'une colonne Je garde en archive toutes les colonnes précédentes avec leurs nombres et couleur
et tous les mois je re parts avec un nouveau tableau…
C'est ma ligne ND3; NH3 qui prends le relais pour le mois en cour
la ligne B72:F72 elle reste fixe
??--
vous êtes super!
merci à tous
Messages postés
2069
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 février 2020
263
Avez-vous essayez ma deuxième proposition avant que je regarde votre nouvelle demande?
jack2125
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

je teste la a tout de suite
Messages postés
139
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
19 février 2020

une idée
pour la MFC sur la colonne ça me fait n'importe quoi
n'a t on la possibilité que dès nos formules MFC pour ND3:NH3 bons N° et bonne couleur ne pourrions pas les intégrer dans la colonne en gardant la bonne couleur?
cordialement