Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
VBA Wert Zelle in Userform
21.08.2014 07:48:22
Charly
Hallo!
Ich komme mit einem Problem nicht weiter und würde mich sehr über kompetente Hilfe freuen.
Ich habe folgenden Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
Cells(Range("A65536").End(xlUp).Offset(1, 0).Row, 1) = TextBox1
End If
End Sub
Bewirkt das der Inhalt aus einer Tetxtbox jeweils beim drücken der Enter Taste in die nächste Zeile der Spalte A eingegeben wird.
Nun hätte ich das gerne genau anderherum und ohne Enter Taste. Sprich: Ich möchte, dass bei klicken des CommandButtons jeweils der nächste Eintrag in einer Textbox auf meiner Userform eingetragen wird. Also erst B1 dann B2 dann B3 usw.
Hat da jemand nen Code für mich?

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Wert Zelle in Userform
21.08.2014 08:21:47
fcs
Hallo Charly,
dazu muss man einen Zeilenzähler verwalten.
Hierzu kann man eine Variable (modulweit deklariert) verwenden oder auch die Tag-Eigenschaft eines Steuerelements.
Der Startwert des Zählers kann in der Initialisierungsprozedur des Userforms gesetzt werden.
Bei jedem Klick auf die Schaltfläche wird der Zellwert ausgelesen und der Zähler um 1 erhöht.
Gruß
Franz
'Userform-Code
Private Sub CommandButton1_Click()
'Wert in Spalte B in Textbox1 einlesen
With TextBox1
.Value = Cells(Val(.Tag), 2).Text   ' oder .Value
.Tag = Val(.Tag) + 1                'nächste Einlesezeile setzen
End With
End Sub
Private Sub UserForm_Initialize()
TextBox1.Tag = 1            'Startzeile für das Einlesen der Werte
Call CommandButton1_Click   '1. Wert einlesen
End Sub

Anzeige
AW: VBA Wert Zelle in Userform
21.08.2014 14:55:48
Charly
Funktioniert super! Vielen Dank!
Wie kann ich das ganze jetzt noch genauso für die Spalte C mit einem zusätzlichen CommandButton schaffen?

AW: VBA Wert Zelle in Userform
21.08.2014 15:26:45
fcs
Hallo Charly,
in dem Fall ist es wahrschlich günstiger die Tag-Eigenschaft der Commandbuttons als Zeilenzähler zu nutzen.
Gruß
Franz
'Userform-Code
Private Sub CommandButton1_Click()
'Wert in Spalte B in Textbox1 einlesen
With CommandButton1
TextBox1.Value = Cells(Val(.Tag), 2).Text   ' oder .Value
.Tag = Val(.Tag) + 1                'nächste Einlesezeile setzen
End With
End Sub
Private Sub CommandButton2_Click()
'Wert in Spalte C in Textbox1 einlesen
With CommandButton2
TextBox1.Value = Cells(Val(.Tag), 3).Text   ' oder .Value
.Tag = Val(.Tag) + 1                'nächste Einlesezeile setzen
End With
End Sub
Private Sub UserForm_Initialize()
CommandButton1.Tag = 1            'Startzeile für das Einlesen der Werte aus Spalte B
CommandButton2.Tag = 1            'Startzeile für das Einlesen der Werte aus Spalte C
Call CommandButton1_Click   '1. Wert einlesen
End Sub

Anzeige
AW: VBA Wert Zelle in Userform
21.08.2014 16:04:35
Charly
Franz du bist der Beste. Ich habe mich durch tausende Foren geklickt und immer nur dumme Antworten bekommen. Deine Antwort war mehr als kompetent. Funktioniert alles. Super! Vielen Dank!!!

AW: VBA Wert Zelle in Userform
21.08.2014 16:42:16
Charly
Wenn du mir jetzt noch sagst wie ich einen Löschen Button ersetellen kann, der NUR bei Bedarf das Wort in der Excel Tabelle löscht, küss ich dir die Füße :-)
Der Löschen Button sollte dann allerding parallel zu den anderen Zeilen "wandern" und dann Einträge aus den Spalten B und C löschen in der jeweiligen Zeile, wo sich auch die anderen gerade befinden.
Hoffe das ist so einigermaßen verständlich...

