Vraag : Excel/VBA/Userform

Ik heb een userform die het gegeven wordt ingevoerd en de informatie wordt geschreven aan cellen over blad 1. De volgende gebieden zijn gevangen informatie, datum, cursus, duur, trainer, identiteitskaart, voornaam, familienaam, status. Dit deel al de werkenfine.

The dat ik is met één kleine sectie genoemd ontwikkelingstype heb gehad. Ik heb ontwikkelingstype nodig dat zijn moet ingegaan indien geselecteerd en aan blad 1 „Nieuw Materiaal“ schrijven, „Bestaand die Materiaal“, „andere“, afhankelijk van de optieknoop zonder het vereiste die van de sectie van werknemersdetails wordt gekozen worden ingevuld.

op het ogenblik dit deel werkt slechts als de werknemer sectie ook wordt ingevuld detailleert. Ik kan niet ertoe brengen het aan om anders te werken, maar mijn code gepost. Iemand hielp me met dit en ik voegde toe dat deel in zo ik zeker ben ik het niet correctly.

Here ben mijn code deed en benadrukt in vette letters is waar het probleem SubcmdOk_Click/>
Private van I think.
Schemerige RowCount als/> Schemerige ctl Long
Schemerige ctlName Control
Schemerige ctlNumber String
Schemerige ctlField String

' input
is als Me.txt Date.Value = "" Then
MsgBox „een Datum gelieve in te gaan. “, vbExclamation, „het Eind van Sub
Me.txt Date.SetFocus
/> If
als Me.cboCourseName.Value = "" Then
MsgBox „de Naam van de Cursus gelieve in te gaan. “, vbExclamation, „het Eind van Sub
Me.txt Date.SetFocus
/> If
als Me.txt Duration.Value = "" Then
MsgBox „duur in uren gelieve in te gaan. “, vbExclamation, „het Eind van Sub
Me.txt Date.SetFocus
/> If
als Me.cboTrainer.Value = "" Then
MsgBox „het centrum van kosten gelieve te kiezen. “, moet vbExclamation, „het Eind van Sub
Me.txt Date.SetFocus
/> If
als niet IsNumeric (Me.txtDuration.Value) Then
MsgBox „de Duur een aantal zijn. “, moet vbExclamation, „het Eind van Sub
Me.txt Date.SetFocus
/> If
als niet IsDate (Me.txtDate.Value) Then
MsgBox „de doos van de Datum een datum bevatten. “, schrijft vbExclamation, „het Eind van Sub
Me.txt Date.SetFocus
/> If

' de gegevens aan worksheet
„volgende beschikbare row
RowCount = Aantekenvellen („Sheet1“) krijgen. Range („A1“). CurrentRegion.Rows.Count

“ krijgt de details voor elke lijn met (niet lege) gegevens in een array
„schrijft dan alle gebieden aan de volgende lijn gebruikend „rowCount "

voor Elke ctl in Me.Controls

ctlName = links (ctl. Naam, 12)“ krijgt het gebied name

als ctlName = „txtFirstName“ Then
als ctl. Waarde <> die Then

de vbNullString ctlNumber = vervangt (ctl. De naam, „txtFirstName“, "") „krijgt het gebied number

“ schrijft in gemeenschappelijke/algemene fields
met Aantekenvellen („Sheet1“). /> („A1“)
„trainer Range. Compensatie (RowCount, 0). Waarde = DateValue (Me.txtDate.Value)
. Compensatie (RowCount, 1). Waarde = Me.cboCourseName.Value
. Compensatie (RowCount, 2). Waarde = Me.txt Duration.Value
. Compensatie (RowCount, 3). Waarde = Me.cboTrainer.Value
ontwikkeling van
de“ details
als FirstOptBtn = Ware Then
. Compensatie (RowCount, 9). Waarde = „Nieuwe Materiële "
ElseIf SecondOptBtn = Ware Then
. Compensatie (RowCount, 9). Waarde = „het Bestaan Materiële "
ElseIf ThirdOptBtn = Ware Then
. Compensatie (RowCount, 9). Waarde = „Andere " Datum van het Eind van
Else
„nothing
van If
“ entered
. Compensatie (RowCount, 10). Waarde = Formaat (nu, „dd/mm/yyyy hh: nn: ss het“)
Eind With


„werkt het huidige gebiedsaantal uit en schrijft rest gegevens line
ctlField = „txtEmployeeID“ Aantekenvellen
(„Sheet1“). Range („A1“). Offset (RowCount, 4). Waarde = Me.Controls (ctlField). Value
ctlField = „txtFirstName“ de Aantekenvellen
(„Sheet1“). Range („A1“). Offset (RowCount, 5). Waarde = Me.Controls (ctlField). Value
ctlField = „txtLastName“ de Aantekenvellen
(„Sheet1“). Range („A1“). Offset (RowCount, 6). Waarde = Me.Controls (ctlField). Value
ctlField = „cboStatus“ de Aantekenvellen
(„Sheet1“). Range („A1“). Offset (RowCount, 7). Waarde = Me.Controls (ctlField). Value
ctlField = „cboDepartment“ de Aantekenvellen
(„Sheet1“). Range („A1“). Offset (RowCount, 8). Waarde = Me.Controls (ctlField). Telling van de de toenamerij van Value
de“ voor elk nieuw werknemersgegeven line
RowCount = RowCount + 1
Volgende voltooide ctl
Call clear_form
MsgBox „Update van If

Eind/>/>“, vbInformation + vbOKOnly, „Volledige "
End Sub

also het lijnen dateert, cursus, duur, trainer, volgens het aantal werknemers ingegaan in de sectie van het werknemersdetail. dit deel werkt boete als stated.
Hope dit steek houdt en om het even welke hulp zou om de ontwikkelingstype details werkend te krijgen groot zijn!
Cheers
 

Antwoord : Excel/VBA/Userform

Ik ben droevig, op het ogenblik hebben wij ontoereikende informatie om uw code volledig te zuiveren, en het is niet precies duidelijk wat u doet.

Ik begreep uw voorlaatste commentaar niet volledig, maar de procedures (Subs of Functies) zullen gewoonlijk nog wanneer gekleefd tussen codemodules werken. De blokken van code van binnen procedures zouden meer zorg vergen.

Aangaande uw laatste commentaar: Als u van mening bent dat uw originele vraag is beantwoord, dan zou het best zijn om de vraag te sluiten en nieuwe op te heffen. Anders, kan u de positie op het ogenblik verduidelijken?



Andere oplossingen  
 
programming4us programming4us