Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Softver i operativni sistemi » Ms office » VBA excel zadnja kolona i zadnji red prije praznog polja
Avko 05.12.2016 12:53
Predmet:VBA excel zadnja kolona i zadnji red prije praznog polja

kada trebamo zadnji red u nekoj koloni a da je prije praznog polja koristimo formulu:
zadnjiRed = ActiveSheet.Cells.Range("A1").End(xlDown).Row
ovo ce nam dati zadnji red u koloni A a koji je prije praznog polja.
moj problem je u tome ako imam vise kolona i zelim za svaku kolonu dobiti zadnjRed tada neznam kako se mijenja A1 u formuli dakle imam :
for f=prvaKolona to zadnjaKolona
zadnjiRed = ActiveSheet.Cells.Range("A1").End(xlDown).Row 'kako zamijeniti A1 sa f
next f
primjer u prilogu
Prilozi:
excelProba.rar (Velicina datoteke:10.84 KB)

zxz 05.12.2016 17:10
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

Mozda si ovo htio?
PreuzmiIzvorni kôd (Visual Basic):
  1. Sub test()
  2.     Sheets("List1").Select
  3.    
  4.     Dim prvaKolona As Long
  5.     prvaKolona = 1 'pocinjemo od 1.kolone
  6.    Dim zadnjaKolona As Long
  7.     zadnjaKolona = ActiveSheet.Range("A1").CurrentRegion.Columns.Count
  8.    
  9.     Dim prviRed As Long
  10.     Dim ImeKolone As String
  11.     prviRed = 2 'pocinjemo od 2.reda jer je prvi red zaglavlje
  12.    Dim zadnjiRed As Long
  13.     For f = prvaKolona To zadnjaKolona
  14.         'zadnjiRed = ActiveSheet.Cells.Range("A1").End(xlDown).Row
  15.        'odrediti zadnji red prije praznog polja za svaki stupac f
  16.        With ActiveSheet
  17.         zadnjiRed = .Cells(.Rows.Count, f).End(xlUp).Row
  18.         ImeKolone = Split(.Cells(, f).Address, "$")(1)
  19.         End With
  20.         'MsgBox "kolona:" & ImeKolone & vbNewLine & "zadnjiRed:" & zadnjiRed
  21.        Dim R As String
  22.         R = MsgBox("kolona:" & ImeKolone & vbNewLine & "zadnjiRed:" & zadnjiRed, _
  23.             vbOKCancel + vbApplicationModal + vbDefaultButton1, "Napomena")
  24.         If R = vbCancel Then
  25.         Exit For
  26.         End If
  27.     Next f
  28.    
  29. End Sub

Avko 05.12.2016 17:44
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

Probat cu sutra pa javim ali ovako od oka ono .End(xlup) zamjenir cu sa .End(xlDOwn) pa cu vidjeti sto tvoj kod radi

zxz 06.12.2016 10:42
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

Evo da prebrojis kolone moze i ovako.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function Zadnja_Kolona()
  2.     Dim Zadnja As Long
  3.     With ActiveSheet.UsedRange
  4.         Zadnja = .Columns(.Columns.Count).Column
  5.     End With
  6.     MsgBox Zadnja
  7. End Function

Avko 06.12.2016 10:52
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

nisam znao da ces iz glave raditi. Trebao sam sliku staviti, a da sam samo sliku stavio rekao bi mi da okačim primjer. hehehe


znaci , prebrojati do prve prazne celije

dex 06.12.2016 11:13
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

A da negde dole nisko postavis funkciju counta(A2:A17)
dobijas broj celija koje nisu prazne

Avko 06.12.2016 11:25
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

biće brdo tih listova pa sam mislio napraviti kod koji bi upotrijebio na sve listove. Da nemoram unositi ispod svake kolone funkciju prebroji celije koje nisu prazne, a evo sada sam i pred problemom sortiranja kolona ali po kriteriju prve celije. Fino sam zamislio sve to i htio sam se necim zabavljat, ali onda dodem do stvari koje neznam rijesiti.

zxz 06.12.2016 13:09
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

E ovo sam mislio tebi ostaviti jer znam da znas to uraditi.
Kako si brebrojao kolone tako preberojis i redove u koloni i ako naidjes na prazanu celiju znaci to je ta
PreuzmiIzvorni kôd (Visual Basic):
  1. Sub test()
  2.     Sheets("List1").Select
  3.    
  4.     Dim prvaKolona As Long
  5.     prvaKolona = 1 'pocinjemo od 1.kolone
  6.    Dim zadnjaKolona As Long
  7.    
  8.     zadnjaKolona = ActiveSheet.Range("A1").CurrentRegion.Columns.Count
  9.     Dim prviRed As Long
  10.     Dim ImeKolone As String
  11.     prviRed = 2 'pocinjemo od 2.reda jer je prvi red zaglavlje
  12.    Dim zadnjiRed As Long
  13.     For f = prvaKolona To zadnjaKolona
  14.         With ActiveSheet
  15.         Dim Cell As Range
  16.             For Each Cell In .Columns(f).Cells
  17.                 If Len(Cell) = 0 Then
  18.                 MsgBox "Celija" & Cell.Address
  19.                 Exit For
  20.                 End If
  21.             Next Cell
  22.         End With
  23.     Next f
  24.    
  25. End Sub

Avko 06.12.2016 14:42
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

nebi ja to nikad napravio.
ovo nebi znao:

Dim Cell As Range - znam za Long,Int, String ali ovo nisam znao

PreuzmiIzvorni kôd (Text):
  1. For Each Cell In .Columns(f).Cells - dan danas mi je nejasno ovo Each, uvijek prepisujem sa interneta
  2. ...
  3. Next Cell

ovo mi je jako dobra stvar:

PreuzmiIzvorni kôd (Text):
  1. R = MsgBox("kolona:" & ImeKolone & vbNewLine & "zadnjiRed:" & zadnjiRed, _
  2.             vbOKCancel + vbApplicationModal + vbDefaultButton1, "Napomena")
  3.         If R = vbCancel Then
  4.                    Exit For
  5.         End If

ja sam uvijek stavljao breakpoint pa sa F8 pokrenuo opet do breakpointa ili zaustavio kod ako sam zelio izaci. Sada uz ovo tvoje nemoram brinuti o breakpointu uvijek za vrijeme msgbox-a mogu sa ESC zaustaviti izvrsavanje koda.

zxz 06.12.2016 16:51
Predmet:Re: VBA excel zadnja kolona i zadnji red prije praznog polja

For Each Objekat In SkupinaObjekata

next objekat.

Pa moze biti skupina kolona u celiji i celija.
Skupina redova pa red
Skupina shitova u aplikaciji itd..