datum v VBA

Pomoč pri izdelavi makrov
Odgovori
AndrejL
Prispevkov: 25
Pridružen: Po Nov 10, 2008 9:22 pm

datum v VBA

Odgovor Napisal/-a AndrejL »

zdravo!

prosil bi za pomoč glede iskanja datuma v listu s pomočjo makroja.

npr. rad bi našel datum "23.11.2009" v prvem stolpcu.

ukaz

Koda: Izberi vse

n=application.worksheetfunction.match("23.11.2009", columns(1),0)
seveda ne deluje, ker je v resnici treba iskati število 40140, ki je excelova pretvorba današnjega datuma.

ne uspe pa mi v VBA najti ukaza, ki današnji datum pretvori v 40140, niti mi ne uspe tega v VBA sam izračunati.

prosim za pomoč.

hvala,

andrej
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Samo pretvorba v long:

Koda: Izberi vse

? date
23.11.2009 

? clng(date)
40140 
lp,
Matjaž Prtenjak
Administrator
AndrejL
Prispevkov: 25
Pridružen: Po Nov 10, 2008 9:22 pm

Odgovor Napisal/-a AndrejL »

hvala
capirossi
Prispevkov: 25
Pridružen: Če Dec 10, 2009 12:51 pm

Odgovor Napisal/-a capirossi »

Pozdravljeni!

Jaz bi pa potreboval pomoč pri naslednji nalogi:

V celici A1 imam zapisan datum, ki mu določim obliko mm.yy (format cells --> number --> custom --> mm.yy)

V celicah B1 : B10 pa imam zapisane datume (npr 1.12.2009, 23.7.2010, 12.10.2009) ravno tako v obliki mm.yy.

Moja želja je, da bi vse datume (v celici B1 : B10), ki so v istem mesecu in letu kot datum v celici A1 odebelil.

Če napišem:

Koda: Izberi vse

For isci = 1 To 10
If (Range("A1") = Range("B" & isci)) Then
 Range("B" & isci).Font.Bold = True
End If
Next
mi odebeli le tiste datume, ki se z datumom v celici A1 ujemajo v dnevu, mesecu in letu.

Prosim za pomoč

Lep pozdrav, Loris
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Oblika izpisa ne vpliva na vrednost! Zatorej vaša koda zmeraj primerja celoten datum v celici A1 z datumi v drugih celicah. Če želite primerjati leta in mesece morate to tudi povedati. Spodaj imate popravljeno kodo:

Koda: Izberi vse

For isci = 1 To 10
  If (Year(Range("A1")) = Year(Range("B" & isci))) And _
     (Month(Range("A1")) = Month(Range("B" & isci))) Then
    Range("B" & isci).Font.Bold = True
  End If
Next
lp,
Matjaž Prtenjak
Administrator
capirossi
Prispevkov: 25
Pridružen: Če Dec 10, 2009 12:51 pm

Odgovor Napisal/-a capirossi »

Najlepša hvala za pomoč.

Lep pozdrav, Loris
Odgovori