J'ai un userform que des données sont entré et l'information est écrite aux cellules sur la feuille 1. Les champs suivants sont l'information saisie, date, cours, durée, l'entraîneur, identification, prénom, nom de famille, statut. La présente partie toute fonctionne le problème de fine.
The que j'ai est avec une petite section appelée le type de développement. J'ai besoin du type de développement pour être écrit si choisi et écris pour couvrir 1 « nouveau matériel », « matériel existant », « autre », selon le bouton d'option choisi sans condition de l'employé détaille la section étant complétée.
au moment où la présente partie fonctionne seulement si la section de groupes des employés est également complétée. Je ne peux pas l'obtenir à pour fonctionner autrement, mais ai signalé mon code. Quelqu'un m'a aidé avec ceci et j'ai ajouté cette pièce dedans ainsi je suis sûr que je ne l'ai pas faite que correctly.
Here est mon code et accentué en gras est où la difficulté est le faible RowCount de cmdOk_Click d'I think.
Private () comme faible ctl de Long comme faible ctlName de Control comme faible ctlNumber de String comme faible ctlField de String car l'input d'utilisateur de contrôle du 'de String si Me.txt Date.Value = "" Then MsgBox « écrivent svp une date. », vbExclamation, « notation " extrémité If de formation de Sub de sortie du Me.txt Date.SetFocus si Me.cboCourseName.Value = "" Then MsgBox « écrivent svp le nom de cours. », vbExclamation, « notation " extrémité If de formation de Sub de sortie du Me.txt Date.SetFocus si Me.txt Duration.Value = "" Then MsgBox « écrivent svp la durée en heures. », vbExclamation, « notation " extrémité If de formation de Sub de sortie du Me.txt Date.SetFocus si Me.cboTrainer.Value = "" Then MsgBox « choisissent svp le centre de coût. », le vbExclamation, « notation " extrémité If sinon IsNumeric (Me.txtDuration.Value) Then MsgBox de formation de Sub de sortie du Me.txt Date.SetFocus « la durée doit être un nombre. », le vbExclamation, « notation " extrémité If sinon IsDate (Me.txtDate.Value) Then MsgBox de formation de Sub de sortie du Me.txt Date.SetFocus « la boîte de date doit contenir une date. », le vbExclamation, « notation " extrémité If
'de formation de Sub de sortie du Me.txt Date.SetFocus écrivent des données au worksheet « obtiennent le prochain row RowCount = feuilles de travail (« Sheet1 »). Range (« A1 »). Le de CurrentRegion.Rows.Count » entrent les détails pour chaque ligne avec des données (pas blanc) dans un array « écrivent alors tous les champs à la prochaine ligne using le du de « rowCount " pour chaque ctl dans le ctlName du de Me.Controls = est parti (ctl. Le nom, 12) » obtiennent le du name de champ si ctlName = « txtFirstName » Then si ctl. Le <> de valeur vbNullString le ctlNumber du de Then = remplacent (ctl. Le nom, le « txtFirstName », le "") « obtiennent le du number de champ » écrivent dans fields avec les feuilles de travail (« Sheet1 »). () Details d'entraîneur du Range « . Excentrage (RowCount, 0). de valeur = de DateValue (Me.txtDate.Value). Excentrage (RowCount, 1).Value = Me.cboCourseName.Value . Excentrage (RowCount, 2).Value = Me.txt Duration.Value . Excentrage (RowCount, 3).Value = details de développement de de de Me.cboTrainer.Value » si FirstOptBtn = Then . Excentrage (RowCount, 9).Value = « nouveau " ElseIf SecondOptBtn = Then . Excentrage (RowCount, 9).Value = " ElseIf ThirdOptBtn = Then . Excentrage (RowCount, 9).Value = le « autre " entered de date de Else « nothing /> ». Excentrage (RowCount, 10).Value = format (maintenant, « hh de dd/mm/yyyy : nn : le de l'extrémité With du de solides solubles ») « établissent le nombre de champ courant et écrivent le reste de ctlField du line de données = « txtEmployeeID » et équilibrent les feuilles de travail du (de ctlNumber) (« Sheet1 »). Range (« A1 »). Offset (RowCount, 4).Value = Me.Controls (ctlField). ctlField de Value = « txtFirstName » et feuilles de travail de d'équilibre (ctlNumber) (« Sheet1 »). Range (« A1 »). Offset (RowCount, 5).Value = Me.Controls (ctlField). ctlField de Value = « txtLastName » et feuilles de travail de d'équilibre (ctlNumber) (« Sheet1 »). Range (« A1 »). Offset (RowCount, 6).Value = Me.Controls (ctlField). ctlField de Value = « cboStatus » et feuilles de travail de d'équilibre (ctlNumber) (« Sheet1 »). Range (« A1 »). Offset (RowCount, 7).Value = Me.Controls (ctlField). ctlField de Value = « cboDepartment » et feuilles de travail de d'équilibre (ctlNumber) (« Sheet1 »). Range (« A1 »). Offset (RowCount, 8).Value = Me.Controls (ctlField). Value le » pour chaque nouveau clear_form MsgBox « mise à jour du ctl Call du d'If de fin d'If de fin du line RowCount de données des employés = du de RowCount + de 1 prochain a accompli », vbInformation + vbOKOnly, End Sub
also qu'il fait une boucle la date, cours, la durée, entraîneur, selon le nombre d'employés présentés dans la section de groupe des employés. la présente partie fonctionne très bien pendant que stated. Hope ceci semble raisonnable et n'importe quelle aide obtenir le type de développement fonctionnement de détails serait grande ! Cheers
class= de
|