Predmet:Re: VBA Excel For Each Transponiraj (vodoravno u okomito) - mozgalica
evo rijesenja. Problem je bio sto sam zapeo za for each ko sivonja,
a ima lijepih petlji i bez te
primjer 1. jednostavna upotreba brojaca za redove
PreuzmiIzvorni kôd (Visual Basic):For brojac = 1 To 20
Set celija = Worksheets("List1").Cells(brojac, 3)
' neki uvijet
'npr. If celija.Value) = vrijednost Then celija.Value = vrijednost2
Next Counter
primjer 2. for ... each petlja
PreuzmiIzvorni kôd (Visual Basic):For Each celija In Worksheets("List1").Range("A1:D10").Cells
If celija.Value = vrijednost Then celija.Value = vrijednost2
Next
primjer 3. ako neznamo pocetak i kraj raspona onda provedemo petlju kroz aktivni raspon
PreuzmiIzvorni kôd (Visual Basic):For Each celija In ActiveCell.CurrentRegion.Cells
If c.Value = vrijednost Then celija.Value = vrijednost2
Next
tako bi za ovaj gore primjer upotrijebili petlju kroz celije u primjeru 3.
PreuzmiIzvorni kôd (Visual Basic):dim startDatum as Date
dim endDatum as Date
startDatum="4.1.2015."
endDatum="9.1.2015."
Dim rang as Range
Range("F1").Select
Set rang = Range(Selection, Selection.End(xlToRight))
dim imeRed as integer
imeRed=Application.WorksheetFunction.Match("luka", Range("E:E"), 0)
dim redIspis as Integer
redIspis=0
dim kolonaIspis as Integer
kolonaIspis=0
For red = 1 To rang.Rows.Count
For kolona = 1 To rang.Columns.Count
If rang.Cells(red, kolona).Value >= startDatum And rng.Cells(red, kolona).Value <= endDatum Then
redIspis = redIspis + 1
If kolonaIspis = 0 Then kolonaIspis = rang.Row - 1
strVar = Cells(imeRed, kolona + 2).Value
Cells(redIspis, 1) = rang.Cells(red, kolona).Value
Cells(redIspis, 2) = Cells(imeRed, kolona + 2).Value
End If
Next kolona
Next red
Rijeseno, eventualno ako se netko hoce pohvaliti da ima bolji kod
uff, vec je 0:30 idem spat. buonanotte!
zivot je moja domovina.