Avko 07.07.2017 11:03
Predmet:funkcija za trazenje zadnje kolone

    A    B    C
1    Jabuka    10    
2    Tresnja    5    
3    Visnja    6    
4    Sljiva    12    2
5    Banana    10    3
6    Kruska    4    
7    Krastavac    5     

imamo funkciju za trazenje zadnje kolone
PreuzmiIzvorni kôd (Visual Basic):
  1. Function traziZadnjuKolonu(ImeSita As String)
  2.     Dim Zadnji As Long
  3.     Dim ws As Worksheet
  4.     Set ws = Sheets(ImeSita)
  5.     With ws
  6.         Zadnji = .Cells(1, .Columns.Count).End(xlToLeft).Column
  7.     End With
  8.     traziZadnjuKolonu = Zadnji
  9. End Function

pozivamo ju :
aktivniList = ActiveSheet.Name
zadnjaKolona = traziZadnjuKolonu(aktivniList)

problem je sto nemamo u prvom redu ispisanu C kolonu,trecu kolonu,
pa nam nece dati rezultat 3, zadnjaKolona<>3,
vec ce nam dati rezultat 2, zadnjaKolona=2

Kako napisati funkciju koja ce nam dati rezultat stvarne zadnje kolone?

Gjoreski 07.07.2017 19:58
Predmet:Re: funkcija za trazenje zadnje kolone

Ako je uvjek jedna kolona prazna samo mozes dodsti +1 i on otcitace zadnju kolonu.

Avko 07.07.2017 22:04
Predmet:Re: funkcija za trazenje zadnje kolone

Nije u tome i je problem

zxz 09.07.2017 01:50
Predmet:Re: funkcija za trazenje zadnje kolone

PreuzmiIzvorni kôd (Visual Basic):
  1. Function traziZadnjuKolonu(ImeSita As String, OdReda As Integer, DoReda As Integer)
  2.     Dim Zadnji As Long
  3.     Dim ws As Worksheet
  4.     Dim I As Integer
  5.     Dim Brojac As Integer
  6.    
  7.     Set ws = Sheets(ImeSita)
  8.     With ws
  9.         For I = OdReda To DoReda
  10.         Brojac = .Cells(I, .Columns.Count).End(xlToLeft).Column
  11.         If Zadnji < Brojac Then
  12.         Zadnji = Brojac
  13.         End If
  14.         Next I
  15.     End With
  16.     traziZadnjuKolonu = Zadnji
  17. End Function
OdReda i DoReda
Od kojeg do kojeg reda da pregleda.

Avko 09.07.2017 12:37
Predmet:Re: funkcija za trazenje zadnje kolone

imam oko 1500 redova.
a nesto sam prepravio tvoju funkciju pa ako mozes komentiraj dali bi ona nasla to sto meni treba:
PreuzmiIzvorni kôd (Visual Basic):
  1. Function traziZadnjuKolonu(ImeSita As String)
  2.     Dim Zadnji As Long
  3.     Dim ws As Worksheet
  4.     Dim zadnjaCelija As Range
  5.    
  6.     Set ws = Sheets(ImeSita)
  7.    
  8.     Set zadnjaCelija = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), LookIn:=xlFormulas, _
  9.                                     LookAt:=xlPart, SearchOrder:=xlByColumns, _
  10.                                     SearchDirection:=xlPrevious, MatchCase:=False)
  11.    
  12.     Zadnji = zadnjaCelija.Column
  13.     traziZadnjuKolonu = Zadnji
  14. End Function

zxz 10.07.2017 09:08
Predmet:Re: funkcija za trazenje zadnje kolone

Stavi ti temu top ako hoces ali stavi svoju funkciju i u ovu temu:
http://www.icentar.ba/showtopic.php?id=6152

Avko 10.07.2017 13:51
Predmet:Re: funkcija za trazenje zadnje kolone

to sam i mislio, ali se nismo razumjeli

moju funkciju u temu "VBA Excel funkcije" , a onda tu temu "VBA Excel funkcije" u TOP,a
ne ovu temu u TOP

zxz 10.07.2017 19:04
Predmet:Re: funkcija za trazenje zadnje kolone

Pa da ti si moderator i stavljas u top sto smatras da treba.

zxz 09.07.2017 21:23
Predmet:Re: funkcija za trazenje zadnje kolone

Procedura je dobra i radit ce ono sto ti hoces.
Ja sam isao na onu variantu samo zbog toga sto se treba odnekle postaviti.
naime dok sam radio funkcija mi pokazala 8 kolona a ja sam koristio samo 5.
Poslije sam skontao da sam imao poziv funkcije iz 8 kolone pa sam onda napravio ono od do.
Doduse nisam ja nasao ovako elegantno rjesenje kao tvoje.
Ova tvoja bi dobra bila i u nekoj temi korisne procedure ili vec kako se zove.

Avko 10.07.2017 00:01
Predmet:Re: funkcija za trazenje zadnje kolone

Znaci mogao bi je staviti u VBA excel funkcije i cijelu temu u TOP?