Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Eingabe uber Userform
#1
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
Antworten Top
#2
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
Antworten Top
#3
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
Antworten Top
#4
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • empo
Antworten Top
#5
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste