zxz 06.03.2017-12:14
Subject: Prazna polja u regiji

Vraca broj praznih polja u obiljezenom regionu.
DownloadIzvorni kod (Visual Basic):
  1. Function Prazna(Regija As Range)
  2. Dim Br_polja As Integer
  3.      Br_polja = WorksheetFunction.CountBlank(Regija)
  4.      MsgBox "Prazniih polja u regiji " & Regija.Address & vbCr & Br_polja
  5.      Prazna = Br_polja
  6. End Functio

zxz 06.03.2017-01:50
Subject: VBA Excel funkcije*

U ovoj temi bit ce predstavljene neke korisne vba funkcije a ticu se excela.

zxz 06.03.2017-01:55
Subject: Zadnj prazan red u koloni

DownloadIzvorni kod (Visual Basic):
  1. Function ZanjiRedKolone()
  2. 'Pronalazi zadnj prazan red u koloni A1
  3.    Dim ZadnjRed As Long
  4.     With ActiveSheet
  5.         ZadnjRed = .Range("A1").SpecialCells(xlCellTypeLastCell).Row
  6.     End With
  7.     MsgBox ZadnjRed
  8. End Function

zxz 06.03.2017-02:15
Subject: Zadnja kolona u redu

Pronalazi zadnju kolonu u zadatom redu
DownloadIzvorni kod (Visual Basic):
  1. Function ZadnjaPunaKolona()
  2. 'Pronalazi zadnju popunjenu kolonu u redu 1
  3.    Dim ZadnjaKolona As Long
  4.     With ActiveSheet
  5.         ZadnjaKolona = .Range("A1").SpecialCells(xlCellTypeLastCell).Column
  6.     End With
  7.     MsgBox ZadnjaKolona
  8. End Function

zxz 07.03.2017-20:54
Subject: Broj selektovani celija

Ova procedura braca broj selektovanih celija
DownloadIzvorni kod (Visual Basic):
  1. Function Broj_Celija(Region As Range)
  2. Dim tmp As String, str As String
  3. Dim IntTmp As Integer
  4.  
  5. tmp = Region.Count
  6. tmp = Right(tmp, 1)
  7. IntTmp = Val(tmp)
  8.     If tmp > 1 And tmp < 5 Then
  9.     str = "
  10. elije"
  11.     Else
  12.     str = " elija"
  13.     End If
  14. MsgBox "Ukupno: " & Region.Count & " " & str
  15. Broj_Celija = Region.Count
  16. End Function

dex 07.03.2017-21:02
Subject: Re: VBA Excel funkcije*

Svaka cast!
Vodis racuna i o gramatici Smiling

zxz 09.03.2017-00:08
Subject: Selektovanje polja

Selektovanja polja pomocu VBA.
DownloadIzvorni kod (Visual Basic):
  1. Function Selektovanje()
  2. Dim Regija As Range
  3.  
  4. Set Regija = Range("A1:B9")
  5. Regija.Select
  6. End Function

zxz 09.03.2017-10:03
Subject: Verzija excela

Ova funkcija vraca verziju excela u kojem radite
DownloadIzvorni kod (Visual Basic):
  1. Function verzija()
  2. Dim Ver As Integer
  3. Dim Str As String
  4. Ver = Val(Application.Version)
  5. Select Case Ver
  6. Case 8
  7. Str = "Excel 97"
  8. Case 9
  9. Str = "Excel 2000"
  10. Case 10
  11. Str = "Excel 2002"
  12. Case 11
  13. Str = "Excel 2003"
  14. Case 12
  15. Str = "Excel 2007"
  16. Case 14
  17. Str = "Excel 2010"
  18. Case 15
  19. Str = "Excel 2013"
  20. Case 16
  21. Str = "Excel 2016"
  22. Case Else
  23. Str = "Nepoznata verzija"
  24. End Select
  25.  
  26. MsgBox Str
  27. End Function

Avko 09.03.2017-15:13
Subject: Razlika izmedu dva string vremena

Nije problem usporediti datum u VBA, no ponekad u nekim slucajevima imate samo vrijeme u celijama, a i to vrijeme je formatirano kao string.
funkcija koja usporeduje dva vremena koja su formatirana kao string.

