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 pour créer le résultat souhaité


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut Macro pour créer le résultat souhaité
    Hello à tous,

    J'espère que tout le monde se porte bien ;-)

    Désolé pour le titre de ce post mais je vous avoue que je ne sais pas comment le nommez

    Par contre je pense être en mesure de vous expliquer mon problème.

    Je souhaite pouvoir suivre le flux d'approbation pour des documents.

    Chaque type de document a un flux d'approbation différent.
    Je connais les différents flux d'approbation.

    Donc ce que j'aimerai c'est de construire une feuille toute simple comprenant plusieurs colonnes et griser les champs pour lesquels l'approbation n'est pas nécessaire.
    Vous trouverez en pièce jointe un fichier qui représente le résultat que je souhaite obtenir.
    Ainsi que les règles d'approbation pour chaque type de document

    Je n'ai aucune idée de comment je dois attaquer ce problème dans mon code.
    Voila pourquoi je fais appel à vous, pour que vous puissiez me donner des pistes, des bouts de codes, ...
    Une solution complète est envisageable aussi bien sur

    Merci d'avance pour le temps que vous allez accorder à ce post.

    En cette fin d'année, je vous souhaite d'ores et déjà un joyeux Noël à vous et vos proches.
    Bien à vous,
    MM
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    pas de code une simple mise enforme conditionnelle

    remet les "x" la ou ils etaient et regarde ce qui se passe
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut
    Bonjour,
    Merci pour votre réponse.

    L idée n'est pas mauvaise mais les X doivent alors être mis automatiquement par la macro.
    La liste des documents est bien évidement variable, les types de documents peuvent être modifiés aussi.

    Comment alors mettre les X en automatique ? Cette matrice type de document/appro me perturbe un peu ...

    Bien à vous,
    MM

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    avec la mise en forme conditionnelle ca marche aussi si tu met les "x" par vba
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre éprouvé
    Homme Profil pro
    Comptable
    Inscrit en
    Novembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Novembre 2018
    Messages : 100
    Par défaut
    Salut,

    A partir de ton doc, j'ai essayé de comprendre ton besoin. Si je l'ai bien compris, tu as une liste de type de document avec différents niveaux de validation. Ce que tu souhaite c'est que dans la feuille où sont listés tes documents tu puisses afficher ces niveaux à chaque nouveau document. Pour cela il faut que le document soit identifiés par un type. Est-ce bien cela ce que tu veux faire ?

    Si oui, je te propose cet évènement à mettre dans la feuille contenant ta liste de document.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Option Explicit
     
    '**************************************************************************************************
    ' NAME : Worksheet_Change (EVENT)
    ' INPUT : Target (Représente la cellule où la valeur a été modifié)
    ' DESCRIPTION : Le processus va, à partir d'une base de donnée (Table) définisant les niveaux
    ' d'approbation par type de document, reporter ces niveaux à chaque document créé. Pour que le
    ' processus renvoi un résultat, il faut que le document est un type.
    ' L'évenement s'activera uniquement si le type de document est changé dans le Résultat Final
    '**************************************************************************************************
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        Dim oSheetTypeDoc    As Excel.Worksheet     'Feuille contenant la liste des Types
        Dim oRangeTypeDoc    As Excel.Range         'Cellule contenant le type de doucment
        Dim lColumnTypeDoc   As Long                'Colonne contenant le type de document
        Dim lLastColumn      As Long                'Dernière colonne de la feuille contenant les types
        Dim lColumn          As Long                'Compteur de colonne
        Dim lColorApproval   As Long                'Couleur pour les documents a approuver
        Dim lColorUnapproval As Long                'Couleur pour les documents a ne pas approuver
     
        Dim aApproval()      As Variant             'Array contenant les "X"
     
        'Si multi selection de cellule on sort
        If VBA.VarType(Target) >= VBA.vbArray Then Exit Sub
     
        'Paramétrage des couleurs. Possibilité des référence RGB
        lColorApproval = VBA.vbWhite
        lColorUnapproval = VBA.vbBlack
     
        'L'event ne s'applique que pour la colonne Type de document de la feuille Résultat
        'Valeur à modifier si besoin
        If Target.Column <> 2 Or Target.Value = VBA.vbNullString Then Exit Sub
     
        'Identification de la Table des Types par le nom. A adapter au besoin
        Set oSheetTypeDoc = ThisWorkbook.Worksheets("Table")
     
        With oSheetTypeDoc
     
            lColumnTypeDoc = 1 'Numéro de colonne contenant les types de document
            'On recherche le type de document
            Set oRangeTypeDoc = .Columns(lColumnTypeDoc).Find(Target.Value)
     
            'Si l'on trouve une correspondance
            If Not oRangeTypeDoc Is Nothing Then
     
                'Dernière colonne de la feuille Table
                lLastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
     
                'On récupère les différents niveaux d'approbation
                aApproval = .Range(.Cells(oRangeTypeDoc.Row, lColumnTypeDoc + 1), _
                                   .Cells(oRangeTypeDoc.Row, lLastColumn))
     
                'On affecte les niveaux d'approbation au document
                With Target.Parent
     
                    For lColumn = LBound(aApproval, 2) To UBound(aApproval, 2)
     
                        'Si il y a une valeur alors le document est à approuver
                        If aApproval(1, lColumn) = VBA.vbNullString Then
                            .Cells(Target.Row, Target.Column + lColumn).Interior.Color = CLng(lColorUnapproval)
                        Else
                            .Cells(Target.Row, Target.Column + lColumn).Interior.Color = CLng(lColorApproval)
                        End If
     
                    Next lColumn
     
                End With
     
                Erase aApproval 'Vidange
     
            Else
     
                VBA.MsgBox "Le type de document n'existe pas", vbCritical, "Information"
     
            End If
     
            Set oRangeTypeDoc = Nothing 'Vidange
     
        End With
     
    End Sub
    Dans le fichier ci-joint j'ai mis la saisie du type de document sous forme de liste déroulante. A voir ci cela te convient

    Book2.xlsm

    A+

Discussions similaires

  1. [Toutes versions] une macro pour créer un module standard
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/12/2009, 17h42
  2. Macro pour créer l'en-tête automatiquement
    Par ab1to dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/12/2009, 10h24
  3. [E-03] Macro pour créer une liste sans les vides
    Par PYJ59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/12/2008, 10h19
  4. Macro pour créer un nouveau fichier avec de nouvelles macros
    Par yodu29 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/01/2008, 14h21
  5. macro pour créer des graphiques
    Par Sebastien_INR59 dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 09h44

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