..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

Zapis datuma + ure za cel mesec

Pomoč pri izdelavi makrov

Zapis datuma + ure za cel mesec

OdgovorNapisal/-a capirossi » Pe jan 08, 2010 10:05 am

Spet bi potreboval rešitev zato se obračam na vas. Torej želim, da bi v celico B1 vnesel mesec (od 1 do 12), v celico B2 leto, v celico B3 pa minute program pa bi mi v stolpec D generiral naslednje zapise:

npr.....B1 = 2
..........B2 = 2012
..........B3 = 15

........D...........
1.2.2012 00:15
1.2.2012 01:15
1.2.2012 02:15
.
.
.
29.2.2012 21:15
29.2.2012 22:15
29.2.2012 23:15

Jaz sem uporabil naslednjo kodo:

Koda: Izberi vse
Private Sub CommandButton1_Click()
Dim dnevi_v_mesecu As Integer
Dim prestopno_leto As Boolean
Dim konec_na_listu As Long
intYear = Range("B2")
intMonth = Range("B1")
dnevi_v_mesecu = 0
prestopno_leto = False

konec_na_listu = Range("D65536").End(xlUp).Row
For zanka = 2 To konec_na_listu
 Range("D" & zanka) = ""
Next
       
If intYear Mod 4 = 0 Then prestopno_leto = True
If intYear Mod 400 = 0 Then prestopno_leto = True
   
Select Case intMonth
      Case 1, 3, 5, 7, 8, 10, 12
         dnevi_v_mesecu = 31
      Case 4, 6, 9, 11
         dnevi_v_mesecu = 30
      Case 2
         If prestopno_leto = True Then
            dnevi_v_mesecu = 29
         Else
            dnevi_v_mesecu = 28
         End If
   End Select

For stej_datum = 1 To dnevi_v_mesecu
    For ura = 0 To 23
    Range("D" & stej_datum + (24 * ura)) = DateSerial(intYear, intMonth, stej_datum) & " " & TimeSerial(ura, Range("B3"), 0)
    Next
Next
End Sub


Pri kodi deluje vse razen zapisa v stolpec D...sem poizkušal že na več načinov pa nisem bil uspešen.

Koda: Izberi vse
Range("D" & ?????????) = DateSerial(intYear, intMonth, stej_datum) & " " & TimeSerial(ura, Range("B3"), 0)


Prosim, če mi lahko pomagate popraviti zgornji stavek tako da bi mi zapis deloval pravilno.

Za rešitev se vam že v naprej zahvaljujem.

Lep pozdrav, Loris
capirossi
 
Prispevkov: 25
Pridružen: Če dec 10, 2009 12:51 pm



Matjazev.NET
 

OdgovorNapisal/-a admin » Pe jan 08, 2010 10:19 am

Zakaj se trudite in računate vrstico, če pa VESTE, da mora iti naslednji izračun v naslednjo vrstico, torej:
Koda: Izberi vse
  vrstica = 1
  For stej_datum = 1 To dnevi_v_mesecu
      For ura = 0 To 23
        Range("D" & vrstica) = DateSerial(intYear, intMonth, stej_datum) & " " & TimeSerial(ura, Range("B3"), 0)
        vrstica = vrstica + 1
      Next
  Next

V ostali del kode pa se nisem spuščal, temveč sem vam rešil tisto, kar ste želeli.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3525
Pridružen: Sr jul 20, 2005 10:06 pm

OdgovorNapisal/-a capirossi » Pe jan 08, 2010 10:22 am

Najlepša hvala za rešitev...ostali deli kode delujejo tako da kar se tistega tiče ni problema.
Bom moral začeti stvari rešvati z manj kompliciranja.

Še enkrat hvala in lep pozdrav.
capirossi
 
Prispevkov: 25
Pridružen: Če dec 10, 2009 12:51 pm


Vrni se na VBA

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron