Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1648to1652
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eingabefeld zum HInzufügen von Werten

Eingabefeld zum HInzufügen von Werten
06.10.2018 09:56:27
Werten
Hallo, ist es möglich in Excel ein Eingabefeld zu machen, dass dann den Eingegeben Wert wo anders hinschreibt?
Also zum Beispiel in A1 ist ein Eingabefeld. Ich gebe zB 120 ein. In B1 soll dann 120 stehen. Anschließend gebe ich in A1 346 ein → nun soll in B2 346 stehen. Und so weiter.
freu mich über eure Antworten

31
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:05:26
Werten
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf Deine Tabelle, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt nur in dieser Tabelle.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Application.EnableEvents = False
Target.Offset(0, 1) = Target.Offset(0, 1) + Target
Application.EnableEvents = True
End If
End Sub


Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:17:43
Werten
Danke, funktioniert ganz gut, aber geht es auch, dass die Werte nicht gleich summiert werden sondern, einzeln untereinander stehen?
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:18:48
Werten
Target.Offset(0, 1) + chr(13) & Target
das ist dann Text.
Gruß Hajo
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:21:20
Werten
Bekomme da einen Laufzeitfehler
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:30:38
Werten
nicht getestet
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Application.EnableEvents = False
If Target.Offset(0, 1) = "" Then
Target.Offset(0, 1) = Target
Else
Target.Offset(0, 1) = Target.Offset(0, 1) & vbLf & Target
End If
Application.EnableEvents = True
End If
End Sub
Gruß Hajo
Anzeige
Nein, wie die vorherigen Beiträge auch..
06.10.2018 10:34:42
Werner
Hallo Hajo,
..du solltest dir vielleicht den Eingangsbeitrag nochmal durchlesen.
Laut Eingangsbeitrag:
Eingabe in A1 - Ausgabe in B1
Eingabe in A1 - Ausgabe in B2
Eingabe in A1 - Ausgabe in B3....
Gruß Werner
falsch verstanden ? Du addierst in B1
06.10.2018 10:20:41
Matthias
In B1 soll dann 120 stehen. Anschließend gebe ich in A1 346 ein → nun soll in B2 346 stehen. Und so weiter.
Du addierst in B1.
Gewollt ist aber (lt. Fragestellung)
1.Eintag in B1
2.Eintag in B2
3.Eintag in B3
usw.
Gruß Matthias
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:12:00
Werten
Hallo
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Loletzte&
Loletzte = Cells(Rows.Count, 2).End(xlUp).Row
If Target.Address = Cells(1, 1).Address Then
If Cells(1, 2) = "" Then
Cells(1, 2) = Target
Else
Cells(Loletzte + 1, 2) = Target
End If
End If
End Sub
Code gehört in die entsprechende Tabelle
Spalte(B) muss zu Beginn leer sein.
Gruß Matthias
Anzeige
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:23:53
Werten
Hallo, funktioniert irgendwie nicht, wenn ich das erste mal etwas in A1 eingebe gehts, wenn ich dann aber den Wert überschreibe, passiert nichts
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:28:58
Werten
Hallo Fabian,
aber selbstverständlich geht das. Habe es eben mit dem Code von Matthias versucht.
Eingabe in A1 - Enter Wert steht in B1
Eingabe in A1 - Ender Wert steht in B2
Wenn du was anderes willst, dann mußt du das nochmal erklären.
Ich habe es auch so verstanden wie es Matthias dann umgesetzt hat. Hatte auch schon einen entsprechenden Code.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Loletzte As Long
If Target.Address(0, 0) = "A1" Then
Loletzte = Cells(Rows.Count, 2).End(xlUp).Offset(1).Row
If Cells(1, 2) = "" Then Loletzte = 1
Cells(Loletzte, 2) = Target
End If
End Sub

