Werte untereinander in Excel erfassen - VBA
Frage an die Excel Profis und VBA Experten. Die Aufgabenstellung baut aufeinander auf.
Aufgabenstellung: Zelle A1 soll als Eingabefeld in Excel dienen. Alle Werte, die in A1 eingegeben werden, sollen einfach untereinander ausgegeben werden, also in a2, a3, a4 usw. Die Cursormarkierung (damit meine ich die schwarze Umrahmung der aktiven Zelle) bleibt aber in A1.
Aufgabenstellung: Aufbauend auf Aufgabenstellung 1 soll nun nachdem in A1 ein Wert eingegeben wurde, der Wert wie gehabt in A2 erscheinen. Die schwarze Umrahmung soll aber jedoch zunächst in B2 erscheinen um einen weiteren Wert einzugeben. Erst nach Eingabe eines Wertes in B2 soll die Umrahmung wieder in A1 springen, damit ein nächster Wert eingegeben werden kann, der dann in Zelle A3 erscheint. Dann springt die Cursormarkierung in B3, um einen Wert einzugeben. Danach wieder in A1 usw.
Aufgabenstellung: Aubauend auf Aufgabenstellung 2 sollen die Werte, die in den Zellen der Spalte B eingegeben werden, mit den Werten der Spalte A im Reiter "Tabelle2" verglichen werden. Sofern der eingegebene Wert in der Spalte B mit denen der Spalte A (Reiter Tabelle2) übereinstimmt, soll Excel ein Fenster öffnen, in dem "Wert gefunden" steht.
Ist das in Excel 2003 per VBA für alle 3 Aufgabenstellungen möglich?
3 Antworten
![](https://images.gutefrage.net/media/user/Oubyi/1652363895285_nmmslarge__0_0_120_120_040779a85bcf89fd282fa9af46f30da0.png?v=1652363895000)
Hier erstmal meine Lösung für 1. und 2.
Der Code muss in das Modul des Tabellenblattes.
Falls Du Dich mit VBA nicht so auskennst:
Mache einen Rechtsklick auf den Tabellenreiter (unten, da wo z.B. Tabelle1 steht) und wähle dann "Code anzeigen".
Dann öffnet sich der VBA-Editor. In das leere Fenster kopierst Du diesen Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Range("A1").Value
Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Select
End If
If Target.Column = 2 Then Range("A1").Select
End Sub
Klappt es?
Punkt 3 sehe ich mir morgen früh oder morgen Nach nochmal an (habe Spätschicht).
![](https://images.gutefrage.net/media/user/Oubyi/1652363895285_nmmslarge__0_0_120_120_040779a85bcf89fd282fa9af46f30da0.png?v=1652363895000)
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
google mal nach excel befehle / kommandos, da findest du normal ne ganze liste was du machen kannst, hab das mal in der schule gemacht, weiß es aber jetzt nicht mehr auswendig, hast auf jeden fall jede menge möglichkeiten
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Das ist in VGA ohne Probleme möglich .. Ein wenig google und du findest die Lösung alleine ..
![](https://images.gutefrage.net/media/user/Oubyi/1652363895285_nmmslarge__0_0_120_120_040779a85bcf89fd282fa9af46f30da0.png?v=1652363895000)
Zu 3.:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Range("A1").Value
Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Select
End If
If Target.Column = 2 Then
If Application.WorksheetFunction.CountIf _
(Sheets("Tabelle 2").Range("A:A"), Target) > 0 Then
MsgBox "Wert gefunden"
End If
Range("A1").Select
End If
End Sub
Klappt es?