VBA: ajouter un temps a la fonction now

Bonjour à tous,

Je cherche à créer une base de donnée me permettant d'alimenter une feuille excel à partir d'un userform.

Je rencontre deux principales difficultés.

1) J'aimerais qu'à l'ouverture de mon userform, les textbox se pré remplissent lorsque la date (colonne c) est supérieur à "maintenant"

Par exemple, si en c3, j'ai la valeur 05/02/2014 10:15 et qu'aujourd'hui nous sommes le 04/02/2014 15:00, la ligne est ignorée.

Par contre si C4 à pour valeur 01/02/2014 20:45, dans ce cas les textbox 1,2 et 4 (machine 1, 2 et zone) se pré remplissent avec la valeur de la cellule (en principe le code de pré remplissage est fait, mais le code de recherche de ligne ne fonctionne pas). Pour essayer de feinter le problème j'ai mis la fonction "maintenant" en c1, et je vérifie si ci > c1 mais cela ne semble pas fonctionner.

2) Ensuite j'aimerais additionner "maintenant soit 04/02/14 15:00" et la valeur du textbox 3 que je définie moi même.

(J'ai retiré la fonction msg box indiquant que l'heure est incohérente à cause d'une erreur de type)

Suite à plusieurs erreurs de type, etc..., j'ai tenté de contourner le problème en transformant les valeur now et la textbox3 en valeur numériques en les copiant dans les cellules des colonnes h et i.

(Cette astuce fonctionne pour les valeurs de la textbox 3 supérieur a 24h, mais pas pour les valeurs inférieur)

3) Dans l'userform, le bouton terminer copie les textbox dans les cases correspondantes tandis que le bouton suivant copie les textbox dans les cases concernées et va recherche la ligne suivante ayant la condition date > maintenant

(pour cette action, j'ai simplement codé l'userform pour qu'il se ferme et se rouvre)

Merci d'avance pour votre aide et vos conseils.

Bonjour,

regarde du coté de la fonction "cdate", devrait répondre à ta question :

MsgBox Now + CDate(TextBox1)

A noter les valeurs saisies dans le textbox doivent être sasie comme des heures reconnues comme telles par excel

bon après midi

@+

Bonjour Pierrot,

Je te remercie pour ta réponse rapide. Ta proposition à l'air de fonctionner.

J'ai encore quelques questions

1)Pourrais tu me dire pourquoi le code suivant ne prend pas en compte les heures supérieur à 24h et me renvoi le msg box.

Private Sub TextBox3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  If IsNumeric(TextBox3.Text) Then
  TextBox3.Text = Format(TextBox3.Text, "##:##")  
  End If
  If Not IsDate(TextBox3.Text) Then
    MsgBox "heure incohérente"
    Cancel = True
  End If
End Sub

2) J'aimerais qu'excel copie l'userform à la ligne adéquat. Pour cela, j'utilise ce code

Private Sub UserForm_activate()
'permet de choisir la premiere ligne temps de la pr depassé
   i = 2
   If Sheets("PR").Cells(i, 3) > Now Then
  i = i + 1
   End If

Je me suis basé sur un code permettant de trouver la première ligne vide, mais ma modification ne fonctionne pas. (le format de la colonne 3 est sous la forme jj/mm/aa hh:mm)

Merci et bonne journée

Re,

pour ta première question, peut être ceci :

MsgBox Format(TextBox1, "{hh]:mm")

Non, désolé le code {hh:mm] ne fonctionne pas. J'ai essayé également "[hh:mm]" et "[h]:mm" mais rien ne fonctionne.

Merci beaucoup en tout cas

Bonjour,

A voir les données saisies dans le "textbox".... peut être utiliser également la fonction "cdate"... perso je formaterais plutôt lors de l'événement "exit" du "textbox"... voir après la mise à jour, pas avant...

bonne journée

@+

Rechercher des sujets similaires à "vba ajouter temps fonction"