IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro MFC de cellule distinctes [XL-2019]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut Macro MFC de cellule distinctes
    Bonjour à tous,

    JE me permets de venir vous demander de l'aide.

    je souhaiterai mettre en place une macro dans un fichier Excel pour de la mise en forme de Cellule.

    Cela concerne des consignes pour des cuves.

    voici les conditions que je souhaite mettre en place (ce que je sais faire unitairement en passant pour le ruban mise en forme conditionnelle) mais pas en macro.

    par exemple pour la cuve 24 ( j'ai 9 cuves sur ma chaine de prod)

    condition 1 : =si (G13=1; vrai) alors G12 et F4 se colorie en VERT (G12 état l'état de la consigne, et F4 état de la consigne à l'emplacement dans la cuve)
    condition 2 : =si (G13=1; vrai) alors G12 et F4 se colorie en Orange
    condition 3 : =si (G13=1; vrai) alors G12 et F4 se colorie en Rouge

    et faire ceci pour toutes les consignes par cuve


    Pouvez-vous me m'aider SVP ?

    Je vous mets une photo de mon fichier EXCEL

    Nom : IDRISSA.png
Affichages : 189
Taille : 62,2 Ko

    merci par avance
    bonne journée

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 000
    Par défaut
    Hello,

    pourquoi par VBA si les MFC peuvent convenir ?
    Si vous pouviez mettre votre fichier en PJ ça permettrait de voir si c'est possible ou pas via les MFC.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut
    Bonjour,

    Merci de prendre le temps de me répondre
    Je pense au VBA, car cela me semble plus judicieux que d'avoir 114 mises en formes conditionnelles avec le risque qu'elles sautent.

    je vous joins le fichier
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 000
    Par défaut
    edit, je recommence

    je crois que j'ai compris la demande ce code devrait y répondre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        Dim Couleur As Long
        Couleur = xlNone
     
        If Not Application.Intersect(Target, Range("H13, P13, X13 , AF13, AN13, AV13, BD13, BL13, BT13")) Is Nothing Then
     
            Select Case Target
            Case 1
                Couleur = rgbGreen
            Case 2
                Couleur = rgbOrange
            Case 3
                Couleur = rgbRed
            End Select
     
            ActiveCell.Offset(-1, 0).Interior.Color = Couleur
            ActiveCell.Offset(-9, -1).Interior.Color = Couleur
     
        End If
     
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut
    Bonjour,

    désolée pour la réponse tardive.

    j'ai essayé le code, cependant je ne sais trop où le mettre, (module? Worksheet ? Workbook ?). on me demande un nom de macro et d'intégrer un end Sub que je ne sais où positionner, car même en fin de code il n'en veut pas. J'ai tenté tous les emplacements et chercher rien ni fait.


    si je comprend le code, vous l'avez créé pour une lecture en ligne (range("H13, P13, X13 , AF13, AN13, AV13, BD13, BL13, BT13") et ensuite vous lui indiquez les cases à remplir de couleur selon la légende. par contre, lorsque la case "emplacement de la consigne n'est pas la même pour toutes les cuves, comment faites vous ?(voir les emplacement de la cuve 15, 8 et 7)).

    Si ça peut aider pour le code, les N° des cuves dans les cercles, peuvent être saisis dans une cellules.

    je pensais que le code aurait été moins complexe, désolée de vous embêter, mais j'ai 3 autres chaines à mettre en forme dans le même genre, et l'automatisation serait vraiment la bien venue.

    bonne journée

  6. #6
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 000
    Par défaut
    re,

    "je ne sais trop où le mettre"
    dans le code de Feuil1 : Clic droit sur l'onglet Feuil1 en bas de la feuille, Visualiser le code.
    NB : il y a 22 lignes de code à copier, n'en oubliez pas.

    "vous l'avez créé pour une lecture en ligne (range("H13, P13, X13 , AF13, AN13, AV13, BD13, BL13, BT13") et ensuite vous lui indiquez les cases à remplir de couleur selon la légende."
    Oui

    "par contre, lorsque la case "emplacement de la consigne n'est pas la même pour toutes les cuves, comment faites vous ?"
    je ne sais pas où se trouve les autres "emplacement de la consigne", vous avez écrit "F4 état de la consigne", précisez ce que vous voulez
    Plus vous donnerez d'information, moins je devrais deviner

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut
    excusez moi si je n'étais pas claire.

    il faut lire les consignes à la verticale.

    voici où se trouvent les emplacements des consignes pour la cuve 24, lorsque aucuns statuts (rouge, orange, vert) n'est indiqué. ces emplacements diffèrent quelque peu selon les cuves.

    donc le statut de la consigne thermoplogeur (1) se trouvera en H13, et je souhaite que G4 et H12 se colorie en fonction de se qui est écrit en H13 ((rouge, orange, vert)
    le statut de la sonsigne SECU (2) se trouvera lui en H18 et je souhaite que C4 et H17 se colorie en fonction de se qui est écrit en H18 ((rouge, orange, vert)

    etc ...

    donc si je prends vos lignes de code pour la consigne (et vu qu'elle est la même pour toutes les cuves) cela fonctionne.

    ActiveCell.Offset(-1, 0).Interior.Color = Couleur
    ActiveCell.Offset(-9, -1).Interior.Color = Couleur

    mais pour l'emplacement de la consigne SECU qui diffère entre la cuve 24 et la cuve 15 par exemple il y aura un soucis si je ne mets que
    ActiveCell.Offset(-1, 0).Interior.Color = Couleur
    ActiveCell.Offset(-14, -5).Interior.Color = Couleur

    puisqu'en cuve 15 offset doit être :

    ActiveCell.Offset(-1, 0).Interior.Color = Couleur
    ActiveCell.Offset(-8, -1).Interior.Color = Couleur.


    est-ce que cela est plus clair pour vous ?
    Images attachées Images attachées  

  8. #8
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 000
    Par défaut
    re,

    voici une version fonctionnelle de votre fichier Pièce jointe 657223
    Je n'ai pas cherché à l'optimisé et, tel quel, le code est un peu lourdingue.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut
    Bonjour,
    Merci pour ton aide. Je vais prendre le temps de regarder le fichier durant mes CP.
    Je voulais simplement prévenir que pour le moment je ne ferme pas la discussion. je suis à la veille de mes congés et n'ai pas trop le temps. Je reviendrai mettre en resolu ou continuer ma demande quand j'aurais pris le temps de voir si j'arrive à faire ce que je souhaite. merci ncore pour ton aide.
    Bonne journée.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut
    Bonjour,

    Je vous remercie beaucoup, j'ai réussi à faire ce que je voulais faire.

    Je vous souhaite une bonne journée et passe la discussion à résolue

  11. #11
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 000
    Par défaut
    Hello,

    merci pour le retour (c'est rare et ça fait toujours plaisir), mais si je peux me permettre d'ironiser (gentiment), 6 mois de "CP" j'aimerais bien être à votre place
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 68
    Par défaut
    loin de là 6 mois de CP !!! juste pas de taf et je n'aime pas laisser une discussion en non résolu!

    Mon fichier est en fonction, et cela fonctionne.
    Merci beaucoup pour l'aide que vous m'apportez.

    avec une peu d'ironie aussi, ce ne sont pas des flèches d'Excel au boulot. Donc je regarde ce que je peux faire en dehors des heures de travaillent..... mais parfois, j'ai aussi envie de profiter d'autre choses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. executer la macro sur la cellule Active
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2007, 13h51
  2. [VBA-E]Macro pour positionnement cellule
    Par Micky58 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/04/2007, 12h54
  3. [VBA-E] Comment appliquer une macro sur plusieurs cellules
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/01/2007, 11h54
  4. [VBA-E] Macro pour copier cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/06/2006, 21h02
  5. [VBA-E] Associer une macro à une cellule
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2006, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo