[VBA] Mise en place liste date + horaire

golzag

XLDnaute Nouveau
bonjour,

J'essaie de mettre en place une liste de date mais j'ai un problème de format.

Je donne la date du début du mois par exemple : 01/12/2008
et je veux que ma macro me crée une liste de date avec des horaires comme ceci :
01/12/08 0:30
01/12/08 1:30
...
31/12/08

et ca ne marche pas, de plus je suis un peu pommé dans les formats de date sur excel.

Avec le code ci-dessous, j'obtiens ca :

12/01/08 0:30
12/01/08 1:30

Je voudrais inverser les mois et les jours

est-ce que quelqu'un aurais une idée ?


évidemment pour faire ça je bidouille avec la manip suivante :
date1 = Sheets("Données").Range("A1").Value
DateC1 = date1 & " 0:30"
DateC2 = date1 & " 1:30"

Il y a peut-être une manières plus simple de faire que ca ?

Je suis preneur de tutoriel sur les dates si certains d'entre vous en possède.

Merci d'avance :)

J'ai aussi joint le fichier.

Code:
'Mise en place de la date
    
    Range("A8:A9").Select
    Selection.NumberFormat = "dd/mm/yy h:mm" 
        
    date1 = Sheets("Données").Range("A1").Value
    DateC1 = date1 & " 0:30"
    DateC2 = date1 & " 1:30"
    
    Sheets(Nom_Données).Range("A8").Value = DateC1
    Sheets(Nom_Données).Range("A9").Value = DateC2
    
    'Selection du nombre de jour du mois
    Select Case nb_jour
    Case 28:    J = 415
    Case 30:    J = 463
    Case 31:    J = 487
    End Select
    
    Range("A8:A9").Select
    INT10 = "A8:A" & J
    Selection.AutoFill Destination:=Range(INT10), Type:=xlFillDefault
 

Pièces jointes

  • date.xls
    44.5 KB · Affichages: 84
  • date.xls
    44.5 KB · Affichages: 82
  • date.xls
    44.5 KB · Affichages: 86

Cousinhub

XLDnaute Barbatruc
Re : [VBA] Mise en place liste date + horaire

Bonjour,

essaie avec ce code :

Code:
Sub mise_en_place_date()
Dim date1 As Date

With Sheets("Données")
    .Range("A7:A1000").Clear
    .Range("A7").FormulaR1C1 = "Date/UG"
    date1 = .Range("A1").Value
    DateC1 = date1 & " 0:30"
    DateC2 = date1 & " 1:30"
    
    .Range("A8").Value = Format(DateC1, "mm/dd/yy hh:mm")
    .Range("A9").Value = Format(DateC2, "mm/dd/yy hh:mm")
    
    nb_jour = Day(DateSerial(Year(CDate(.[A1])), Month(CDate(.[A1])) + 1, 0))
    Select Case nb_jour
    Case 28:    J = 679
    Case 29:    J = 703
    Case 30:    J = 727
    Case 31:    J = 751
    End Select
    
    .Range("A8:A9").AutoFill Destination:=.Range("A8:A" & J), Type:=xlFillDefault
End With
End Sub

Nota, ton calcul du dernier jour du mois est effectué par la formule nb_jours,
et j'ai modifié le nombre affecté à J en fonction du nombre de jours du mois
 

golzag

XLDnaute Nouveau
Re : [VBA] Mise en place liste date + horaire

Salut bhbh,

Merci beaucoup pour ton aide ça fonctionne du tonnerre,

J'avais oublié qu'il pouvait y avoir des mois de 29 même si c'est rare.

Sinon je suis en train d'essayer de mettre en place une autre application, je recherche une date spécifique, le résultat n'est pas très concluant, j'ai cherché un peu sur le forum mais pas trouver de chose qui correspondent à ce que je recherche.

J'ai mis le code plus bas pour montrer ou j'en suis.

C'est obligatoire de déclarer les dates entre # # ?

Je ne dois pas être loin mais ça ne marche pas

Code:
Sub test()

Valeur = Format(#1/12/2008 12:30:00 AM#, "mm/dd/yy hh:mm")

With Worksheets("Données").Cells
    Set result = .Find(Format(Valeur, "mm/dd/yy hh:mm"), LookIn:=xlValues)

            If Not result Is Nothing Then
                    FirstAddress = result.Address
                    Range(FirstAddress).Select
            End If
End With
'
End Sub
 

golzag

XLDnaute Nouveau
Re : [VBA] Mise en place liste date + horaire

Re,

Nickel ca fonctionne,

Est-ce que tu pourrais m'en dire plus si tu as le temps sur les fonctions, quelle est la différence :

Find(Valeur, LookIn:=xlFormulas) , ici il recherche une forumle ?

Find(Format, LookIn:=xlValues)

Est-ce que ca depend du format de ce qu'on cherche ?

Merci d'avance

JO
 

Cousinhub

XLDnaute Barbatruc
Re : [VBA] Mise en place liste date + horaire

Re-,

Je pense qu'excel ne comprend pas la format "jj/mm/aa hh/mm" comme une valeur, mais comme une formule (ceci n'engage que moi....)

En fait, l'enregistreur de macro a été mon meilleur allié, pour cette partie de formule.... (et tout le monde le conseille...)

Aussi, je ne pourrai t'expliquer plus avant le pourquoi du comment, mais le principal, c'est que cela fonctionne.... ;)
 

golzag

XLDnaute Nouveau
Re : [VBA] Mise en place liste date + horaire

Je suis vraiment nul avec l'enregistreur de macro, est-ce qu'il y a des tutoriels qui existe ?

J'ai un autre souci en ce moment toujours sur le même problème.

J'ai la liste de date + horaire suivante dans la meme cellule :

01/12/2008 00:30:00
01/12/2008 01:30:00
01/12/2008 02:30:00
01/12/2008 03:30:00
01/12/2008 04:30:00
01/12/2008 05:30:00
01/12/2008 06:30:00
01/12/2008 07:30:00
...
31/12/2008 23:30:00

Je chercher à récupérer une donnée dans une autre cellule uniquement en fonction du temps, c'est à dire que je veux copier si l'horaire est entre 02:30:00 et 05:30:00.

Est-ce que c'est possible sans être obliger de séparer la colonne est 2, d'un coté les dates et de l'autre les heures ?

Merci d'avance

Jo
 

golzag

XLDnaute Nouveau
Re : [VBA] Mise en place liste date + horaire

Re,

Peut-etre l'idée serait de comparer les 8 derniers caractères de la cellule ? Qu'est ce que vous en pensez ?

Sinon j'ai trouver ce code mais il est trop compliquer pour moi.

Sub Macro1()
Dim Tc() As String
Dim Nc As Byte
Dim Cn As String
Dim x as byte
Nc = Len(ActiveCell.Value)
For x = 21 To Nc
If IsNumeric(Mid(ActiveCell.Value, x, 1)) = True Then
ReDim Preserve Tc(x - 21)
Tc(x - 21) = Mid(ActiveCell.Value, x, 1)
End If
Next x
For x = LBound(Tc) To UBound(Tc)
Cn = Cn & Tc(x)
Next x
MsgBox Cn
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : [VBA] Mise en place liste date + horaire

Bonjour à tous,

si tes date/heures sont de A8 à A487, en B8 :

=SI(ET(MOD(A8;1)>2/24;MOD(A8;1)<6/24);A8;"")

que tu recopies vers le bas

Maintenant, si tu préfères les macros, le même principe est applicable.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 535
dernier inscrit
moimeme1