Der macht genau das gleiche wie der Code von Matthias.
Gruß Werner
Anzeige
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:31:58
Werten
Irgendwas mach ich falsch, wenn ich den Code reinkopier, und dann in A1 was eingebe, passiert gar nix. Muss ich sonst noch irgendwas ändern/machen?
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 10:38:36
Werten
Hallo Fabian,
du hast den Code schon in dem Tabellenblatt in dem er sich auch auswirken soll?
Rechtsklick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Codefenster kopieren
Wenn ja und es tut sich trotzdem nix, kann es sein, dass dir beim Versuch von Hajos Code das beim Testen in einen Fehler gelaufen ist? Dann sind nämlich die Events ausgeschaltet.
Kopier mal folgendes Makro in ein allgemeines Modul und führ es einmal aus.
Public Sub aaa()
Application.EnableEvents = True
End Sub
Jetzt nochmal was in A1 eingeben.
Gruß Werner
Anzeige
Deine Events sind aus! Durch den Laufzeitfehler
06.10.2018 10:41:24
Matthias
Beim Test von Hajos Vorschlag hast Du doch einen Laufzeitfehler bekommen
Deshalb steht EnableEvents jetzt auf False
Schreib mal ins Direktfenster(mit STRG+G im VBE öffnen):
?Application.EnableEvents
und drücke Enter.
Dann siehst Du ob Wahr oder Falsch
Wenn Falsch, dann schreibe ins Direktfenster
Application.EnableEvents=True
und drücke wieder Enter
Dann gehts bestimmt wieder
Gruß Matthias
AW: Bei mir gehts ... siehe Datei
06.10.2018 10:41:14
Fabian
Ok, bei mir gehts jetzt auch, danke. Aber noch eine blöde Frage, wie bekomm ich jetzt hin, dass das woanders ist. Möchte zum Beispiel das Eingabefeld nicht in A1 haben, sonder in E4
Anzeige
If Target.Address = Cells(4, 5).Address Then
06.10.2018 10:43:35
Matthias

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Loletzte&
Loletzte = Cells(Rows.Count, 2).End(xlUp).Row
If Target.Address = Cells(4, 5).Address Then
If Cells(1, 2) = "" Then
Cells(1, 2) = Target
Else
Cells(Loletzte + 1, 2) = Target
End If
End If
End Sub

