Zahleneingabe über Userform
#1
Hallo Forum,

den u.a. Code habe ich hier vom Forum. Funktioniert prima. Ich möchte noch 2 Tabellenblätter hinzufügen mit Namen "E 96" und "D 27". In "E 96" und "D 27" Start "A9" dann immer eine Zeile ansteigend. Eine "0" soll nicht eingetragenwerden.

Im Voraus schon mal vielen Dank

Grüsse Empo


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 = "A5"
            Case "A5"
        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
Top
#2
Und wie lautet deine Frage bzw. welche Problemstellung ergibt sich für dich?
Schöne Grüße
Berni
Top
#3
Hallo Berni,

ich möchte, daß die Zahl die in Tabellenblatt"Equi geteilt" in die Spalte "A" und Spalte "BE" abwechselnd eingetragen wird, nun auch in die Tabellenblätter "E 96" und "D 27" ohne die "0" immer in Spalte "A" (immer eine Zeile ansteigend) eingetragen wird. Start Ist "A9".
Ich habe von VBA keine Ahnung.

Viele Grüsse
Empo
Top
#4
Hallöchen,

eventuell so:

Code:
With WorkSheets("E 96")
  If IsEmpty(.Range("A9")) Then
    .Range("A9").Value=CLng(TextBox1)
  Else
    .Cells(.Cells(Rows.Count, 1).End(XlUp).Row+1) ,1).Value=CLng(TextBox1)
  End If
End With

Den Code nimmst Du unter das End With, und dann nochmal für D 27
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Hallo Schauan,

ichhabe den Code eingefügt aber     .Cells(.Cells(Rows.Count, 1).End(XlUp).Row+1) ,1).Value=CLng(TextBox1) ist rot und meldet Syntax fehler.Was muß ich tun?
 

Viele Grüße Empo
Top
#6
Hallo Empo,

entferne die rote Klammer:
    .Cells(.Cells(Rows.Count, 1).End(XlUp).Row+1) ,1).Value=CLng(TextBox1)
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • empo
Top
#7
Guten Morgen,

das Makro funktioniert mit einer kleinen Einschräbkung. In Tabellenblatt "E 96" und Tabellenblatt "D 27" soll keine "0" eingetragen werden. Wie ist dies zu machen?

Grüße Empo
Top
#8
Hallöchen,

dann musst Du eine entsprechende Bedingung hinzufügen, z.B.

With WorkSheets("E 96")
if CLng(TextBox1) <> 0 then
 If IsEmpty(.Range("A9")) Then
   .Range("A9").Value=CLng(TextBox1)
 Else
   .Cells(.Cells(Rows.Count, 1).End(XlUp).Row+1 ,1).Value=CLng(TextBox1)
 End If
End If
End With
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • empo
Top


Gehe zu:


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