DownloadIzvorni kod (Visual Basic):
  1. sub test()
  2.   If vrijemeBroj("10:34:21") > vrijemeBroj("11:23:11") Then
  3.                  MsgBox "vece"
  4.   ElseIf vrijemeBroj("10:34:21")<vrijemeBroj("11:23:11") then
  5.                  MsgBox "manje"
  6.   else
  7.                  MsgBox "jednako"
  8.   End if
  9.  
  10. end sub
  11.  
  12. Function vrijemeBroj(vrijeme As String) As Long
  13.     vrijemeBroj = CLng(Replace(Format(vrijeme, "hhnnss"), ":", ""))
  14. End Function

dex 10.03.2017-16:33
Subject: Presek

A jeste li znali za funkciju presek.
Obelezava se sa SPACE (razmak)

Ako u formula Bar ukucamo =D1:D8 B2:M2 ili =D:D 2:2

Dobicemo vrednost u iz celije D2

Moze da se koristi i u matricnim formulama, kao rezultat daje oblast preseka dve oblasti

Na prvi pogled nista narocito, ali funkcija svoju pravu snagu pokazuje u kombinaciji sa INDIRECT i imenovanim podrucjima. Nesto slicno kao MATCH - INDEX, samo mnoogooo jednostavnije

Videti primer. Obratite paznju na D18, zgodno za pretrazivanje velikih tabela.
Moze da se iskoristi i za prebacivanje unakrsnih tabela u bazu podataka, ali o tome u novoj temi
Prilozi:
Presek.zip (Veličina: 2.36 KB)

Avko 11.03.2017-10:56
Subject: Re: VBA Excel funkcije*

Ja dodao grad i neke vrijednosti za mjesece i onda u onoj koloni desno upisao
=INDIRECT(K28) INDIRECT(L28), ali mi dao rezultat: #REF!

dex 11.03.2017-11:06
Subject: Re: VBA Excel funkcije*

Trebas ponovo redefinisati nazive oblasti.
Oznacis oblast, odes na formula ribon, kod defined names kliknes create from selection, cekiras top row i left column

zxz 12.03.2017-13:37
Subject: Slobodan prostor na disku

Da bi procedura radila u referencama treba biti ukljuceno:
Microsoft Sripting Runtime
Procedura vraca veličinu slobodnog prostora na disku.
DownloadIzvorni kod (Visual Basic):
  1. Option Explicit
  2.  
  3. Public FSO As New FileSystemObject
  4. Function SlobodanProstor(ImeDiska As String)
  5. Dim disk As Drive
  6. Dim vel As Double
  7. Set disk = FSO.GetDrive(ImeDiska)
  8. vel = disk.FreeSpace
  9. vel = vel / 1073741824 ' pretvaranje u GB
  10. vel = WorksheetFunction.Round(vel, 2)
  11. MsgBox "Slobodnog prostora na disku " & ImeDiska & " je " & vel & " GB"
  12. SlobodanProstor = vel
  13. End Function

zxz 12.03.2017-13:45
Subject: Kreiranje direktorija

Da bi procedura radila u referencama treba biti ukljuceno:
Microsoft Sripting Runtime
Procedura kreira direktorij na zadatoj putanji

DownloadIzvorni kod (Visual Basic):
  1. Option Explicit
  2.  
  3. Public FSO As New FileSystemObject
  4. Sub NapraviDir()
  5. Dim Ime_Dir As String
  6. Ime_Dir = InputBox("Putanja do direktorija :")
  7. If Len(Ime_Dir) > 0 Then
  8.   If FSO.FolderExists(Ime_Dir) = True Then
  9.     MsgBox "Direktorij ve postoji!"
  10.   Else
  11.     FSO.CreateFolder (Ime_Dir)
  12.     MsgBox ("Direktorij je kreiran!")
  13.   End If
  14. Else
  15.   MsgBox "Niste upisali putanju i ime direktorija"
  16. End If
  17. End Sub

Avko 11.07.2017-08:13
Subject: Re: trazi zadnju kolonu

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

funkcija trazi zadnju kolonu
DownloadIzvorni kod (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

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