• 18 odgovora
  • 7.725 pregleda
UserForm - Kako... 27.03.2016. u 16:04 · pre 128 meseci #1
Napravio bih UserForm, ali sam "kratak" sa VBA kodovima. Kako da na Listu "Podaci" (za početak) postavim UserForm? Evo, stigao sam doovde i dalje - ni makac! Kako napisati kod za ovaj obrazac? I, molio bih, da me uputite na neki tutorial za UserForm u Excel-u (ako je moguće na srpskom - illi sličnim jezicima), sa urađenim i objašnjenim primerima.
Re: UserForm - Kako... 28.03.2016. u 11:54 · pre 128 meseci #3
U ovom primeru to radi. Međutim, kada sam to prebacio u Bazu koju radim - unešeni podatak mi je ubačen tek na 501 mesto (postoji kreirana tabela sa mogućih 500 unosa), iako je podatak trebao biti ubačen na mesto broj dva. I još nešto - "ne razlikuje" već upisane podatke. Recimo, svaki naredni redni broj može biti isti kao i prethodni i svako novo ime i prezime može biti kao i prethodno. Znači, kako napisati u kodu da određene kolone ne smeju imati identične (duple) podatke?

I dalje mi je potreban tutorial sa primerima za pravljenje UserForm u Excel-u (na srpskom, hrvatskom, engleskom,...)
Re: UserForm - Kako... 28.03.2016. u 17:07 · pre 128 meseci #4
Malo sam doradio (iskombinovao) upisani kod i sada radi.
Procedura ubacuje podatke gde treba. Malopre nije radila jer je tražila prvi slobodan (kompletan) red u određenoj tabeli, a njoj su bile popunjene ćelije za "Redni broj" sve do broja 500.

Ostaje pitanje:
Da li mogu da preko Forme (i njenog koda) zabraniti unos identičnih podataka u određenu kolonu (recimo: Ime i prezime). Takav sam unos "zabranio" u tabeli (koloni) preko Validacije; Znači direktno u Tabeli nije moguće uneti dva identična imena i prezimena, ali kada se to uradi preko Forme, tabela (odnosno - Validacija kolone) dozvoli takav unos. Šta bi radio, u tom slučaju, da su mi podaci (recimo) JMBG - koji nikako ne smeju biti isti?
Re: UserForm - Kako... 28.03.2016. u 22:54 · pre 128 meseci #5
Uaci ovaj kod na list gdje kontrolišeš šifru ili nesto drugo.
Ovaj kod kontroliše stupac A ,i ne mozes unijeti identičan podatak u stupac A


Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column <> 1 Or .Cells.Count > 1 Then Exit Sub
If WorksheetFunction.CountIf(Columns(.Column), .Value) > 1 Then
Application.DisplayAlerts = False
.ClearContents
Application.DisplayAlerts = True
MsgBox "Kupac vec postoji sa tom sifrom!"
End If
End With
End Sub
Potpis
Jasmin
Re: UserForm - Kako... 29.03.2016. u 07:14 · pre 128 meseci #7
Citat:
jaskojsako:
Uaci ovaj kod na list gdje kontrolišeš šifru ili nesto drugo.
Ovaj kod kontroliše stupac A ,i ne mozes unijeti identičan podatak u stupac A


Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column <> 1 Or .Cells.Count > 1 Then Exit Sub
If WorksheetFunction.CountIf(Columns(.Column), .Value) > 1 Then
Application.DisplayAlerts = False
.ClearContents
Application.DisplayAlerts = True
MsgBox "Kupac vec postoji sa tom sifrom!"
End If
End With
End Sub

Da li je ovo kod za kontrolu tabelarnog unosa ili za kontrolu unosa putem Forme ili oboje? U kom delu koda treba promeniti oznaku kolone - recimo kolona (stubac) C?
Re: UserForm - Kako... 29.03.2016. u 12:37 · pre 128 meseci #9
Citat:
pcpopovic:
Napravio bih UserForm, ali sam "kratak" sa VBA kodovima. Kako da na Listu "Podaci" (za početak) postavim UserForm? Evo, stigao sam doovde i dalje - ni makac! Kako napisati kod za ovaj obrazac? I, molio bih, da me uputite na neki tutorial za UserForm u Excel-u (ako je moguće na srpskom - illi sličnim jezicima), sa urađenim i objašnjenim primerima.

Pogledaj Excel VBA and User Forms (5 part section)
Potpis
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
Re: UserForm - Kako... 29.03.2016. u 12:39 · pre 128 meseci #10
Malo ću sam sa sobom: "Umesto zareza se pišu tačke i zarezi"!
Re: UserForm - Kako... 29.03.2016. u 13:32 · pre 128 meseci #11
Samo, ako može, na šta se odnose brojevi: 2;0;0 (u prvom delu formule)i: -1;1 (u drugom delu formule)?
=OFFSET(List2!$A$2;0;0;COUNTA(List2!$A:$A)-1;1)

