[ Sudarica @ 29.06.2010. 20:42 ] @
| molim pomoć
dali bi mi neko mogao nadograditi dolje Code: tako da mi unosi podatke iz User form i u radnu knjigu C:\Data.xlsm i to
code:
.Cells(lRow, 4).Value = Me.cboKljuc.List(lPart, 1)
a ovo da mi spoji i upiše u istu ćeliju:
.Cells(lRow, 5).Value = Me.cboPart.List(lPart, 1)
.Cells(lRow, 5).Value = Me.cboLocation.List(lPart, 1)
nakon unosa podataka da se naredbom "Save" pospremi unos u tu radnu knjigu (kada pospremam radnu knjigu u zadnju kolonu mi upisuje "computer name" i datum kada je podatak unešen.
Molim vas pomoć
Code:
Private Sub cmdAdd_Click()
Dim lRow As Long
Dim lPart As Long
Dim lLocation As Long
Dim lKljuc As Long
Dim ws As Worksheet
Set ws = Worksheets("ListaUnosa")
'Nađi prvi prazan redak u bazi podataka
lRow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
lPart = Me.cboPart.ListIndex
lPart = Me.cboLocation.ListIndex
lPart = Me.cboKljuc.ListIndex
'odabrati for a part number
If Trim(Me.cboPart.Value) = "" Then
Me.cboPart.SetFocus
MsgBox "Please enter a part number"
Exit Sub
End If
If Trim(Me.cboLocation.Value) = "" Then
Me.cboLocation.SetFocus
MsgBox "Please enter a part number"
Exit Sub
End If
If Trim(Me.cboKljuc.Value) = "" Then
Me.cboKljuc.SetFocus
MsgBox "Please enter a part number"
Exit Sub
End If
'Kopiranje podataka za bazu podataka
With ws
.Cells(lRow, 1).Value = Me.cboPart.Value
.Cells(lRow, 2).Value = Me.cboPart.List(lPart, 1)
.Cells(lRow, 3).Value = Me.cboLocation.Value
.Cells(lRow, 4).Value = Me.cboLocation.List(lPart, 1)
.Cells(lRow, 5).Value = Me.cboKljuc.Value
.Cells(lRow, 6).Value = Me.cboKljuc.List(lPart, 1)
.Cells(lRow, 7).Value = Me.txtDate.Value
.Cells(lRow, 8).Value = Me.txtdo.Value
.Cells(lRow, 9).Value = Me.txtQty.Value
End With
'clear the data
Me.cboPart.Value = ""
Me.cboLocation.Value = ""
Me.cboKljuc.Value = ""
Me.txtDate.Value = Format(Date, "Medium Date")
Me.txtdo.Value = Format(Date, "Medium Date")
Me.txtQty.Value = 1
Me.cboPart.SetFocus
Me.cboLocation.SetFocus
Me.cboKljuc.SetFocus
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub Label7_Click()
End Sub
Private Sub txtdo_Change()
End Sub
Private Sub UserForm_Initialize()
Dim cPart As Range
Dim cLoc As Range
Dim cKljuc As Range
Dim ws As Worksheet
Set ws = Worksheets("IzvorniPodaci")
For Each cPart In ws.Range("PartIDList")
With Me.cboPart
.AddItem cPart.Value
.List(.ListCount - 1, 1) = cPart.Offset(0, 1).Value
End With
Next cPart
For Each cLoc In ws.Range("LocationList")
With Me.cboLocation
.AddItem cLoc.Value
.List(.ListCount - 1, 1) = cLoc.Offset(0, 1).Value
End With
Next cLoc
For Each cKljuc In ws.Range("KljucList")
With Me.cboKljuc
.AddItem cKljuc.Value
.List(.ListCount - 1, 1) = cKljuc.Offset(0, 1).Value
End With
Next cKljuc
Me.txtDate.Value = Format(Date, "Medium Date")
Me.txtdo.Value = Format(Date, "Medium Date")
Me.txtQty.Value = 1
Me.cboPart.SetFocus
Me.cboLocation.SetFocus
Me.cboKljuc.SetFocus
End Sub
|
[ FOX028 @ 30.06.2010. 08:33 ] @
mozda bi mogao nesto uraditi kad bi okacila oba ili bar jedan sa User Form-om koju si napravila Excel fajl.
[ Sudarica @ 30.06.2010. 15:58 ] @
evo tu je i hvala ti
[ Sudarica @ 04.07.2010. 07:44 ] @
Malo sam promjenila drugu radnu knjigu pa vas molim da mi pomognete da ovo rešim do kraja
gornja makro naredba mi radi savršeno, ali sada bi trebala dodati da mi određene podatke klikom na gumb Unos upisuje u isto vreme i u drugu radnu knjigu (C:\Data.xls) redom:
u prvu praznu ćeliju
kolone A upiše oznaku "DOP", u
kolonu B redni broj (za jedan veći od predhodne ćelije), u
kolonu C datum unosa, u
kolonu D Me.cboKljuc.List(lPart, 1), u
kolonu E Me.cboPart.List(lPart, 1)+Me.cboLocation.List(lPart, 1) (Mirko Mirković - CCC)
još jednom molim pomoć
Hvala vam
Pozdrav
[ FOX028 @ 04.07.2010. 08:56 ] @
nesto sam ti odradio na osnovu tvoje predhodne radne knjige koju si postavila, sad samo pogledaj da li je to to, ako ne reci da ispravimo.
u kodu sam ti oznacio gde i sta sam dodao, potrebno je samo da vec postoji radna knjiga na particiji C pod nazivom Data.xls
[ Sudarica @ 04.07.2010. 20:23 ] @
ej pa to je to
savršeno svaka čast
moram sada dobro to testirati pa ću se javiti dok sve sredim.Hvala ti. Nadam se da si još nekoga usrećio.
Javiću se
Pozdrav
[ FOX028 @ 04.07.2010. 23:39 ] @
vazi se, kad testiras javi kako radi i ako treba nesto ispraviti.
pa nadam se da jesam :)
[ Sudarica @ 06.07.2010. 21:25 ] @
molim pomoć
1. dali postoji mogućnost da umjesto tačke u Unosu kucam zarez jer ako kucam zarez vrijednost u Listi unosa pretvara u tekst format (jednostavnije mi je jer je zarez na numeričkoj strani pa je brže kucati).
2. dali mogu u unosu zadržati DATUM OD npr 01062010 (unosim u tom formatu) da mi ga ne počisti nakon tipke ZATVORI nago da ga ja sama promjenim jer taj datum mjenjam ustvari jednom mjesečno ima iznimki ali ....
3. ne znam podesiti da mi nakon tipke "enter" ide unos u sledeći textboks nego skače za tri pa se vraća u drugu.
Hvala
Pozdrav
[ srdrazic @ 07.07.2010. 09:45 ] @
Za ovo pod 1 najlakše je da na numeričkoj tastaturi promeniš zarez u tačku i to->control panel-> regional and language options-> customize
[ neptuncokg @ 07.07.2010. 15:03 ] @
Zo ovo pod 3. svakom-textboxy dodeli svojstvo "TabIndex" u Propertisu textboxa. Za prvi txt stavi 0, za drugi - 1, za treci - 2 itd. I onda ce fokus ici tim redom koji zadas. Sada ti "skace" onim redom kako si formirala textboxove.
[ Sudarica @ 08.07.2010. 20:05 ] @
Citat: srdrazic: Za ovo pod 1 najlakše je da na numeričkoj tastaturi promeniš zarez u tačku i to->control panel-> regional and language options-> customize
tako sam pokušalla, ali nije to dobro kucat ću tačku svejedno hvala
Citat: neptuncokg: Zo ovo pod 3. svakom-textboxy dodeli svojstvo "TabIndex" u Propertisu textboxa. Za prvi txt stavi 0, za drugi - 1, za treci - 2 itd. I onda ce fokus ici tim redom koji zadas. Sada ti "skace" onim redom kako si formirala textboxove.
Hvala ovo mi je rješilo problem i naučila sam novo
ostalo mi je još ovo
2. dali mogu u unosu zadržati DATUM OD npr 01062010 (unosim u tom formatu) da mi ga ne počisti nakon tipke ZATVORI nago da ga ja sama promjenim jer taj datum mjenjam ustvari jednom mjesečno ima iznimki ali ....
i imam novo
htjela bi da mi ovaj code posprema datoteku.csv, sada mi posprema .xlsx
Sub Datoteka()
' spremanje datoteke.xls koja u nazivu ima samo datum
Sheets("DatotekaCsv").Select
Sheets("DatotekaCsv").Copy
ChDir "C:\Data\"
ActiveWorkbook.SaveAs Filename:=Range("B11").Value & Format(Date, "ddmmyyyy")
ActiveWorkbook.save
ActiveWindow.Close
End Sub
[ neptuncokg @ 08.07.2010. 23:41 ] @
Za ono "pod 2" u vezi datuma mozes da dodas u kodu cmdADD - da ti unese datum u neko pomocno polje koje ne koristis, npr. u "Q1", tu da "miruje". A u dogadjaj frmParts_Activate da upises da pri aktiviranju forme preuzme taj podatak. Npr.
Sub frmParts_Activate
txtDate.value = Sheets("IzvorniPodaci").Range("Q1").value
End sub
Sigurno ima i elegantnijih resenja, ali ovo mi je prvo palo na pamet. Pozdrav
[ Jpeca @ 09.07.2010. 06:54 ] @
Rešenje koje je dao neptuncokg je sasvim korektno, a moguće je i rešenje deklaracijom static promenljive koja će čuvati unesenu vrednost. Vidi http://www.elitesecurity.org/t398772-0#2589196
[ Sudarica @ 10.07.2010. 16:00 ] @
hvala na pomoći
ali sada imam novi problem
Dim objExcel As New Excel.Workbook
Dim i As Integer
Set objExcel = Application.Workbooks.Open("C:\Data.xls") 'otvaranje Excel fajla
i = 1
With objExcel
'trazi prvi prazan red
Do Until IsEmpty(.Sheets(1).Cells(i, 1))
i = i + 1
Loop
.Sheets(1).Cells(i, 1) = "DOP"
.Sheets(1).Cells(i, 2) = i - 1
.Sheets(1).Cells(i, 3) = FormatDateTime(Date, vbShortDate)
.Sheets(1).Cells(i, 4) = Me.cboKljuc.List(lPart, 1)
.Sheets(1).Cells(i, 5) = Me.cboPart.List(lPart, 1) + Me.cboLocation.List(lPart, 1)
End With
objExcel.Save
objExcel.Close
ovaj kod otvara radnu knjigu "Data" koja je ujedno i zajednička radna knjiga i sve radi dobro osim
.Sheets(1).Cells(i, 2) = i - 1
tu mi upisuje redni broj kako unosi jedan korisnik, a meni bi trebalo da upiše slijedeći broj dok otvori radnu knjigu na način da pročita predhodni broj i da ga uveća za jedan (u radnoj knjizi radi više korisnika i svi unose redni broj)
Hvala
Pozdrav
[ Sudarica @ 16.07.2010. 17:27 ] @
makro radi dobro,ispričavam se gospodinu FOX028 jer je napravio izvrstan code, a ja sam pogrešila u prepisu
Može li mi neko pomoći oko zajedničke radne knjige Data.xls.
Kada unesemo podatke sa User Form otvaramo i radnu knjigu Data.xls. Ali dogodi se da je radna knjiga Data.xls trenutno otvorena i drugi korisnik u nju upisuje podatke i podaci ili moji ili drugog korisnika ostaju neupisani ovisi o izboru prihvati moje ili tuđe.
Pitanje je dali se code može nadograditi tako da ispita dali je radna knjiga Data.xls otvorena, a ako je da sačeka dok drugi korisnik zatvori datoteku i tek onda da nastavi proceduru
Puno hvala
Code za nadopunu
Dim objExcel As New Excel.Workbook
Dim i As Integer
Set objExcel = Application.Workbooks.Open("C:\Data.xls") 'otvaranje Excel fajla
i = 1
With objExcel
'trazi prvi prazan red
Do Until IsEmpty(.Sheets(1).Cells(i, 1))
i = i + 1
Loop
.Sheets(1).Cells(i, 1) = "DOP"
.Sheets(1).Cells(i, 2) = i - 1
.Sheets(1).Cells(i, 3) = FormatDateTime(Date, vbShortDate)
.Sheets(1).Cells(i, 4) = Me.cboKljuc.List(lPart, 1)
.Sheets(1).Cells(i, 5) = Me.cboPart.List(lPart, 1) + Me.cboLocation.List(lPart, 1)
End With
objExcel.Save
objExcel.Close
[ Sudarica @ 21.07.2010. 18:50 ] @
znam da sam dosadna ali molim vas pomoć
pokušala sam snimiti makro naredbu na tisuću načina ali nisam uspjela datume u listi unosa iz teksta pretvoriti u datum. Vrlo jednostavno to radim sa "text to columns" ali ne znam to napisati kao makro
u radni list lista unosa trebala bih izračunati koliko je mjeseci između dva datuma i u kolonu mjesec to upisati, zatim u kolonu dug pomnožiti te mjesece sa iznosom.
molim vas pomozite
Pozdrav i velika hvala
[ neptuncokg @ 21.07.2010. 20:16 ] @
Ja nisam do kraja razumeo zasto datumi moraju da budu u tekstualnom formatu. Vidi prilog, pa ako odgovara da smisljamo neko pre-pre-formatiranje...
[ Sudarica @ 22.07.2010. 21:02 ] @
iz dva razloga
1 brže je kucati datum bez točke kod unosa (unosi se jako puno podataka (ili možda ima neko bolje rješenje a meni ne pada na pamet)
2 unos podataka je za tri radne knjige od kojijh se dvije pune s tekst datumom (*.csv)
htejal sam pomoću "text to columns" ali ga ne znam postaviti u ćeliju u codu,
Ovaj code sam našla za texst to columns ali ga ne znam postaviti u svoj code.
Dim objRange1 As Range
Dim objRange2 As Range
'Set up the ranges
Set objRange1 = Range("A2:A20")
Set objRange2 = Range("A21:A35")
'Do the first parse
objRange1.TextToColumns _
Destination:=Range("A2"), _
DataType:=xlDelimited, _
Tab:=False, _
Semicolon:=False, _
Comma:=False, _
Space:=False, _
Other:=True, _
OtherChar:="-"
'Do the second parse
objRange2.TextToColumns _
Destination:=Range("A21"), _
DataType:=xlDelimited, _
OtherChar:="x"
End Sub
formula za računanje mjeseci je (DAY(H2)-DAY(G2)+1)/30 ( dok računaš broj dana u excelu moraš dodati uvijek +1, jer računa dane između dva datuma ne broji onaj dan od)
hvala ti što si našao vremena za mene
[ neptuncokg @ 22.07.2010. 23:32 ] @
I ja sam se dugo mucio sa tim formatima datuma u sheetu i txt-boxu, dok jednog lepog dana (po savetu moderatora) nisam poceo da koristim - DTPicker kontrolu. Od tada su svi problemi vezani za datum - ruzna proslost. Zato se i cudim sto ti insistiras na tekstualnom unosu. Posto nemaju sve verzije office-a instaliranu kontrolu DTPickera, prikacicu fajl i kratko uputstvo za instalaciju. Podjednako dobro radi i na formi i na sheetu. Probaj, uostalom, nista ne boli, a i ne kosta. Pozdrav
[ Sudarica @ 24.07.2010. 18:24 ] @
Hvala vam na trudu
nisam znala napravtii pa sam datum stavila van UserForm u ćeliju i pomoću njega izračunala ( funkcija Datedif) u code popunila textbox iz tih ćelija i napravila unos u ostale datoteke.
Nisam to napravila onako kako sam htjela jer nisam znala.
Zahvaljujem svima koji su se uključili
Srdačan pozdrav
[ Sudarica @ 08.12.2011. 17:45 ] @
Ne mogu otvoriti formu vraća me u kod imam novi office 2010 sigurnost sam stavila na najnižu razinu sve sam probala ali neide molim pomoć
pozdrav
[ Jpeca @ 09.12.2011. 07:46 ] @
Otvorio sam primere iz ove teme bez problema u verziji 2010.
Da li javlja neku grešku u kodu? Kad otvoriš prozor sa kodom probaj Debug - Compile i proveri da li prijavljuje neku grešku. Ako si dodavala neke kontrole na formu možda fali biblioteka sa tom kontrolom (Tools-References)
[ Sudarica @ 09.12.2011. 15:47 ] @
Citat: Jpeca:
Da li javlja neku grešku u kodu? Kad otvoriš prozor sa kodom probaj Debug - Compile i proveri da li prijavljuje neku grešku. Ako si dodavala neke kontrole na formu možda fali biblioteka sa tom kontrolom (Tools-References)
Tools-References mi je siva
Javlja mi
---------------------------
Microsoft Visual Basic for Applications
---------------------------
Compile error:
Can't find project or library
---------------------------
OK Help
---------------------------
Code:
Me.txtDate.Value = Format(Range("Q8"), "dd/mm/yyyy")
Me.txtdo.Value = Format(Range("Q9"), "dd/mm/yyyy")
Me.txtZatvaranja.Value = Format(Range("Q9"), "dd/mm/yyyy")
Me.txtIznos.Value = Range("Q10")
Me.txtSaldo.Value = Range("Q12")
Me.txtglavnica.Value = Range("Q13")
Me.txtSvrha.Value = ""
Me.txtNapomena.Value = ""
Me.txtposto.Value = ""
Me.cboKad_broj.SetFocus
Me.cboSifra_obustave.SetFocus
Me.cboKljuc.SetFocus
Datumi koje treba upisati u formu
31.10.2015 ćelija "Q8"
01.11.2011 ćelija "Q9"
31.10.2015 ćelija "Q10"
[ Sudarica @ 09.12.2011. 17:51 ] @
Ma je upravu ste imala sam u Tools-References okačen kalendar 2007 sada mi radi OK, References bila mi je siva jer sam imala upozorenje
hvala puno
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|