Questione : Excel/VBA/Userform

Ho un userform che i dati sono immessi e le informazioni sono redatte alle cellule sullo strato 1. I seguenti campi sono informazioni bloccate, la data, il corso, la durata, l'addestratore, l'identificazione, il nome, il cognome, condizione. Questa parte tutta funziona il problema che di fine.

The ho sono con una piccola sezione denominata tipo di sviluppo. Devo il tipo di sviluppo essere inserito se selezionato e scrivo per rivestire 1 “nuovo materiale„, “materiale attuale„, “altro„, secondo il pulsante di opzione scelto senza il requisito dell'impiegato dettaglio la sezione che è compilata.

dal momento che questa parte funziona soltanto se la sezione dei particolari degli impiegati inoltre è compilata. Non posso convincerlo a per funzionare al contrario, ma ho inviato il mio codice. Qualcuno lo ha aiutato con questo ed ho aggiunto quella parte dentro in modo da sono sicuro che non la ho fatta correctly.

Here è il mio codice ed evidenziato in GRASSETTO è dove la difficoltà è
RowCount fioco del cmdOk_Click di I think.

Private () come ctl fioco di Long
come ctlName fioco di Control
come ctlNumber fioco di String
come ctlField fioco di String
poichè input
dell'utente del controllo del
'di String
se Me.txt Date.Value = "" Then
MsgBox “entra prego in una data. „, vbExclamation, “ceppo " estremità If
che di addestramento di Sub
dell'uscita del
Me.txt Date.SetFocus
se Me.cboCourseName.Value = il "" Then
MsgBox “introducono prego il nome di corso. „, vbExclamation, “ceppo " estremità If
di addestramento di Sub
dell'uscita del
Me.txt Date.SetFocus
se Me.txt Duration.Value = "" Then
MsgBox “fornisce prego la durata in ore. „, vbExclamation, “ceppo " estremità If
di addestramento di Sub
dell'uscita del
Me.txt Date.SetFocus
se Me.cboTrainer.Value = il "" Then
MsgBox “scelgono prego il centro di costo. „, il vbExclamation, “ceppo " l'estremità If
se non IsNumeric (Me.txtDuration.Value) Then
MsgBox di addestramento di Sub
dell'uscita del
Me.txt Date.SetFocus
“la durata deve essere un numero. „, il vbExclamation, “ceppo " l'estremità If
se non IsDate (Me.txtDate.Value) Then
MsgBox di addestramento di Sub
dell'uscita del
Me.txt Date.SetFocus
“la scatola della data deve contenere una data. „, il vbExclamation, “ceppo " l'estremità If

'di addestramento di Sub
dell'uscita del
Me.txt Date.SetFocus
redige i dati a worksheet
“ottiene il row
RowCount = i manuali (“Sheet1„). Range (“A1„). Il
di CurrentRegion.Rows.Count
„ entra i particolari per ogni linea con i dati (non spazio in bianco) in un array
“allora scrive tutti i campi alla linea seguente using il
del
“del rowCount " per ogni ctl nel ctlName del
di Me.Controls
= ha andato (ctl. Il nome, 12)„ ottiene il
del name
del campo se ctlName = “txtFirstName„ Then
se ctl. Il <> di valore che vbNullString il ctlNumber del
di Then
= sostituisce (ctl. Il nome, “il txtFirstName„, il "") “ottengono il
del number
del campo„ scrivono fields
con i manuali (“Sheet1„). Range (“dell'addestratore del
/> “. Contrappeso (RowCount, 0).
di DateValue = di valore (Me.txtDate.Value). Contrappeso (RowCount, 1).Value = Me.cboCourseName.Value
. Contrappeso (RowCount, 2).Value = Me.txt Duration.Value
. Contrappeso (RowCount, 3).Value = details
di sviluppo del del
di Me.cboTrainer.Value
„ se FirstOptBtn = Then
. Contrappeso (RowCount, 9).Value = “nuovo "
ElseIf SecondOptBtn = Then
. Contrappeso (RowCount, 9).Value =
ElseIf ThirdOptBtn = Then
. Contrappeso (RowCount, 9).Value = “l'altro " entered
della data del
Else
“nothing
estremità If
„. Contrappeso (RowCount, 10).Value = disposizione (ora, “hh di dd/mm/yyyy: nn: il
dell'estremità With

del
degli ss„) “risolve il numero di campo corrente e scrive il resto del ctlField del line
di dati = “txtEmployeeID„ & assetta i manuali del
(del ctlNumber) (“Sheet1„). Range (“A1„). Offset (RowCount, 4).Value = Me.Controls (ctlField). ctlField di Value
= “txtFirstName„ & manuali del
della disposizione (ctlNumber) (“Sheet1„). Range (“A1„). Offset (RowCount, 5).Value = Me.Controls (ctlField). ctlField di Value
= “txtLastName„ & manuali del
della disposizione (ctlNumber) (“Sheet1„). Range (“A1„). Offset (RowCount, 6).Value = Me.Controls (ctlField). ctlField di Value
= “cboStatus„ & manuali del
della disposizione (ctlNumber) (“Sheet1„). Range (“A1„). Offset (RowCount, 7).Value = Me.Controls (ctlField). ctlField di Value
= “cboDepartment„ & manuali del
della disposizione (ctlNumber) (“Sheet1„). Range (“A1„). Offset (RowCount, 8).Value = Me.Controls (ctlField). Value
„ per ogni nuovo clear_form
MsgBox “aggiornamento del ctl
Call del
di If
di conclusione di If
di conclusione del line
RowCount di dati degli impiegati = del
di 1
ha completato„, vbInformation + vbOKOnly,
End Sub

also che collega la data in circuito, il corso, la durata, addestratore, secondo il numero degli impiegati inseriti nella sezione del particolare degli impiegati. questa parte funziona benissimo mentre stated.
Hope questo ha significato e tutto l'aiuto ottenere il tipo di sviluppo funzionamento di particolari sarebbe grande!
Cheers
 
class= del

Risposta : Excel/VBA/Userform

Sono spiacente, dal momento che abbiamo informazioni insufficienti completamente per mettere a punto il vostro codice e non è esattamente chiaro che cosa state facendo.

Non ho capito il vostro commento penultimo completamente, ma le procedure (sommergibile o funzioni) solitamente ancora funzioneranno una volta incollate fra i moduli di codice. I blocchi di codice dall'interno delle procedure avrebbero bisogno di più cura.

Con riferimento al vostro ultimo commento: Se ritenete che la vostra domanda originale sia risposta a, quindi sarebbe meglio da chiudere la domanda e da sollevare un nuovo. Altrimenti, potete chiarire la posizione al momento?



Altre soluzioni  
 
programming4us programming4us