AW: If Target.Address = Cells(4, 5).Address Then
06.10.2018 10:53:01
Fabian
OK, und wie verändere ich die Ausgabe, also nicht B1, sondern beispielsweies F4
AW: If Target.Address = Cells(4, 5).Address Then
06.10.2018 10:57:41
Fabian
AH, habs schon. Danke
AW: If Target.Address = Cells(4, 5).Address Then
06.10.2018 11:03:07
Fabian
Nein, habs doch nicht. Und ist es auch möglich die Werte in einer anderen Tabelle schreiben zu lassen. Also Eingabe in Tabelle1, Ausgabe in Tabelle2.
Sorry, das ich so viel Frage, aber kenn mich halt echt nicht gut aus in Excel
Anzeige
AW: If Target.Address = Cells(4, 5).Address Then
06.10.2018 11:11:21
Werner
Hallo Fabian,
mein Vorschlag:
Du machst dir jetzt mal Gedanken, was du genau haben willst.
In welcher Tabelle erfolgt die Eingabe?
In welcher Zelle dieser Tabelle erfolgt die Eingabe?
In welcher Tabelle erfolgt die Ausgabe?
In welcher Zelle dieser Tabelle erfolgt die Ausgabe?
Sei mir nicht böse aber sonst wird das hier noch eine never ending Story.
Gruß Werner
AW: If Target.Address = Cells(4, 5).Address Then
06.10.2018 11:19:49
Fabian
Bin halt am testen und möchte immer alles verbessern. Wäre halt hübsch, wenn die Eingabe in Tabelle1, E4 erfolgt und die Ausgabe in Tabelle2, A1,A2,A3.....
AW: If Target.Address = Cells(4, 5).Address Then
06.10.2018 11:26:41
Werner
Hallo Fabian,
ist ja alles kein Problem. Es ist halt extrem nervig, wenn die Vorgaben dauernd über den Haufen geschmissen werden.
Deshalb solltest du dir erst mal im Klaren darüber sein, was du genau wie haben willst, und dann das hier nachfragen.
Und jetzt der Code für deinen Wunsch:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Loletzte As Long
If Target.Address(0, 0) = "E4" Then
With Worksheets("Tabelle2")
Loletzte = .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
If .Cells(1, 1) = "" Then Loletzte = 1
.Cells(Loletzte, 1) = Target
End With
End If
End Sub
Der Code gehört ins Codemodul von deiner Tabelle1.
Gruß Werner
Anzeige
AW: If Target.Address = Cells(4, 5).Address Then
06.10.2018 12:09:37
Fabian
Ihr habt alle meinen Respekt verdient hier. Danke, funktioniert alles super. Aber jetzt habe ich noch eine Verständinsfrage. Wenn ich jetzt die Position der Ausgabe verändern möchte, muss ich den Wert If.Cells(x,y) verändern. Stimmt das?
AW: If Target.Address = Cells(4, 5).Address Then
06.10.2018 12:11:24
Fabian
Ok, funktioniert alles super, danke. Jetzt habe ich noch eine Verständnisfrage. Wenn ich die Position der Ausgabe verändern möchte, muss ich nur den Wert If .Cells (x,y) verändern. Stimmt das?
Ihr habt alle meinen Respekt verdient hier, echt!
was ist dann wohl F4?
06.10.2018 11:03:39
Matthias
Wenn Cells(4, 5) = E4 ist was ist dann wohl F4?
Cells(Zeile,Spalte)
Zeile 4 also Cells(4,Spalte)
Spalte "F" =Spalte(6) also Cells(4,6)
ganauer gesagt Du ersetzt im Code die Spalte(2) durch die Spalte(6)
und die Zeile(1) durch die Zeile(4).
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Loletzte&
Loletzte = Cells(Rows.Count, 6).End(xlUp).Row
If Target.Address = Cells(4, 5).Address Then
If Cells(4, 6) = "" Then
Cells(4, 6) = Target
Else
Cells(Loletzte + 1, 6) = Target
End If
End If
End Sub
Du musst also immer nur Zeile und Spalte anpassen bei Benutzung von Cells()
Gruß Matthias
Anzeige
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 12:31:57
Werten
Moin Fabian!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$E$4" Or Target.Value = "" Then Exit Sub
With Worksheets("Tabelle2")
.Cells(IIf(IsEmpty(.Cells(1, 1)), 1, IIf(IsEmpty(.Cells(2, 1)), 2, _
.Cells(1, 1).End(xlDown).Row + 1)), 1) = Target.Value
End With
End Sub

Gruß Gerd
AW: Eingabefeld zum HInzufügen von Werten
06.10.2018 12:39:36
Werten
Hi Gerd, funktionert wie ich es möchte. Was müsste ich jetzt ändern wenn ich die Ausgabe in B2 in Tabelle 2 haben möchte
AW: Feldvariablen
06.10.2018 12:41:42
Gerd

Private Sub Worksheet_Change(ByVal Target As Range)
Const x As Long = 4
Const y As Long = 10
If Target.Address  "$E$4" Or Target.Value = "" Then Exit Sub
With Worksheets("Tabelle2")
.Cells(IIf(IsEmpty(.Cells(x, y)), x, IIf(IsEmpty(.Cells(x + 1, y)), x + 1, _
.Cells(x, y).End(xlDown).Row + 1)), y) = Target.Value
End With
End Sub

AW: Feldvariablen
06.10.2018 13:08:08
Fabian
Ok, danke für die Hilfe! Könnte ich diese Funktion auch 2mal in einer Excel nutzen?
AW: Feldvariablen
06.10.2018 13:11:14
Gerd
Hallo Fabian,
so im Prinzip nicht.
Aber beschreibe dein Vorhaben bitte genauer.
Gruß Gerd
die Aufgaben ändern sich doch ständig
06.10.2018 18:05:19
Matthias
Er weiß doch selbst nicht was er will
Und wenn man ihm was erklärt gibts keine Rückmeldung:-(

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige