1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2010 Macro temporelle avec conditions

Discussion dans 'Forum Excel' démarrée par alexandra13, 6 Décembre 2018.

Tags:
  1. alexandra13

    alexandra13 XLDnaute Nouveau

    Inscrit depuis le :
    25 Juin 2018
    Messages :
    10
    "J'aime" reçus :
    0
    Bonjour le forum,

    Je ne maitrise pas bien le VBA, et dans un cadre professionnel, je fais donc appel à l'expertise du forum.
    Je joins un fichier exemple (fichier bidon) pour décrire mon besoin.

    Imaginons un opérateur en usine.
    * Un opérateur complète le fichier Excel en saisissant une valeur et indique la date de saisie de la valeur.
    * Si cet opérateur n'a pas rentré de valeur depuis moins de six mois, alors, à sa prochaine saisie, une case rouge "voir responsable" s'affiche dans la colonne "Formation" à la ligne de la nouvelle saisie.
    * Si cet opérateur a rentré une valeur depuis moins de six mois, alors une case verte "RAS" s'affiche.

    Mon fichier de base comporte déjà une macro.

    J'imagine qu'il faut partir sur une recherche dans les dates, puis mettre une condition sur le nom de l'opérateur... mais il me manque le langage :)

    Merci d'avance !
     

    Pièces jointes:

    Dernière édition: 6 Décembre 2018
  2. Chargement...

    Discussions similaires - Macro temporelle conditions Forum Date
    XL 2010 Bloquer apparition feuille durant une Macro Forum Excel Aujourd'hui à 12:36
    XL 2010 consolider les donnees de deux fichiers excel en un seul: macro? RechercheV? Forum Excel Aujourd'hui à 09:04
    XL 2013 Appliquer une macro sous condition Forum Excel Hier à 19:28
    Macro fonctionnant partiellement Forum Excel Hier à 10:37
    Text Import wizard a travers une macro VBA Forum Excel Lundi à 18:45

  3. Lone-wolf

    Lone-wolf XLDnaute Barbatruc

    Inscrit depuis le :
    25 Mars 2010
    Messages :
    7110
    "J'aime" reçus :
    528
    Sexe :
    Masculin
    Travail/Loisirs :
    SE/Programmation (VBA Excel)
    Habite à:
    Ouest-Suisse
    Utilise:
    Excel 2013 (PC)
    Bonjour alexandra, le Forum :)

    Tu peux m'expliquer pourquoi l'opérateur n'a pas saisi de valeur pendant ces 6 mois?? o_O
    Comment tu peux faire tourner une entreprise dans ce cas là?? o_O
     
  4. alexandra13

    alexandra13 XLDnaute Nouveau

    Inscrit depuis le :
    25 Juin 2018
    Messages :
    10
    "J'aime" reçus :
    0
    Mon fichier est bidon donc pas forcément collé à la réalité, mais imaginons des longues maladies, des conges maternités + conges parentaux, des affectations de poste.
     
  5. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    25808
    "J'aime" reçus :
    2197
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonjour alexandra13, Lone-wolf,

    Voyez le fichier joint et cette fonction VBA :
    Code (Text):
    Function RAS(valeur, operateur, dat As Long) As String
    If valeur = "" Or operateur = "" Or dat = 0 Then Exit Function
    Dim tablo, i As Long, der As Long
    tablo = Application.Caller.Parent.UsedRange.Resize(, 3) 'tableau VBA, plus rapide
    operateur = UCase(operateur) 'majuscules, au cas où...
    For i = 1 To UBound(tablo)
        If UCase(tablo(i, 2)) = operateur And tablo(i, 3) < dat Then If tablo(i, 3) > der Then der = tablo(i, 3)
    Next
    RAS = IIf(Sgn(der) * (dat - der) < 180, "RAS", "Voir responsable")
    End Function
    La fonction est utilisée en colonne D.

    Mise en forme conditionnelle (MFC) en colonne D.

    A+
     

    Pièces jointes:

  6. alexandra13

    alexandra13 XLDnaute Nouveau

    Inscrit depuis le :
    25 Juin 2018
    Messages :
    10
    "J'aime" reçus :
    0
    Bonjour job 75,

    Merci pour ton temps et ton aide précieuse.

    Je rencontre quelques difficultés lorsque je teste ton code :
    Mon fichier comporte déjà une macro (Public Sub ..... End Sub).
    Et apparament le programme n'aime pas à avoir à lancer à la fois ma macro et la function RAS.

    J'ai essayé en integrant tes lignes de codes juste avant le "End Sub" mais du coup la macro ne tourne plus ; si j'insère tes lignes après le "End Sub" et bien ma macro tourney bien, mais la tienne ne s'éxécute pas.

    Est-il possible d'écrire un code sans mettre en forme conditionnelle le tableau (car mon exemple est bidon de toute façon)
    et de sorte à ce que la fonction s'insère dans la macro ?

    J'espère que c'est clair pour toi.

    Merci,
    Alexandra
     
  7. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    25808
    "J'aime" reçus :
    2197
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonsoir alexandra13,
    Il n'y a pas de macro dans votre fichier !!!

    Et une fonction VBA n'a pas à être lancée, elle se calcule toute seule en fonction des arguments qu'on lui donne.

    Enfin j'ai mis une MFC en colonne D uniquement pour colorer les cellules.

    Le fichier que j'ai joint est hyper simple et pourtant vous semblez larguée :oops:

    A+
     

Partager cette page