[Ovu poruku je menjao pcpopovic dana 29.03.2016. u 17:03 GMT+1]
Re: UserForm - Kako... 29.03.2016. u 20:51 · pre 128 meseci #12
Citat:
pcpopovic: Malo ću sam sa sobom: "Umesto zareza se pišu tačke i zarezi"!
Na EX YU području uglavnom se kao separator argumenata u Excel formuli koristi točka-zarez (;) ali to nije pravilo. Ako su ti postavke Windows OS-a na US tada se u Excelu kao separator argumenta koristi zarez (,)
Citat:
pcpopovic: Samo, ako može, na šta se odnose brojevi: 2;0;0 (u prvom delu formule)i: -1;1 (u drugom delu formule)?
Da bi brzo uočio dijelove formule tj. od kojih argumentata se sastoji formula ili bolje rečeno neka ugniježđena funkcija, potrebno je da selektiraš ćeliju sa formulom i klikneš na određeno mjesto unutar formule/funkcije (u formula baru ili polju za unos formule). Tada ti se pojavi okvir sa argumentima formule/funkcije i BOLD slova argumenta formule/funkcije.

npr: poželjno je znati argumente određene funkcije (u ovom slučaju OFFSET funkcije ili COUNTA funkcije), ako ih ne znaš tada ih uočiš u okviru.
Na taj način možeš saznati na čega se odnosi određeni broj, adresa ćelije ili raspon ćellija. (vidi SS ispod)



Re: UserForm - Kako... 01.04.2016. u 17:03 · pre 128 meseci #13
Formiram UserForm za jednu Excel bazu. "Napravio" sam modul, prema instrukcijama, za popunu jedne od tabela - i to funkcioniše... ali mi mi VBA "pravi" tabelu na Sheet-u na kome se nalazi dugme za poketanje forme.
Gde, u VBA kod-u, treba navesti putanju do ciljane tabele - odnosno "List"-a?

UserForm kod:

Code:
Option Explicit

Private Sub CommandButton1_Click()
EditAdd
End Sub

Private Sub CommandButton2_Click()
ClearForm
End Sub

Private Sub CommandButton3_Click()
Unload Me
End Sub

Private Sub TextBox1_Change()
GetData
End Sub

Private Sub UserForm_Initialize()

TextBox1.SetFocus

End Sub


Modul kod:

Code:
Dim id As Integer, i As Integer, j As Integer, flag As Boolean
Sub GetData()

If IsNumeric(UserForm1.TextBox1.Value) Then
    flag = False
    i = 0
    id = UserForm1.TextBox1.Value

    Do While Cells(i + 1, 1).Value <> ""

        If Cells(i + 1, 1).Value = id Then
            flag = True
            For j = 2 To 10
                UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j).Value
            Next j
        End If

        i = i + 1

    Loop

    If flag = False Then
        For j = 2 To 10
            UserForm1.Controls("TextBox" & j).Value = ""
        Next j
    End If

Else
    ClearForm
End If

End Sub
Sub ClearForm()

For j = 1 To 10
    UserForm1.Controls("TextBox" & j).Value = ""
Next j

End Sub
Sub EditAdd()

Dim emptyRow As Long

If UserForm1.TextBox1.Value <> "" Then
    flag = False
    i = 0
    id = UserForm1.TextBox1.Value
    emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

    Do While Cells(i + 1, 1).Value <> ""

        If Cells(i + 1, 1).Value = id Then
            flag = True
            For j = 2 To 10
                Cells(i + 1, j).Value = UserForm1.Controls("TextBox" & j).Value
            Next j
        End If

        i = i + 1

    Loop

    If flag = False Then
        For j = 1 To 10
            Cells(emptyRow, j).Value = UserForm1.Controls("TextBox" & j).Value
        Next j
    End If

End If

End Sub

Da li je, možda, pravilo da Forma (kao i dugme koje ga pookreće) bude na istom "Sheet"-u na kome je i tabela?

[Ovu poruku je menjao pcpopovic dana 03.04.2016. u 11:11 GMT+1]

[Ovu poruku je menjao pcpopovic dana 03.04.2016. u 11:12 GMT+1]
Re: UserForm - Kako... 03.04.2016. u 10:13 · pre 128 meseci #14
Nije valjda da rešenja nema?
Re: UserForm - Kako... 05.04.2016. u 09:35 · pre 128 meseci #15
Kako bi trebalo promeniti VBA kod kad bi se ciljna tabela nalazila na Listu2 (recimo), a ne na Listu1?
Re: UserForm - Kako... 07.04.2016. u 06:44 · pre 128 meseci #17
Pa, mislim da ovo nije zadovoljavuća opcija. Kod unosa podataka, isti se upisuju u tabelu na "List2" - što je u redu, ali kod kontrole unosa - prikazuju se podaci iz tabele sa "List1".
Re: UserForm - Kako... 07.04.2016. u 11:39 · pre 128 meseci #18
Pozdrav,pa bila je izmjena na jednom dijelu forme
a sad je na svim,trebas se pozicionirati na koji list,tj koji list treba da se
puni podacima ili edituje ...
Potpis
Jasmin
Re: UserForm - Kako... 10.04.2016. u 15:33 · pre 128 meseci #19
Nisam mogao odgovoriti ranije. Hvala - to je to!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme