Première valeur sup. / inf. avec date et heure

salsinats80

XLDnaute Nouveau
Bonjour,

N'étant pas bon du tout en VBA, je me permets de faire appel à vos services.

Je souhaite mettre dans 2 cellules, la première valeur inférieure et supérieure d'une autre cellule (issue d'un calcul ou du net et qui change régulièrement.
Par la même occasion la date et l'heure devra être indiquée pour chacune de ces première valeur.

Pour être plus explicite, je joins un petit fichier.
Cette petite manip. doit être étendue à plusieurs lignes (une dizaine)

Dans l'attente, je vous souhaite une agréable journée

Stan.
 

Pièces jointes

  • Essai.xls
    14 KB · Affichages: 62
  • Essai.xls
    14 KB · Affichages: 63
  • Essai.xls
    14 KB · Affichages: 61

Dranreb

XLDnaute Barbatruc
Re : Première valeur sup. / inf. avec date et heure

Bonjour
Deux questions d'abord
1) - Est il indispensable que les valeurs soit dans une cellule ? (1 colonne par valeur pourrait être plus simple à traiter)
2) - D'où sort on les dates ?

À+
 

salsinats80

XLDnaute Nouveau
Re : Première valeur sup. / inf. avec date et heure

Bonjour,

La date et l'heure sont la date et heure à l'instant de la "saisie" du "supérieur à" et de "inférieur à".
la forme générale est celle appliquée dans l'exemple sur 3 lignes
Les valeurs changeantes et fixes sont diférentes à chaque ligne.

Dans l'attente

Stan.
 

Dranreb

XLDnaute Barbatruc
Re : Première valeur sup. / inf. avec date et heure

Il est bien possible de noter quelque part l'heure de modification d'une feuille, mais où ?
Les valeurs changeantes peuvent elles être fournies sur plusieurs colonnes ?
 

salsinats80

XLDnaute Nouveau
Re : Première valeur sup. / inf. avec date et heure

Les valeures changeantes sont indiquée dans une cellule par ligne.
Dans l'exemple fourni elles sont indiquées en E5, E6, E7.
Chaque ligne est indépendante.
Ce n'est pas l'heure de la fauille qui compte car la feuille reste ouverte toute la journée.
C'est l'heure à laquelle se produit l'événement (le > et > dans l'exemple)

...

Stan
 

Dranreb

XLDnaute Barbatruc
Re : Première valeur sup. / inf. avec date et heure

Ces deux fonctions dans un module standard devraient faire l'affaire pour le problème principal:
VB:
Option Explicit

Function PremInf(Valeur As Long, Z As String) As Variant
Dim V As Variant, N As Long
V = Split(Z, ",")
PremInf = ""
For N = 0 To UBound(V)
   If V(N) < Valeur Then PremInf = V(N) + 0: Exit Function
   Next N
End Function

Function PremSup(Valeur As Long, Z As String) As Variant
Dim V As Variant, N As Long
V = Split(Z, ",")
PremSup = ""
For N = 0 To UBound(V)
   If V(N) > Valeur Then PremSup = V(N) + 0: Exit Function
   Next N
End Function
Vous pourrez dès lors utiliser
Code:
=PremInf($B5;$E5)
en G5 et
Code:
=PremSup($B5;$E5)
en J5 et tirer vers le bas.

Pour les dates, je n'ai toujours pas compris ce que vous voulez automatiser
mais dans une Sub Worksheet_Change, Now peut être affectée à la Value d'une cellule...
À+
 

salsinats80

XLDnaute Nouveau
Re : Première valeur sup. / inf. avec date et heure

Je viens d'essayer mais cela ne fonctionne pas. Ci-joint mon nouveau fichier modifié.
Je dois être vraiment nul... Sourire !

Pour les heures (ne parlons plus de la date), dès que la cellule G5 est renseignée, l'heure du système (la même que sur une montre) affiche l'heure à laquelle la cellule a été rensignée.
 

Pièces jointes

  • Essai.xls
    22.5 KB · Affichages: 43
  • Essai.xls
    22.5 KB · Affichages: 47
  • Essai.xls
    22.5 KB · Affichages: 50

Dranreb

XLDnaute Barbatruc
Re : Première valeur sup. / inf. avec date et heure

Non, pas si nul, mais :
Je vous avais dit : dans un module standard or vous l'avez mis dans le module associé à la feuille 1.
Insérez un nouveau module standard et déplacez y le code.

Dans le module associé à la feuille 1, vous pouvez en revanche mettre ceci maintenant :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
   Application.EnableEvents = False
   Me.Cells(Target.Row, 8).Value = Date
   Me.Cells(Target.Row, 9).Value = Now
   Application.EnableEvents = True
ElseIf Target.Column = 10 Then
   Application.EnableEvents = False
   Me.Cells(Target.Row, 11).Value = Date
   Me.Cells(Target.Row, 12).Value = Now
   Application.EnableEvents = True
   End If
End Sub
 
Dernière édition:

salsinats80

XLDnaute Nouveau
Re : Première valeur sup. / inf. avec date et heure

Pour la première partie, j'avais essayer une formule dans la cellule G5 mais elle ne fonctionne pas car "boucle".
Si E5 < B5 et G5<>"" alors G5= B5
Si E5 < B5 et J5<>"" alors J5=B5

avec édidemment l'heure à laquelle G5 et J5 ne sont plus vide.

voilà une autre façon d'expliquer la chose

Dans l'attente

Stan.
 

Dranreb

XLDnaute Barbatruc
Re : Première valeur sup. / inf. avec date et heure

C'est un module qui n'est ni un module de classe ni assimilable à tel comme un userform ou un objet Excel
Faite un clic droit dans l'exlorateur de projet de VBA, Insersion, Module.

Mais, je m'apperçois que ça ne va pas :
les colonnes G et J ne seront plus retouchées une fois les formules mises en place.
Donc c'est plutôt quand les colonnes B ou E seront modifiées.
Mas dans ce cas les deux dates et heures seront modifiées.
à moins que vous ne vouliez qu'elle change que si les fonctions donnent un autre résultat ?...
C'est faisable aussi mais plus compliqué.

À demain, bonne soirée.
 
Dernière édition:

salsinats80

XLDnaute Nouveau
Re : Première valeur sup. / inf. avec date et heure

Re bonjour,

Lors de l'une de mes demandas, un internaute m'avait envoyé ces quelques lignes et cela me convenait.
Je souhaitais juste ajouter à cela l'heure à laquelle G2, G3, G4,......, I2, I3, I4,.....étaientt renseignés

Sub Worksheet_Calculate()

If [F2] >= [C2] And [G2] = "" Then [G2] = [F2]
If [F3] >= [C3] And [G3] = "" Then [G3] = [F3]
If [F4] >= [C4] And [G4] = "" Then [G4] = [F4]
If [F5] >= [C5] And [G5] = "" Then [G5] = [F5]
If [F6] >= [C6] And [G6] = "" Then [G6] = [F6]

If [F2] <= [D2] And [I2] = "" Then [I2] = [F2]
If [F3] <= [D3] And [I3] = "" Then [I3] = [F3]
If [F4] <= [D4] And [I4] = "" Then [I4] = [F4]
If [F5] <= [D5] And [I5] = "" Then [I5] = [F5]
If [F6] <= [D6] And [I6] = "" Then [I6] = [F6]

End Sub


Dans l'attente, bonne journée

Stan.
 

Statistiques des forums

Discussions
312 495
Messages
2 088 966
Membres
103 993
dernier inscrit
Essens