Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Macro temporelle avec conditions

alexandra13

XLDnaute Nouveau
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

  • EXEMPLE MACRO.xls
    31 KB · Affichages: 19
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour alexandra13, Lone-wolf,

Voyez le fichier joint et cette fonction VBA :
Code:
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

  • EXEMPLE MACRO(1).xls
    76 KB · Affichages: 18

alexandra13

XLDnaute Nouveau
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
 

job75

XLDnaute Barbatruc
Bonsoir alexandra13,
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.
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

A+
 

Discussions similaires

Réponses
9
Affichages
590
Réponses
13
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…