Imam bazo podatkov: stolpec A - datum, stolpec B - dogodek. Na drugem listu bi rad, da mi ob vpisu datuma v celico, npr. A1, v celico B1 vpisalo vse dogodke, ki so s tem datumom povezani.
Kako podatke iz več celic vpisati v eno
Kako podatke iz več celic vpisati v eno
Spet ne najdem rešitve ali pa so mi spet možgančki malo zatajili
Imam bazo podatkov: stolpec A - datum, stolpec B - dogodek. Na drugem listu bi rad, da mi ob vpisu datuma v celico, npr. A1, v celico B1 vpisalo vse dogodke, ki so s tem datumom povezani.
Imam bazo podatkov: stolpec A - datum, stolpec B - dogodek. Na drugem listu bi rad, da mi ob vpisu datuma v celico, npr. A1, v celico B1 vpisalo vse dogodke, ki so s tem datumom povezani.
Za začetek sem (malo posnel, malo napisal) macro, ki naj bi mi izpisal vse podatke za izbrane dneve.
Vendar je nekje napaka (pa mi znanje ne omogoča, da bi jo odkril), ker se mi macro ne sprehodi po vseh sedmih dnevih, ampka mi samo prvega sedemkrat prepiše. Mi lahko kdo pove, kje sem ga polomil
Vendar je nekje napaka (pa mi znanje ne omogoča, da bi jo odkril), ker se mi macro ne sprehodi po vseh sedmih dnevih, ampka mi samo prvega sedemkrat prepiše. Mi lahko kdo pove, kje sem ga polomil
Koda: Izberi vse
Dim vrsta As String 'stolpec z datumi v iskanem tednu h2:h8
vrsta = Range("h2").Offset(i, 0)
For i = 0 To 6
Selection.AutoFilter Field:=4, Criteria1:=vrsta 'izbere datum
Range("B2:C10").Select 'kopira območje izbora; predvidoma podatkov ne bo več kot 8
Selection.Copy
Range("L20").Select 'območje kopiranja
ActiveCell.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
Selection.AutoFilter Field:=4
Application.CutCopyMode = False
Range("B5").Select
Next i
Ne, ne... z nobeno vgrajeno Ecelovo funkcijo ne boste mogli več rešitev zapisati v eno samo celico. Je potrebno napisati makro, ki to naredi in spodaj vam ga prilagam
To je Excelova funkcija, ki sprejme dva parametra. Prvi parameter je območje, na katerem se nahajajo datumi in dogodki - torej to območje mora imeti vsaj dve koloni(!); drugi parameter pa je datum, za kateraga vas dogodki zanimajo. Funkcija vrne seznam vseh dogodkov za izbran datum, ločene s podpičjem.
Primer uporabe:
Koda: Izberi vse
'
' www.matjazev.net
' junij 2009
'
Function NajdiDogodkeZaDan(Obmocje As Range, datum As Date)
NajdiDogodkeZaDan = ""
Dim vrstica As Long
For vrstica = 0 To Obmocje.Rows.Count
If (Obmocje.Cells(vrstica, 1) = datum) Then
NajdiDogodkeZaDan = NajdiDogodkeZaDan & Obmocje.Cells(vrstica, 2) & ";"
End If
Next
End Function
Primer uporabe:
Koda: Izberi vse
' če je iska datum zapisan v celici D23
=NajdiDogodkeZaDan(B4:C52;D23)
' če želite dogodke za datum 1.4.2009, ki pa ni posebej zapisan v neki celici
=NajdiDogodkeZaDan(B4:C52;DATE(2009;1;4))
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Hm. Po petih mesecih se mi je porodilo novo vprašanje (da ne rečem ideja). Ta funkcija vrne rezultat iz drugega stolpca vpisanega območja. Ali in kako bi podobna funkcija vrnila rezultat iz poljubnega stolpca v vpisanem območju?
Poizkušal se v kodo dodati še dodatno območje "kolone" (podobno kot so že vpisane "vrstica"), pa mi javlja napako
Sem pač prekratek (in samo ljubitelj) v programiranju
Poizkušal se v kodo dodati še dodatno območje "kolone" (podobno kot so že vpisane "vrstica"), pa mi javlja napako
Sem pač prekratek (in samo ljubitelj) v programiranju
Funkciji dodate še en parameter:
Seveda pa morate potem popraviti tudi klice po Excelovi tabeli:
Koda: Izberi vse
'
' www.matjazev.net
' november 2009
'
Function NajdiDogodkeZaDan(Obmocje As Range, datum As Date, kolona as Integer)
NajdiDogodkeZaDan = ""
Dim vrstica As Long
For vrstica = 0 To Obmocje.Rows.Count
If (Obmocje.Cells(vrstica, 1) = datum) Then
NajdiDogodkeZaDan = NajdiDogodkeZaDan & Obmocje.Cells(vrstica, kolona) & ";"
End If
Next
End Function
Koda: Izberi vse
' torej namesto
=NajdiDogodkeZaDan(B4:C52;D23)
' mora pisati
=NajdiDogodkeZaDan(B4:C52;D23;2)
' oz. pač katera druga kolona
=NajdiDogodkeZaDan(B4:C52;D23;5)
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator