Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Dodavanje reda u tabelu na zaključanom radnom listu

  • 2 odgovora
  • 1.875 pregleda

Najnovija ↓

Dodavanje reda u tabelu na zaključanom radnom listu 17.03.2017. u 11:17 · pre 117 meseci #1
Imam tabelu na zaključanom radnom listu i problem sa automatskim dodavanjem novog reda.

Potreban mi je makro koji će se aktivirati ako je selektovana zadnja otključana ćelija (u primeru to je H9) i pritisnemo TAB, a uradiće sledeće
- otključati radni list (nema šifru)
- na dnu tabele nazvane TBL_Primer dodati novi red
- zaključati radni list (bez šifre)
Potpis
Zvoni, kucanje ne radi ...
Re: Dodavanje reda u tabelu na zaključanom radnom listu 20.03.2017. u 10:08 · pre 117 meseci #2
Procedura za dodavanje novog reda u tabeli je jednostavna - Otključaj radni list, Dodaj novi red na kraju table, Zaključaj radni list

Code:
Sub AddNewRow()
   ActiveCell.Worksheet.Unprotect
   Selection.ListObject.ListRows.Add AlwaysInsert:=True
   ActiveCell.Worksheet.Protect
End Sub


Vezivanje makroa za neku prečicu na tastaturi je jednostavno Add Shortcut To Macro. Međutim na taj način nije moguće dodeljivanje Tab makrou. Zato pozivanje procedure na Tab možemo da dodamo u kodu - na događaj Workbook_Open (ili na događaj Activate radnog lista ako treba da radi samo na određenom listu)
Code:
Private Sub Workbook_Open()
 Application.OnKey "{TAB}", "MyTabProc"
End Sub


Glavni deo koda je u MyTabProc
Tu treba ispitati uslov - da li smo "na kraju" tabele
Ako jesmo da se pozove gornja procedura za dodavanja reda

Još jedna važna stvara u ovoj proceduri je da pošto smo presreli Tab taster - da ga ponovo prosledimo, ja sam to uradio u kodu sa Next.Select
Code:
Public Sub MyTabProc()
'  Dodaje novi red u tabeli
'  U slucaju da je aktivna celija poslednja otkljucana
'  Dodaje se novi red
'  Procedura se poziva na Tab taster
'  zato je dodato da se odreadi prelazak na novu celiju
'
'  P.Jovanovic za  elitesecurity.org

   Dim uslov As Boolean
   Dim lastRw As Long
   lastRw = Selection.ListObject.ListRows.Count + 1   ' racuna poslednji red tabele
   ' Uslov je da je aktivan celija u poslednjem redu tabele i da je celija iza nje zakljucana
   uslov = Not (ActiveCell.Locked) And ActiveCell.row = lastRw And ActiveCell.Offset(ColumnOffset:=1).Locked
   If uslov = True Then
      AddNewRow
    End If
   ' Odradi Tab - predji u sledecu celiju
   ActiveCell.Next.Select ' Go to Next cell
End Sub


Potpis
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Sviđa mi se1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme