VBA - Pb test date personalise

  • Initiateur de la discussion Initiateur de la discussion simyrom
  • 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 !

S

simyrom

Guest
Bonjour le forum,
J’ai un problème de date en VBA.
Je télécharge un tableau de données par une Webquerry. Ce tableau contient normallement des mesures pour chaque heure de la journée. Le hic est que parfois une date est manquante (avec toutes les données correspondantes). Je voudrais donc faire un test du type:

Dim j As Integer
For j = Range("XXX").Row To Range("XXX").Row Step -1
'hic' If la date de la cellule (j+1, 4) n’est pas égale a la date de la cellule (j, 4) - 1 heure Then
Cells(j + 1, 1).EntireRow.insert
'hic' Cells(j + 1, 4).Value = Cells(j + 2, 4).Value + 1 heure
Range(Cells(j + 1, 5), Cells(j + 1, 20)).Interior.ColorIndex = 5
End If
Next

Sachant que plusieurs heures consecutives peuvent manquer et que la date importée est au format personnalisé (format choisit par le site Internet): dd/mm/yyyy hh:mm

Je ne sais pas gérer ces dates au format “VBA” car elles prennent en compte la date et l’heure. J’ai fait de nombeux essais avec des functions date et time mais sans success.

Ex:
22/06/2003 12:00 1004 0.2 7
22/06/2003 11:00 Ligne insérée
22/06/2003 10:00 1003.8 0.6 7
22/06/2003 09:00 1004.2 1 7
22/06/2003 08:00 1001.2 4.6 7

Pour information, je vous joins une de mes macros qui marche avec des dates séparées (1 colonne pour le mois, 1 pour le jour et 1 pour l’heure). Chose que je veux éviter afin de pouvoir réaliser plus facilement des graphiques annuelles. Comme je suis débutant en VBA et que cette macro a été realise grace a la consultation de differents sites Internet, elle est très lourde.

J'espere que mes explications sont assez claires.
Merci d’avance.
Romain.
 

Pièces jointes

Re,


Romain, pour recupérer la date d'aprés ce que j'ai compris il existe Year,
Month, Day et Hour pour récupérer l'année le mois le jour et l'heure d'une date....

admettons que tu n'es que dates de juin on compare juste le jour

If Day(cells(j+1, 4))= Day(cells(j, 4)) then
....
if hour(cells(j+1, 4)=hour(cells(j,4))-1 then ' on compare l'heure comprise entre 0 et 23

.....



A+++
 
Merci Zon,
je viens te tester ma macro avec ton code et ca marche. De plus, j'ai resolu mon second probleme qui etait de pouvoir inserer une ligne et remplir la date quand une date etait manquante. Maintenant, il faut que je teste la macro dans toutes les situations et que je complete avec le changement de jour.

Sub soluce()
Dim j As Integer
For j = Range("B65536").End(xlUp).Offset(-1, 0).Row _
To Range("B65536").End(xlUp).End(xlUp).Offset(2, 0).Row Step -1
If Not (Hour(Cells(j - 1, 2)) = Hour(Cells(j, 2)) + 1) Then
Cells(j, 1).EntireRow.insert
Range(Cells(j, 5), Cells(j, 20)).Interior.ColorIndex = 15
Range(Cells(j + 1, 2), Cells(j + 2, 2)).AutoFill Destination:=Range(Cells(j + 2, 2), Cells(j, 2)), Type:=xlFillDefault
End If
Next
End Sub

En tout cas, un grand merci. En 10 min, tu m'as evite une autre journee de prise de tete sur l'aide sommaire en anglais d'Excel VBA.
Thanks, take care, 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
80
Réponses
3
Affichages
462
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
504
Réponses
0
Affichages
380
Réponses
0
Affichages
294
Retour