Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro durch Enter starten

Forumthread: Makro durch Enter starten

Makro durch Enter starten
08.12.2004 12:11:42
Jens
Hallo zusammen,
kann mir jemand erklären, wie ich ein Makro über die Taste Enter starten kann? Zudem sollte das Makro nur dann ausgeführt werden wenn ich in einer bestimmten Zelle stehe, bzw. in einer bestimmten Spalte. Sonst würde sich das Makro ja jedesmal starten wenn Enter betätigt wird. Und das sollte nicht passieren.
Userbild
Zusätzlich hier noch der bereit vorhandene Cuellcode: (allerdings nicht von mir erstellt)
Option Explicit

Sub GuardusMWAus()
Dim SN As String
Dim Trenn As String
Dim Pos As Range
Dim GFname As String
Dim GPath As String
Dim FContent As String
Trenn = ";"
Set Pos = Application.ActiveCell
FContent = Trenn & Format(Cells(Pos.Row, 5).Value, "YYYYMMDD")     'datum
FContent = FContent & Format(Cells(Pos.Row, 6).Value, "HHMMSS") 'uhrzeit
FContent = FContent & Trenn & Cells(Pos.Row, 1).Value 'Messwert1 Spannung Messrichtung
FContent = FContent & Trenn & Cells(Pos.Row, 2).Value 'Messwert2 Spannung Gegenrichtung
FContent = FContent & Trenn & Cells(Pos.Row, 9).Value 'Messwert3 Differenz
FContent = FContent & Trenn
SN = Cells(Pos.Row, 7).Value
FContent = Replace(FContent, ",", ".")
GFname = "RW" & SN & ".txt"
GPath = "c:\GMesswert\"
Open GPath & GFname For Output As #1
Print #1, FContent
Close #1
'Ausgeführte Zeile formatieren
Range("A2:I2").Select
Range("I2").Activate
With Selection.Interior
.ColorIndex = 50
.Pattern = xlSolid
End With
Selection.Font.Bold = True
Range("J3").Select
End Sub

Also, d.h. Markierung soll auf jetzt ausführen stehen, nun Enter drücken Makro wird ausgeführt dabei die Zeile entsprechend Markiert.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro durch Enter starten
Martin
Hallo Jens,
versuch mal so:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r As Range
i = Target.Row     ' Wenn sich der Cursor bei <ENTER> nach rechts bewegt.
i = Target.Row - 1 ' Wenn sich der Cursor bei <ENTER> nach unten bewegt.
If i = 0 Or Target.Column <> 10 Then Exit Sub
Set r = Range("A" & i & ":I" & i)
r.Interior.ColorIndex = 15
' und jetzt Deine Formatierung
End Sub

Allerdings tritt der Effekt auch dann ein, wenn der Cursor IRGENDWIE in Spalte J bewegt wird, z.B. mit der Maus.
Viel Spaß!
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro über Enter-Taste in Excel starten


Schritt-für-Schritt-Anleitung

Um ein Makro über die Enter-Taste zu starten, wenn Du dich in einer bestimmten Zelle oder Spalte befindest, kannst Du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass das Makro nur ausgeführt wird, wenn Du in der gewünschten Spalte bist.

  1. Öffne Deine Excel-Datei.
  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  3. Suche im Projekt-Explorer nach dem entsprechenden Arbeitsblatt, in dem Du das Makro verwenden möchtest.
  4. Doppelklicke auf das Arbeitsblatt, um den Code-Editor zu öffnen.
  5. Füge den folgenden Code in das Code-Fenster ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim r As Range
    Dim i As Long
    i = Target.Row - 1 ' Wenn sich der Cursor bei ENTER nach unten bewegt.

    If i < 1 Or Target.Column <> 10 Then Exit Sub
    Set r = Range("A" & i & ":I" & i)
    r.Interior.ColorIndex = 15
    ' Hier kannst Du Dein Makro aufrufen, z.B.:
    Call GuardusMWAus
End Sub
  1. Schließe den VBA-Editor und teste das Makro, indem Du die Enter-Taste drückst, während Du in der entsprechenden Zelle bist.

Häufige Fehler und Lösungen

Fehler: Makro wird in der falschen Spalte ausgeführt.
Lösung: Überprüfe die Bedingung If Target.Column <> 10 Then Exit Sub. Stelle sicher, dass Du die richtige Spalte angibst, in der das Makro ausgeführt werden soll.

Fehler: Das Makro wird ständig ausgeführt.
Lösung: Achte darauf, dass die Worksheet_SelectionChange-Ereignisprozedur in der richtigen Arbeitsmappe und im richtigen Arbeitsblatt implementiert ist.


Alternative Methoden

Eine weitere Möglichkeit, ein Makro über die Enter-Taste zu starten, ist die Verwendung von Formeln und Schaltflächen. Du kannst eine Form oder Schaltfläche einfügen und mit dem Makro verknüpfen. Auf diese Weise wird das Makro ausgeführt, wenn Du die Schaltfläche anklickst, anstatt die Enter-Taste zu verwenden. Dies kann nützlich sein, wenn Du mehr Kontrolle über die Ausführung des Makros wünschst.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du das Makro GuardusMWAus aufrufen kannst, wenn Du in einer bestimmten Zelle stehst. Wenn Du beispielsweise das Makro so modifizierst, dass es bei Drücken der Enter-Taste in Spalte J ausgeführt wird, kannst Du den Code anpassen:

If i < 1 Or Target.Column <> 10 Then Exit Sub
Call GuardusMWAus

In diesem Beispiel wird das Makro nur ausgeführt, wenn Du in der Zeile von Spalte J bist.


Tipps für Profis

  • Verwendung von Variablen: Achte darauf, Variablen zu verwenden, um den Code übersichtlicher und flexibler zu gestalten.
  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um potenzielle Fehler schnell zu finden und zu beheben.
  • Dokumentation: Kommentiere Deinen Code, um die Funktionsweise zu erklären. Dies ist besonders hilfreich, wenn Du später Änderungen vornehmen möchtest.

FAQ: Häufige Fragen

1. Wie starte ich das Makro automatisch, wenn ich in eine Zelle klicke?
Du kannst das Worksheet_SelectionChange-Ereignis verwenden, um das Makro auszulösen, wenn Du eine Zelle auswählst.

2. Wie kann ich die Enter-Taste in Excel anpassen?
Die Anpassung der Enter-Taste erfolgt über VBA, indem Du das entsprechende Ereignis und die Bedingungen festlegst, wann das Makro ausgeführt werden soll.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige