Clever-Excel-Forum

Normale Version: Eingabe uber Userform
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forum,

ich gebe Zahlen über eine Userform in ein Tabellenblattein. Es funktioniert alles prima nur soll nun die erste Zahl in Spalte "A", Zeile "4", die zweite Zahl in Spalte "BE",Zeile"5" eingegeben werden. Die nächste Zahl wieder in Spalte "A6" dann Spalte "BE7" (SpalteBE=Spalte57) usw. Den nachstehenden Code habe ich von Eurem VorgängerForum.  Im Voraus schon mal Vielen Dank.

Viele Grüsse Empo



Private Sub CommandButton12_Click()
   Dim loLetzte As Long
   Dim wsTabelle As Worksheet
   If TextBox1 <> "" Then
      If CInt(TextBox1) > 100 Then
         MsgBox "Maximalwert ist 100"
      Else
         For Each wsTabelle In Worksheets
            With wsTabelle
               Select Case .Name
                Case "Equi geteilt“
                     loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
                     If loLetzte < 4 Then loLetzte = 4
                     .Cells(loLetzte, 1) = CInt(TextBox1)
             End If
               End Select
            End With
         Next wsTabelle
         TextBox1 = ""
      End If
   Else
      MsgBox "Keine Werte vorhanden"
   End If
End Sub
Hallo Empo,
Private Sub CommandButton12_Click()
  If IsNumeric(TextBox1) Then
     Select Case TextBox1.Tag
       Case "", "BE5"
         TextBox1.Tag = "A4"
       Case "A4"
         TextBox1.Tag = "BE5"
     End Select
     With Worksheets("Equi geteilt").Range(TextBox1.Tag)
       .Parent.Cells(Application.Max(.Row, Cells(Rows.Count, .Column).End(xlUp).Row), .Column).Offset((Len(.Value) > 0) * -2).Value = CLng(TextBox1)
     End With
     TextBox1 = ""
     TextBox1.SetFocus
  Else
     MsgBox "Keine Werte vorhanden"
  End If
End Sub
Gruß Uwe
Hallo Uwe,

vielen Dank für Deinen Code. Der Code funktioniert prima aber ich habe 2 Fehler gemacht.

- 1 Fehler: Die erste Zahl muß nicht in "A4" sondern "A5", die zweite Zahl muß immer in die gleiche Zeile also "BE5", dann die nächste Zahl in "A7" die nächste Zahl in "BE7" usw(immer eine freie Zeile).
- 2 Fehler: Ich habe noch zwei andere Tabellenblätter "Equi" und "EC96" in die ebenfalls die Zahlen eingetragen werden müßen. In "Equi" die erste Zahl in "A5" dann "A7", "A9" usw. Also immer in Spalte "A" mit einer freien Zeile beginnend mit "A5".
                In "EC96" die erste Zahl in "A9" dann "A10", "A11" usw.

Dann habe ich noch eine Bitte. Könntest Du mir bitte  kommentieren was jede Zeile Code bedeutet.

Vielen Dank und viele Grüße Empo
Hallo Empo,

eigentlich gibt es da nicht viel zu erklären.  Blush

Private Sub CommandButton12_Click()
 Dim lngZeilenvorschub As Long
 lngZeilenvorschub = 2
 If IsNumeric(TextBox1) Then
    'Spaltenumschalter: Es wird die Adresse der jeweils erstmöglichen Zelle angegeben
    Select Case TextBox1.Tag
      Case "", "BE5"
        TextBox1.Tag = "A4"
      Case "A4"
        TextBox1.Tag = "BE5"
    End Select
    'Angabe des Arbeitsblattes und der Zelle
    With Worksheets("Equi geteilt").Range(TextBox1.Tag)
       'Eintrag des Wertes um die angegebenen Zeilen unterhalb der letzten belegten Zelle
      .Parent.Cells(Application.Max(.Row, Cells(Rows.Count, .Column).End(xlUp).Row), .Column) _
                   .Offset(-(Len(.Value) > 0) * lngZeilenvorschub).Value = CLng(TextBox1)
    End With
    TextBox1 = ""
    TextBox1.SetFocus
 Else
    MsgBox "Keine Werte vorhanden"
 End If
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0


Gruß Uwe
Hallo Empo,

Du hast Dich zwar per "Danke hinzufügen"-Button bedankt, aber es wäre schön, wenn Du es schreiben würdest, dass Du mit dem Code (mit Beschreibung) klar kommst oder nicht und überhaupt ... Wink

Gruß Uwe