Colorié identiquemnt et automatiquement une cellule remplie de nombre en fct

Résolu/Fermé
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024 - Modifié le 31 janv. 2020 à 18:43
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 3 févr. 2020 à 06:40
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


9 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
1 févr. 2020 à 11:28
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
1
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
1 févr. 2020 à 12:07
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.
1
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
Modifié le 1 févr. 2020 à 15:20
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
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
2 févr. 2020 à 04:52
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
1
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
2 févr. 2020 à 11:22
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
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
2 févr. 2020 à 11:35
Le code fourni remplace tout le code du module standard, il faut effacer le code précédent et coller celui-ci à la place.
0
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024 > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
2 févr. 2020 à 18:29
je n'ai pas tout compris désolé
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
3 févr. 2020 à 06:40
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
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
1 févr. 2020 à 08:37
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
0
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
1 févr. 2020 à 09:17
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
1 févr. 2020 à 09:25
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
0
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
1 févr. 2020 à 10:18
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
0
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
1 févr. 2020 à 11:12
par contre comment nomme tu ta VBA pour la l'enregistrer et la lancer
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
1 févr. 2020 à 11:37
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
0
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
Modifié le 1 févr. 2020 à 11:43
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
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
1 févr. 2020 à 11:44
Avez-vous essayez ma deuxième proposition avant que je regarde votre nouvelle demande?
0
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
1 févr. 2020 à 11:52
je teste la a tout de suite
0
jack2125 Messages postés 335 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 24 avril 2024
1 févr. 2020 à 17:55
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
0