VBA - pb de date + heure

  • Initiateur de la discussion Initiateur de la discussion Romain
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

Romain

Guest
Bonjour le forum,
Je me suis aide du fichier telechargeable sur les heures (DatesetHeures_CMC.zip) pour trouver une formulation pour travailler avec des dates du type m/d/yyyy h:mm sachant que le mois est en A, le jour en B, l'annee est celle en cours, l'heure en C et les minutes = 0.
Pour l'instant, j'ai essaye cela mais ca bloque:

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
i = Cells(1, 2).Value
j = Cells(1, 3).Value
k = Cells(1, 4).Value
l = Year(Date)
Cells(1, 5) = "=DATE(l,i,j)+TIME(k,0,0)"
Cells(1, 5).NumberFormat = "m/d/yyyy h:mm"

Cela revient a un probleme de variable. Les variables seront utiles car il faudra que j'arrange le code pour un tableau entier.
Si qq'un a une solution ou une explication....
Merci d'avance
Romain
 
Salut Romain,

je n'ai jamais utilise des fonctions elaborees pour les dates mais si ce que tu as poste est tel qu'il est dans ta macro, je ne vois pas ou le mois est lu.

Cell "A1" -> cell(1,1)

Si c'est ca tu donne une valeur "Null" ou "" (et non "0") a un integer... et ca c'est generalement un probleme (enfin je pense car ca m'est jamais arrive).

Si tu t'es trompe dans ton post, je ne sais pas d'ou viens l'erreur.

Un bon moyen de l'identifier est de mettre un point (bordeau) au debut du sub ou dans le sub. Execute ligne par ligne avec F8, et lit les valeur de i, j,j,l au fur et a mesure juste en placant le curseur de ta souris sur les variables (sans cliquer).

J'espere t'avoir aider au sinon.. .. tant pis.

A++, Sylsyl.
 
Bonjour Sylsyl,
En effet, je me suis trompe. Pas dans ma macro mais dans mon explication:
Les mois sont lus en B
Les jours en C
Les heures en D
Les min et sec =0
L'annee est celle en cours
Merci pour ta vigilance
A+
Romain
 
Salut Romain,

tu m'excuseras mais j'ai rien trouve de plus rafine que ca...

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
i = Cells(1, 2).Value
j = Cells(1, 3).Value
k = Cells(1, 4).Value
l = Year(Date)
Cells(1, 5) = i & " / " & j & " / " & l & " " & k & ":00"
Cells(1, 5).NumberFormat = "m/d/yyyy h:mm"
End Sub

Il faut garder le NumberFormat pour la mise en page.

Les nombreux espaces sont ajoutes expres, lorsque le format est incompatible (mois >12), ils apparaissent dans la cellule et tu vois tout de suite qu'il y a un pb, au sinon c'est bourrin mais ca marche !!

A++, Sylsyl.
 
Re-salut Sylsyl,
Ta solution convient parfaitement a mon application. J'ai seulement enleve les espaces car les infos concernant les mois, jours et heures viennent d'un site Internet ou elles sont utilisees aussi pour une date (donc il ne peut pas y avoir d'erreur).
C'est dingue comment les solutions paraissent simples quand on les a sous les yeux.
Merci et bon WE.
A+
Romain
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
705
Réponses
4
Affichages
581
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
267
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
3
Affichages
834
Retour