Supportnet / Forum / Tabellenkalkulation
Macro mit Enter in neue Tabelle springen
Frage
Hallo,
ich habe eine Frage zum Thema Macro´s im Excel.
Da ich auf diesem Gebiet neu bin, breuchte ich einwenig Hilfe.
Ich brauche ein Macro das mir ermöglicht nach Bestätigung (Enter) einer bestimmten Zelle, eine bestimmte Zelle in der nächsten Tabelle der selben Datei anzusteuern.
Bsp. Enter A5 in TABELLE1 => "Ziel" Tabelle2 B2
Ich hoffe es nicht zu geschwollen geschrieben zu haben.
Für die Hilfe, Dank im voraus.
Oliver
Antwort 1 von nighty
hi oliver :)
hier ein beispiel fuer erzwungene eingabe
sheet(1) wird eine eingabe in in der reihenfolge gefordert a2,b2
bei füllung beider nach sheet(2) gesprungen
sheet(2) wird eine eingabe in in der reihenfolge gefordert a2,b2
bei füllung beider nach sheet(3) .range("A2")gesprungen
gruss nighty
alt f11/projektexplorer/tabelle1/einfügen
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = Worksheets(1).Range("A2,B2")
For Each zaehler In rgBereich
If zaehler = "" Then
Cells(zaehler.Row, zaehler.Column).Select
Application.EnableEvents = True
End
Else
If Range("B2") <> "" Then
Sheets(2).Select
Sheets(2).Range("A2").Select
End If
End If
Next zaehler
Application.EnableEvents = True
End Sub
zwecks fortführung der selbe code fuer tabelle2 mit
sprung zu tabelle3
alt f11/projektexplorer/tabelle2/einfügen
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = Worksheets(2).Range("A2,B2")
For Each zaehler In rgBereich
If zaehler = "" Then
Cells(zaehler.Row, zaehler.Column).Select
Application.EnableEvents = True
End
Else
If Range("B2") <> "" Then
Sheets(3).Select
Sheets(3).Range("A2").Select
End If
End If
Next zaehler
Application.EnableEvents = True
End Sub
hier ein beispiel fuer erzwungene eingabe
sheet(1) wird eine eingabe in in der reihenfolge gefordert a2,b2
bei füllung beider nach sheet(2) gesprungen
sheet(2) wird eine eingabe in in der reihenfolge gefordert a2,b2
bei füllung beider nach sheet(3) .range("A2")gesprungen
gruss nighty
alt f11/projektexplorer/tabelle1/einfügen
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = Worksheets(1).Range("A2,B2")
For Each zaehler In rgBereich
If zaehler = "" Then
Cells(zaehler.Row, zaehler.Column).Select
Application.EnableEvents = True
End
Else
If Range("B2") <> "" Then
Sheets(2).Select
Sheets(2).Range("A2").Select
End If
End If
Next zaehler
Application.EnableEvents = True
End Sub
zwecks fortführung der selbe code fuer tabelle2 mit
sprung zu tabelle3
alt f11/projektexplorer/tabelle2/einfügen
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = Worksheets(2).Range("A2,B2")
For Each zaehler In rgBereich
If zaehler = "" Then
Cells(zaehler.Row, zaehler.Column).Select
Application.EnableEvents = True
End
Else
If Range("B2") <> "" Then
Sheets(3).Select
Sheets(3).Range("A2").Select
End If
End If
Next zaehler
Application.EnableEvents = True
End Sub
Antwort 2 von Sport.Billy
Hallo nighty,
Wow, das muss ich erst mal verdauen.
Sieht kompliziert aus.
Ich gebe das mal ein und schau was passiert.
Vielen dank für die schnelle Hilfe.
Gruss
Oliver
Wow, das muss ich erst mal verdauen.
Sieht kompliziert aus.
Ich gebe das mal ein und schau was passiert.
Vielen dank für die schnelle Hilfe.
Gruss
Oliver
Antwort 3 von Sport.Billy
Hallo nighty,
leider will es noch nicht so, wie ich das gerne hätte.
Konkret, nach Eingabe in die Zelle C12 in TAB1, soll nach ENTER in die Zelle D3 der TAB2 gesprungen werden. Dieser Code, obwohl ich die Zellen angegeben habe, macht das nicht.
Vieleicht habe ich was falsch eingegeben???.
alt f11 / projektexplorer / Tabelle1 / einfügen
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = Worksheets(1).Range("c12,d3")
For Each zaehler In rgBereich
If zaehler = "" Then
Cells(zaehler.Row, zaehler.Column).Select
Application.EnableEvents = True
End
Else
If Range("c12") <> "" Then
Sheets(2).Select
Sheets(2).Range("d3").Select
End If
End If
Next zaehler
Application.EnableEvents = True
End Sub
Könntest du nochmals schauen, währe nett.
Gruss
Oliver
leider will es noch nicht so, wie ich das gerne hätte.
Konkret, nach Eingabe in die Zelle C12 in TAB1, soll nach ENTER in die Zelle D3 der TAB2 gesprungen werden. Dieser Code, obwohl ich die Zellen angegeben habe, macht das nicht.
Vieleicht habe ich was falsch eingegeben???.
alt f11 / projektexplorer / Tabelle1 / einfügen
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = Worksheets(1).Range("c12,d3")
For Each zaehler In rgBereich
If zaehler = "" Then
Cells(zaehler.Row, zaehler.Column).Select
Application.EnableEvents = True
End
Else
If Range("c12") <> "" Then
Sheets(2).Select
Sheets(2).Range("d3").Select
End If
End If
Next zaehler
Application.EnableEvents = True
End Sub
Könntest du nochmals schauen, währe nett.
Gruss
Oliver
Antwort 4 von coros
Hallo Oliver,
ich habe mir nighty’s Code nicht näher angesehen, hätte da aber einen kleinen anderen Code für Dich. Kopiere den nachfolgenden Code in das VBA Projekt der Tabelle, bei der wenn in Zelle C12 die Entertaste betätigt wird, dass Tabellenblatt gewechselt werden soll.
Ich hoffe, Du hast das so gemeint und dass Du klar kommst. Wenn nicht, dann melde Dich bitte noch mal.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 und 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird. Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[
ich habe mir nighty’s Code nicht näher angesehen, hätte da aber einen kleinen anderen Code für Dich. Kopiere den nachfolgenden Code in das VBA Projekt der Tabelle, bei der wenn in Zelle C12 die Entertaste betätigt wird, dass Tabellenblatt gewechselt werden soll.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Address = "$C$12" Then
Rem: Makrostart durch Entertaste auf der Zehnertastatur
Application.OnKey "{ENTER}", "Tabelle_Wechseln"
Rem: ´Makrostart durch die normale Entertaste
Application.OnKey "~", "Tabelle_Wechseln"
Else
Rem: Entertaste auf Zehnertastatur wieder für
Rem: die normale Funktion freigeben
Application.OnKey "{ENTER}"
Rem: Entertaste wieder für
Rem: die normale Funktion freigeben
Application.OnKey "~"
End If
End Sub
Danach füge ein StandardModul ein und kopiere das nachfolgende Makro dort hinein.Option Explicit
Sub Tabelle_Wechseln()
Sheets("Tabelle2").Activate
Range("D3").Select
Rem: Entertaste auf Zehnertastatur wieder für
Rem: die normale Funktion freigeben
Application.OnKey "{ENTER}"
Rem: Entertaste wieder für
Rem: die normale Funktion freigeben
Application.OnKey "~"
End Sub
Mit den beiden VBA Codes wird, wenn die aktive Zelle C12 ist und die Entertaste betätigt wird, die normale Funktion der Entertaste durch den VBA Code geblockt und durch den Befehl des Makrostarts „“ geändert. Das hat dann zur Folge, dass bei dem betätigen der Entertaste das Blatt gewechselt wird und die Zelle D3 markiert wird. Ist eine andere Zelle als C12 markiert, behält die Entertaste die normale Funktion.Ich hoffe, Du hast das so gemeint und dass Du klar kommst. Wenn nicht, dann melde Dich bitte noch mal.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 und 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird. Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[
Antwort 5 von nighty
hi oliver :)
wenn noch bedarf sein sollte :))
gruss nighty
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
If Sheets(1).Range("C12").Value = "" Then
Sheets(1).Range("C12").Select
Application.EnableEvents = True
End
Else
If Range("c12") <> "" Then
Sheets(2).Select
Sheets(2).Range("d3").Select
End If
End If
Application.EnableEvents = True
End Sub
wenn noch bedarf sein sollte :))
gruss nighty
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
If Sheets(1).Range("C12").Value = "" Then
Sheets(1).Range("C12").Select
Application.EnableEvents = True
End
Else
If Range("c12") <> "" Then
Sheets(2).Select
Sheets(2).Range("d3").Select
End If
End If
Application.EnableEvents = True
End Sub

