Traduire une fonction logique en VB

jeanphi

XLDnaute Occasionnel
Bonjour

J'essaye de traduire en VB la fonction ci-dessous mais je n'y arrive pas
En fait je voudrais qu'un Msgbox s'ouvre à l'ouverture de mon classeur et me dise "Attention, objectif de résolution proche" si la condition ci-dessous est respectée
Quelqu'un a t'il une idée??
Merci ;)


=SI(ET(Une date quelconque en K1> à la date du jour; Une date quelconque en K1 - la date du jour<=6/24;Et que la cellule en N1 est différente de "Résolu");"Oui";"")
 

Temjeh

XLDnaute Accro
Supporter XLD
Re : Traduire une fonction logique en VB

Bonjour

Assez simple je pense que tu n'a pas besoin de grand chose juste a faire référence a ta cell résultat. Donc a mettre dans le workbook:

Code:
Private Sub Workbook_Open()
   If Sheets("Modele").Range("Ta cell") = "Oui" Then MsgBox "Attention, objectif de résolution proche"
End Sub

ATTENTION A MODIFIÉ:
Nom de feuille et "Ta cell" est la cell ou tu met cette formule.

=SI(ET(Une date quelconque en K1> à la date du jour; Une date quelconque en K1 - la date du jour<=6/24;Et que la cellule en N1 est différente de "Résolu");"Oui";"")

Si cette formule est en A1 dans mon code:

If Sheets("Modele").Range("A1") = "Oui" ...

A++

Temjeh
 
Dernière édition:

jeanphi

XLDnaute Occasionnel
Re : Traduire une fonction logique en VB

bonjour temjeh

ce n est pas ce que je souhaite
je ne veux plus utiliser de fonction comme en L9 mais juste du code vba
Et je voudrais que le msgbox me remonte le num de ticket (en b9) pour lequel la cellule en L9 est égale à oui :confused:
merci
 

jeanphi

XLDnaute Occasionnel
Re : Traduire une fonction logique en VB

encore une question
j'ai ici le code me permettant de réaliser le test sur la ligne 9

Sub test()
If Sheets("Mars").Range("K9") >= Date And Sheets("Mars").Range("K9") - Now <= 0.25 And Sheets("Mars").Range("N9") <> "Résolu" Then MsgBox "Ticket N° " & Sheets("Mars").Range("B9"), vbCritical
End Sub

Je voudrais maintenant réaliser le test sur toutes les dates de la colonne K et donc réaliser une boucle me mermettant cela
comment puis je faire?
merci
 

youky(BJ)

XLDnaute Barbatruc
Re : Traduire une fonction logique en VB

Bingo !
Ha!! j'en étais sur que tu allais demander cela.
Donc voici la rectif.
Tu risque d'avoir plusieurs messages, si tu en veux qu'un enlève l'apostrophe avant :exit sub
Bruno

Code:
Sub test()
For Each c In Feuil3.Range(Feuil3.[K9], Feuil3.[K65536].End(xlUp))
If c.Value >= Date And c.Value - Now <= 0.25 And c.Offset(, 3).Value <> "Résolu" Then _
MsgBox "Ticket N° " & c.Offset(, -9) ':exit sub 'pour 1 seul msgbox
Next
End Sub

Oups ! plutot comme ceci j'avais pas bien lu ton message
Code:
Sub test()
With Sheets("Mars")
For Each c In .Range(.[K9], .[K65536].End(xlUp))
If c.Value >= Date And c.Value - Now <= 0.25 And c.Offset(, 3).Value <> "Résolu" Then _
MsgBox "Ticket N° " & c.Offset(, -9), vbCritical
Next
End With
End Sub
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Traduire une fonction logique en VB

Salut jeanphi et le forum
J'ai quelques difficultés à tout comprendre :
=SI(ET(Une date quelconque en K1> à la date du jour; Une date quelconque en K1 - la date du jour<=6/24;Et que la cellule en N1 est différente de "Résolu");"Oui";"")
Là, déjà une interrogation :
Une date quelconque en K - la date du jour<=6/24
C'est équivalent à
Une date quelconque en K <= la date du jour + 6/24
Comme on a Une date quelconque en K> à la date du jour"
Date du jour < Date en K <= Maintenant + 6 heures.
Code:
Sub test()
Dim Cel As Range
With Sheets("Mars")
    For Each Cel In .Range(.[K9], .Cells(Rows.Count, "K").End(xlUp))
        If Cel.Offset(0, 3) <> "Résolu" Then
            If Date < Cel And Cel - Now <= 0.25 Then MsgBox "Ticket N° " & Cel.Offset(0, -9), vbCritical
        End If
    Next Cel
End With
End Sub
Les tests multiples prenant du temps, je préfère décomposer et ne tester, dans un premier temps, que l'abscence du "résolu", puis le reste
N'empêche que j'ai du mal à comprendre l'utilisation des Date/Now
A+
 

Discussions similaires

Réponses
15
Affichages
491

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg