Clever-Excel-Forum

Normale Version: Daten/Wert von Textfeld in bestimmte Zelle
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo McArthur,

Deine TextBox mit dem KeyDown-Event gehört zu den ActiveX-Steuerelementen.
Ein Rechteck gehört zu den Shapes. Ein Shape hat jedoch kein KeyDown-Ereignis Sad
Hallo,
Danke shauan und WillWissen für eure Hilfe, ihr hilft mir wirklich weiter :).
Meine Frage wäre jetzt noch ob Ich konkret mit einem Rechteck/Shape genau das selbe bewirken könnte, wie mit dem Textfeld. Das bedeutet, wenn Ich auf das Feld klicke kann Ich irgendeinen Begriff eingeben und dieser wird dann automatisch in eine von mir festgelegte Zelle übertragen. Wenn Ich dann einen neuen Begriff eingebe, soll der alte aus der Zelle, einfach überschrieben werden. Die Eingabe sollte dabei durch die Enter Taste beendet werden.

Außerdem bräuchte Ich nochmals einen ähnlichen Code, bei welchem der alte Begriff nicht ersetzt werden, sondern der neue Begriff, eine Zeile nach unten verschoben werden soll.
Ich hoffe Ihr könntet mir vielleicht hierbei noch weiter helfen.

Viele Grüße

McArthur1
Hallo McArthur,

Zitat:Meine Frage wäre jetzt noch ob Ich konkret mit einem Rechteck/Shape genau das selbe bewirken könnte, wie mit dem Textfeld. Das bedeutet, wenn Ich auf das Feld klicke kann Ich irgendeinen Begriff eingeben und dieser wird dann automatisch in eine von mir festgelegte Zelle übertragen.

hab ich Dir gerade beantwortet.

Zitat:Ein Shape hat jedoch kein KeyDown-Ereignis

Wenn man dem Rechteck ein Klick-Ereignis zuweist, kannst Du nicht mehr per Klick in den Eingabemodus des Rechteckes wechseln. Das geht dann nur noch über das Kontextmenü.
Alternativ könnte man beim ausgeführten Makro eine Inputbox erscheinen lassen, wo Du den Text eingeben kannst und dann wird er übertragen, wenn Du auf OK drückst.

Im Prinzip so:

Zitat:Sub Rechteck1_Klicken()
'Code in Modul
'Variablendeklaration String
Dim strText$
'Aufruf der Inputbox
strText = InputBox("Neuer Text:", "Eingabe des Textes")
'Wenn etwas eingegeben wurde, dann
If strText <> "" Then
'Text in erste freie Zelle der Spalte A = 1 uebertragen
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = strText
'Text in Rechteck 1 uebertragen
Tabelle1.Shapes("Rectangle 1").TextEffect.Text = strText
'Ende Wenn etwas eingegeben wurde, dann
End If
End Sub

Du musst dann nur schauen, ob das Ding Rechteck 1 heißt und den englischen Begriff dafür nehmen. Man könnte da auch noch was mit Application.Caller verbessern ...

Zitat:sondern der neue Begriff, eine Zeile nach unten verschoben werden soll

Das hatten wir auch schon. Das ist aus diesem Code

Zitat:Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Tabelle1.TextBox1.Text
End Sub

der Teil

Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = ...
Hallo shauan,
tut mir Leid, dass Ich erst jetzt wieder schreibe. Ich habe mich jetzt dafür entschieden mit Textfeldern zu arbeiten. Könntest du mir vielleicht noch helfen und mir sagen, wie Ich deinen Code ändern müsste, damit der Begriff nicht immer in die nächste unterliegende Zeile übernommen wird, sondern genau in das Feld, in welches Ich den Begriff haben will?:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Tabelle1.TextBox1.Text
End Sub

Viele Grüße

McArthur1
Hallöchen,

das Ziel wird hier definiert:
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value

Wenn Du es an immer gleiche Stelle haben willst, dann z.B. so:
Range("A1").Value
Hallo,
Danke für deine Hilfe ;D, alles klappt so weit

Viele Grüße

McArthur1
Seiten: 1 2