Centar za edukaciju-BiH


Odgovori na temu











Prosiri Boja Prosiri Velicina Spoiler WMP-Videos Neprimjereno
Podebljano Kurziv Podvuceno Slika Internet adresa (URL) Citat Van teme Neuredena lista Narucena lista Pretplata Nadredeni
Grinning Happy Cool Surprised Disappointed Laughing In love Angry No comment Embarrassing Shy Smiling Tongue Undecided Innocent Wink Sad Prosiri i skupi vise smajlica
Povecaj velicinu · Smanji velicinu Provjeri duzinu

Pretvori smajlice u postu
Pretvori & quot; vokable & quot; u postu


Upravljanje prilozima
Mozete priloziti 3 datoteke!



Posljednjih 15 postova u ovoj temi


Avko (08.06.2015 23:31):
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):
  1. For brojac = 1 To 20
  2.     Set celija = Worksheets("List1").Cells(brojac, 3)
  3.     ' neki uvijet
  4.    'npr.  If celija.Value) = vrijednost Then celija.Value = vrijednost2
  5. Next Counter

primjer 2. for ... each petlja
PreuzmiIzvorni kôd (Visual Basic):
  1. For Each celija In Worksheets("List1").Range("A1:D10").Cells
  2.     If celija.Value = vrijednost Then celija.Value = vrijednost2
  3. Next

primjer 3. ako neznamo pocetak i kraj raspona onda provedemo petlju kroz aktivni raspon
PreuzmiIzvorni kôd (Visual Basic):
  1. For Each celija In ActiveCell.CurrentRegion.Cells
  2.     If c.Value = vrijednost  Then celija.Value = vrijednost2
  3. Next

tako bi za ovaj gore primjer upotrijebili petlju kroz celije u primjeru 3.

PreuzmiIzvorni kôd (Visual Basic):
  1. dim startDatum as Date
  2. dim endDatum as Date
  3. startDatum="4.1.2015."
  4. endDatum="9.1.2015."
  5. Dim rang as Range
  6. Range("F1").Select
  7. Set rang = Range(Selection, Selection.End(xlToRight))
  8. dim imeRed as integer
  9. imeRed=Application.WorksheetFunction.Match("luka", Range("E:E"), 0)
  10. dim redIspis as Integer
  11. redIspis=0
  12. dim kolonaIspis as Integer
  13. kolonaIspis=0
  14.  
  15. For red = 1 To rang.Rows.Count
  16.   For kolona = 1 To rang.Columns.Count
  17.     If rang.Cells(red, kolona).Value >= startDatum And rng.Cells(red, kolona).Value <= endDatum Then
  18.          redIspis = redIspis + 1
  19.            If kolonaIspis = 0 Then kolonaIspis = rang.Row - 1
  20.                strVar = Cells(imeRed, kolona + 2).Value
  21.                Cells(redIspis, 1) = rang.Cells(red, kolona).Value
  22.                Cells(redIspis, 2) = Cells(imeRed, kolona + 2).Value
  23.            End If
  24.    Next kolona
  25. Next red

Rijeseno, eventualno ako se netko hoce pohvaliti da ima bolji kod Smiling
uff, vec je 0:30 idem spat. buonanotte!

zxz (08.06.2015 23:20):
Predmet: Re: VBA Excel For Each Transponiraj (vodoravno u okomito) - mozgalica
To je isto cini mi se kao i u predhodnoj temi ali i dalje nemogu dokuciti tacno sta hoces.
Mora da ovo ima smisla da ti negdje treba.
Posto po meni nisi bas detaljno opisao sta hoces pokusat cu ja opisati a ti me ispravi gdje grijesim.

napraviti proceduru koja ce imati ulazne parametre:
Pocetni datum i krajnji datum i ime.

Procedura treba da Pretrazi sve datume u koloni A2 i da nadje redove koji imaju datum u okviru pocetnog i krajnjeg datuma te da ima u koloni b u istom redu zahtijevano ime u ulaznom parametru ime.

Ako su ova dva uslova zadovoljena onda datum da prepise u sledecu slobodnu kolonu u prvi red a u drugi red prepisati artikal iz kolone c iz reda u kome je datum.

eto ti sad popravi ako nije tako

Avko (08.06.2015 17:24):
Predmet: VBA Excel For Each Transponiraj (vodoravno u okomito) - mozgalica
dobro nije bas naslov ono sto trazim ali sam u naslov unio sve ono sto bi se moglo naci u ovoj mozgalici, bar je za mene mozgalica a za vas, neznam.

[img]
image url upload[/img]

na gornjoj slici imamo sa desne strane podatke koje moramo prema rangu datuma stavljati u lijevu stranu.
Dakle kod bi bio nesto ovako:

PreuzmiIzvorni kôd (Visual Basic):
  1. Dim rang as Range
  2. Range("F1").Select
  3. Set rang = Range(Selection, Selection.End(xlToRight))
  4. For Each celija In rng
  5.      If celija.Value >= startDatum And celija.Value <= endDatum Then
  6.          'kod koji ce:
  7.         'UVIJEK zapoceti ispisivati od celije (2,1) tj A2
  8.         ' a zapocet ce ispisivati od startDatuma do endDatuma
  9.         'u ovom slucaju izabran je luka, a njegov red mozemo odrediti sa:
  10.         ' Application.WorksheetFunction.Match("luka", Range("E:E"), 0) ili
  11.         'bi vi to odredili drugacije
  12.         'Cells(2,1)=startDatum : Cells(2,2)="luka": Cells(2,3)="jagoda"
  13.         'Cells(3,1)=startDatum + 1:Cells(3,2)="luka": Cells(3,3)="kruska"
  14.         'itd
  15.  
  16.      End If
  17. Next celija

Sva vremena su GMT +01:00. Trenutno vrijeme: 11: 52 pm.