Fråga : Excel/VBA/Userform

Jag har en userform som data matas in, och informationen är skriftlig till celler täcker på 1. Sätter in efter är fångad information, daterar, jagar, varaktighet, instruktören, ID, förnamnet, efternamn, status. All denna del fungerar problem för fine.

The som jag har är med ett som är litet, delar upp kallad utvecklingstyp. Jag behöver utvecklingstyp att skrivas in, om utvalt och skriver för att täcka 1 ”nya materiellt”, ”existerande materiellt”, ”annat”, beroende av alternativet knäppas valt utan kravet av anställd specificerar delar upp påfyllning ut.

At ögonblicket som denna del fungerar endast, om anställd specificerar delar upp fylls också ut. Jag kan inte få den till för att fungera annars, utan har postat mitt kodifierar. Någon hjälpte mig med detta, och jag tillfogade den del in, så jag förmiddagen mig gjorde som sure inte den, correctly.

Here är min kodifierar och markerade i djärvt är var besvära är
dunkla RowCount för cmdOk_Click för I think.

Private under() som Long
dunkel ctl som Control
dunkel ctlName som String
dunkel ctlNumber som String
dunkel ctlField, som input
för användaren för kontrollen för String

', om Me.txt Date.Value = "" Then
MsgBox ”behar, skriver in en datera. ” vbExclamationen, ”utbilda loggar "
Me.txt Date.SetFocus
går ut Sub
avslutar If
, om Me.cboCourseName.Value = "" Then
MsgBox ”behar skriver in jagar känt. ” vbExclamationen, ”utbilda loggar "
Me.txt Date.SetFocus
går ut Sub
avslutar If
, om Me.txt Duration.Value = "" Then
MsgBox ”behar skriver in varaktighet i timmar. ” vbExclamationen, ”utbilda loggar "
Me.txt Date.SetFocus
går ut Sub
avslutar If
, om Me.cboTrainer.Value = "" Then
MsgBox ”behar väljer kostar centrerar. ” vbExclamationen, ”utbilda loggar "
Me.txt Date.SetFocus
går ut Sub
avslutar If
, om inte IsNumeric (Me.txtDuration.Value) Then
MsgBox ”varaktigheten måste vara en numrera. ” vbExclamationen, ”utbilda loggar "
Me.txt Date.SetFocus
går ut Sub
avslutar If
, om inte IsDate (Me.txtDate.Value) Then
MsgBox ”som datera boxas, måste innehålla en datera. ” vbExclamationen, ”utbilda loggar "
Me.txt Date.SetFocus
går ut Sub
avslutar If

' skriver data till worksheet
”får nästa tillgänglig row
RowCount = arbetssedlar (”Sheet1”). Range (”A1”). CurrentRegion.Rows.Count
alla
” får specificerar för varje fodrar med data (inte förbigå), in i en array
”därefter skriver sätter in till det nästa fodrar using
”för rowCount"
för varje ctl i ctlName för
för Me.Controls
= lämnat (ctl. Känt 12)” få för sätta inname
om ctlName = ”txtFirstName” Then
om ctl. Värdera <> som vbNullString ctlNumber för Then

=, byter ut (ctl. Känt ”txtFirstName”, "") ”få för sätta innumber
” skriver i allmänningen/allmän fields
med arbetssedlar (”Sheet1”). () Instruktördetails
för
Range ”. Offset (RowCount, 0). Värdera = DateValue (Me.txtDate.Value)
. Offset (RowCount, 1). Värdera = Me.cboCourseName.Value
. Offset (RowCount, 2). Värdera = Me.txt Duration.Value
. Offset (RowCount, 3). Värdera = details
för utveckling för för
för Me.cboTrainer.Value
” om FirstOptBtn = riktiga Then
. Offset (RowCount, 9). Värdera = ”ny materiell "
ElseIf SecondOptBtn = riktiga Then
. Offset (RowCount, 9). Värdera = ”existerande materiell "
ElseIf ThirdOptBtn = riktiga Then
. Offset (RowCount, 9). Värdera = ”annan "
Else
”nothing
avslutar If
” daterar entered
. Offset (RowCount, 10). Värdera = formatera (nu, ”dd-/mm/yyyyhh: nn: arbete för
With

för ss”)
avslutar ”ut som strömmen sätter in numrerar, och skriver vilar av ctlField för dataline
= ”txtEmployeeID” & klipper arbetssedlar för
(för ctlNumber) (”Sheet1”). Range (”A1”). Offset (RowCount, 4). Värdera = Me.Controls (ctlField). Value
ctlField = ”txtFirstName” & välskötta arbetssedlar för
(för ctlNumber) (”Sheet1”). Range (”A1”). Offset (RowCount, 5). Värdera = Me.Controls (ctlField). Value
ctlField = ”txtLastName” & välskötta arbetssedlar för
(för ctlNumber) (”Sheet1”). Range (”A1”). Offset (RowCount, 6). Värdera = Me.Controls (ctlField). Value
ctlField = ”cboStatus” & välskötta arbetssedlar för
(för ctlNumber) (”Sheet1”). Range (”A1”). Offset (RowCount, 7). Värdera = Me.Controls (ctlField). Value
ctlField = ”cboDepartment” & välskötta arbetssedlar för
(för ctlNumber) (”Sheet1”). Range (”A1”). Offset (RowCount, 8). Värdera = Me.Controls (ctlField). Value
” ökar ror räkningen för varje ny anställddataline
RowCount = RowCount + för 1

avslutar If
avslutar clear_form
MsgBox ”den avslutade uppdateringen för ctl
Call för If

nästa”, vbInformationen + vbOKOnly, ”färdig "
End Sub

also som den kretsar daterar, jagar, varaktighet, instruktör, enligt numrera av anställda som skrivs in i anställd, specificerar delar upp. denna del fungerar fint, som stated.
Hope detta gör avkänning, och någon hjälp som får utvecklingstypen, specificerar det skulle arbetet är stort!
Cheers
 
" klar "

Svar : Excel/VBA/Userform

Förmiddag som I är ledsen, på ögonblicket vi, har otillräcklig information som testar fullständigt ditt för fel, kodifierar, och det är inte fri exakt vad du gör.

Jag förstod inte din näst sista kommentar fullständigt, men tillvägagångssätt (Subs eller fungerar), ska vanligt stilla arbete, när de between klistras, kodifierar enheter. Kvarter av kodifierar inifrån tillvägagångssätt skulle behov mer omsorg.

Beträffande din sist kommentar: Om du känselförnimmelsen, som ditt original ifrågasätter, har svarats, då det skulle är bäst till slutet ifrågasätta och lönelyften ny. Annorlunda kan du klargöra placera på ögonblicket?



Andra lösningar  
 
programming4us programming4us