Anzeige
AW: VBA Wert Zelle in Userform
22.08.2014 09:42:58
fcs
Hallo Charly,
mit den nachfolgenden Ergänzungen sollte auch das Löschen funktionieren.
Gruß
Franz
'Userform-Code
Private Sub CommandButton1_Click()
'Wert in Spalte B in Textbox1 einlesen
With CommandButton1
TextBox1.Value = Cells(Val(.Tag), 2).Text   ' oder .Value
.Tag = Val(.Tag) + 1                'nächste Einlesezeile setzen
End With
CommandButton3.Tag = 2 'angezeigter Wert steht in dieser Spalte
End Sub
Private Sub CommandButton2_Click()
'Wert in Spalte C in Textbox1 einlesen
With CommandButton2
TextBox1.Value = Cells(Val(.Tag), 3).Text   ' oder .Value
.Tag = Val(.Tag) + 1                'nächste Einlesezeile setzen
End With
CommandButton3.Tag = 3 'angezeigter Wert steht in dieser Spalte
End Sub
Private Sub CommandButton3_Click()
'Löschen in Spalten B oder C
Dim Zeile As Long, Spalte As Long
Spalte = Val(CommandButton3.Tag)
Select Case Spalte
Case 0
'do nothing
Case 2 'löschen in Spalte B
Zeile = Val(CommandButton1.Tag) - 1
Case 3 'löschen in Splate C
Zeile = Val(CommandButton2.Tag) - 1
End Select
If Spalte > 0 Then
With Cells(Zeile, Spalte)
If MsgBox("Inhalt in Zelle """ & .Address(False, False, xlA1) & """ löschen?", _
vbQuestion + vbOKCancel, "Zellinhalt löschen") = vbOK Then
.ClearContents
End If
End With
End If
End Sub
Private Sub UserForm_Initialize()
CommandButton1.Tag = 1            'Startzeile für das Einlesen der Werte aus Spalte B
CommandButton2.Tag = 1            'Startzeile für das Einlesen der Werte aus Spalte C
Call CommandButton1_Click   '1. Wert einlesen
End Sub

Anzeige
AW: VBA Wert Zelle in Userform
22.08.2014 12:09:28
Charly
Du bist ein Genie. Ohne dich hätte ich das alles niemals geschafft. Wie kann ich erreichen, dass er nicht in Spalte B oder C löscht, sondern in beiden Spalten?

AW: VBA Wert Zelle in Userform
22.08.2014 14:55:36
fcs
Hallo Charly,
dein letzte Frage läßt etwas Spielraum für unterschiedliche Interpretationen.
Ich hab es jetzt so interpretiert, dass in der Zeile, deren Wert in B oder C in Textbox1 angezeigt wird, die Inhalte in Spalte B und C gelöscht werden.
Gruß
Franz
Private Sub CommandButton3_Click()
'Löschen in Spalten B oder C
Dim Zeile As Long, Spalte As Long, Zelle_B As Range, Zelle_C As Range
Spalte = Val(CommandButton3.Tag)
Select Case Spalte
Case 0
'do nothing
Case 2 'löschen in Spalte B und C
Set Zelle_B = Cells(Val(CommandButton1.Tag) - 1, 2)
Set Zelle_C = Cells(Val(CommandButton1.Tag) - 1, 3)
'      Set Zelle_C = Cells(Val(CommandButton2.Tag) - 1, 3)
Case 3 'löschen in Splate B und C
'      Set Zelle_B = Cells(Val(CommandButton1.Tag) - 1, 2)
Set Zelle_B = Cells(Val(CommandButton2.Tag) - 1, 2)
Set Zelle_C = Cells(Val(CommandButton2.Tag) - 1, 3)
End Select
If Spalte > 0 Then
If MsgBox("Inhalt in Zelle """ & Zelle_B.Address(False, False, xlA1) _
& """ und """ & Zelle_C.Address(False, False, xlA1) & """ löschen?", _
vbQuestion + vbOKCancel, "Zellinhalt löschen") = vbOK Then
Zelle_B.ClearContents
Zelle_C.ClearContents
End If
End If
End Sub

Anzeige
AW: VBA Wert Zelle in Userform
22.08.2014 15:38:32
Charly
Perfekt! Genau richtig interpretiert! Mal so ne Frage: Woher hast du diese umfangreichen Kenntnisse und was veranlasst dich diese kostenfrei mit anderen zu teilen? Bitte doch Kurse an oder so!

AW: VBA Wert Zelle in Userform
22.08.2014 15:55:50
fcs
Hallo Charly,
Mal so ne Frage: Woher hast du diese umfangreichen Kenntnisse und was veranlasst dich diese kostenfrei mit anderen zu teilen?
Kenntnisse: über 20 Jahre Anwendung von Excel inkl. Makroprogrammierung
Excel ist für mich auch Hobby und Gehirnjogging für den Logikteil.
Gruß
Franz

AW: VBA Wert Zelle in Userform
22.08.2014 16:33:42
Charly
Einfach cool. Du hast richtig was drauf! Ich habe da mal noch ne Frage. Wenn es dir zuviel wird, sag es einfach. Also:
Da es mich nervt jedes Mal nach der Eingabe den Text wieder manuell aus der Textbox zu löschen, habe ich diesen Code:
Private Sub CommandButton4_Click()
TextBox3.Text = ""
End Sub
Darüberhinaus habe ich ja jetzt, dank dir, den "Next" Schalter, der mir das nächste Wort aus Spalte B in eine ANDERE TExtbox wirft. Jetzt würde ich sehr gerne meine Löschfunktion in den "Next" Schalter integrieren. Hoffe das ist einigermaßen verständlich...

Anzeige
AW: VBA Wert Zelle in Userform
22.08.2014 16:46:29
fcs
Hallo Charly,
du zeigst aber sehr wenig Experimentierfreude.
Am Ende des Code bzw. an passender Position des Codes für den "Next"-Schalter fügst du die Zeile
    TextBox3.Text = ""
ein.
Gruß
Franz

AW: VBA Wert Zelle in Userform
22.08.2014 17:21:52
Charly
Hallo Franz,
doch doch Experimentierfreude ist vorhanden. Habe mir immerhin ein komplettes Vokabellernprogramm mit VBA und deiner Hilfe geschrieben. Und die Codes von dir habe ich auch immer nur als Grundlage genutzt und dann an meine Zwecke angepasst. Das ganze obwohl ich faktisch null Ahnung oder nur sehr wenig (im Studium mal kurz) habe.
Hatte es auch so probiert...
Wusste nur nicht an welcher Stelle ich es einfügen muss...
Klappt aber jetzt. Also nochmal vielen vielen Dank.
Werde dich jetzt erstmal in Ruhe lassen :-)
Gruß
Charly
Anzeige

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige