Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mit Makro in Spalte A springen

Mit Makro in Spalte A springen
23.10.2006 15:29:11
Stefan
Hallo zusammen,
für ein Arbeitsblatt hätte ich gerne eine Hilfe per Makros: der Cursor soll von einer beliebigen Spalte in die erste Spalte springen. Dann soll er in die nächste Zeile springen und wahlweise entweder den Wert der darüberliegenden Zelle in die neue Zeile übernehmen (Makro: wert_gleich) oder aber zu dem Wert der Zelle darüber '1' dazuzählen (Makro: wer_plus1).
Ich habe das Makro (s.u.) aufgezeichnet. Immer, wenn ich in der 16. Spalte (Q) stehe, läuft das Makro. Wenn nicht , kommt folgende Fehlermeldung:
Laufzeitfehler '1004':
Anwendungs- oder objektdefinierter Fehler
Mir ist klar, dass die -16 der Sprung aus Spalte Q an den Anfang ist. Ich habe es aber nicht hinbekommen, von einer beliebigen Spalte in die Spalte A zu springen.
Makro:
...
ActiveCell.Offset(1, -16).Range("A1").Select
dann entweder
ActiveCell.FormulaR1C1 = "=R[-1]C" (Makro wert_gleich)
oder
ActiveCell.FormulaR1C1 = "=R[-1]C+1" (Makro wert_plus1)
...
Wie kann ich das hinbekommen, dass von einer beliebeigen Spalte in die Spalte A gesprungen wird?
Danke für Hinweise.
Gruß,
Stefan
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Makro in Spalte A springen
23.10.2006 15:37:49
Oberschlumpf
Hi Stefan
Versuch es mal so:

Sub Makro(Zeile)
Range("A" & Zeile).Select
dann entweder
ActiveCell.FormulaR1C1 = "=R[-1]C" (Makro wert_gleich)
oder
ActiveCell.FormulaR1C1 = "=R[-1]C+1" (Makro wert_plus1)
End Sub

Du musst vor der Stelle im Code, in der du Makro aufrufst, die aktuelle Zeile an das Makro übergeben - deswegen Zeile in Klammern.
Z Bsp
Dein vorheriger Code
...
aktuelleZeile = hier die aktuelle Zeile übergeben
Call Makro(aktuelleZeile)
...
dein weiterer Code
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Mit Makro in Spalte A springen
23.10.2006 15:46:14
Daniel
Hallo
klar, wenn du in einer spalte kleiner 16 stehts, springt das Makro ja in den negativen Bereich.
Das geht natürlich nicht.
- Sprung in die Spalte A der gleichen Zeile:
cells(selection.row, 1).select
- Sprung in Spalte A, aber eine Zeile tiefer, Zellwert der Zelle drüber übernehmen:
cells(selection.row+1,1).select
selection.value = selection.offset(-1,0).value [+1]
das in Eckigen Klammen noch mit eingeben für die Erhöhung des Wertes um 1 (ohne Klammern)
Gruß, Daniel
ps. vielleicht solltest du noch deinen Level auf VBA nur mit Recorder anpassen
Anzeige
AW: Mit Makro in Spalte A springen
23.10.2006 15:48:13
Erich
Hallo Stefan,
Select und Offset brauchst du nicht, du kannst die Zelle unterhalb der aktiven in Spalte 1 (=A)
direkt mit einer Formel belegen:
Cells(ActiveCell.Row + 1, 1).FormulaR1C1 = "=R[-1]C" '(Makro wert_gleich)
'oder
Cells(ActiveCell.Row + 1, 1).FormulaR1C1 = "=R[-1]C+1" '(Makro wert_plus1)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Mit Makro in Spalte A springen
23.10.2006 16:31:14
Stefan
Hallo Oberschlumpf,
hallo Daniel,
hallo Erich G,
vielen Dank für Eure Hinweise. Sie klappen alle.
VBA gut stimmt schon, ich habe aber noch nie mit diesen Zellverweisen in einem Makro gearbeitet und das hab' ich halt leider nicht hinbekommen.
Viele Grüße,
Stefan
;
Anzeige
Anzeige

Infobox / Tutorial

Mit Makros in Spalte A springen


Schritt-für-Schritt-Anleitung

Um in Excel mit einem Makro in Spalte A zu springen, kannst Du folgendes VBA-Skript verwenden:

Sub Makro(Zeile)
    Cells(Zeile + 1, 1).FormulaR1C1 = "=R[-1]C" ' Wert der darüberliegenden Zelle übernehmen
    ' oder
    ' Cells(Zeile + 1, 1).FormulaR1C1 = "=R[-1]C+1" ' Wert um 1 erhöhen
End Sub
  1. Aufzeichne ein neues Makro oder öffne den VBA-Editor (Alt + F11).
  2. Füge den obigen Code in ein neues Modul ein.
  3. Stelle sicher, dass Du die aktuelle Zeile übergibst, wenn Du das Makro aufrufst, zum Beispiel:
aktuelleZeile = ActiveCell.Row
Call Makro(aktuelleZeile)
  1. Jetzt kannst Du das Makro ausführen, um in die nächste Zeile in Spalte A zu springen.

Häufige Fehler und Lösungen

  • Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler
    Dieser Fehler tritt auf, wenn Du versuchst, in einen negativen Bereich zu springen. Stelle sicher, dass Du den Sprung korrekt definierst, indem Du die Zeile und Spalte richtig angibst.

  • Sprung in negative Zeilen
    Wenn Du in einer Spalte bist, die kleiner als 1 ist, wird der Sprung in eine negative Zeile versucht. Verwende Cells(Selection.Row, 1).Select, um sicherzustellen, dass Du in der gleichen Zeile bleibst.


Alternative Methoden

Eine alternative Methode, um in Spalte A zu springen, ist die Verwendung der Select-Methode:

Sub AlternativeMakro()
    Cells(ActiveCell.Row + 1, 1).Select ' In die nächste Zeile in Spalte A springen
End Sub

Dies ist besonders nützlich, wenn Du den Fokus auf die Zelle in Spalte A setzen möchtest.


Praktische Beispiele

  1. Wert übernehmen:

    Cells(ActiveCell.Row + 1, 1).FormulaR1C1 = "=R[-1]C" ' Wert der darüberliegenden Zelle übernehmen
  2. Wert um 1 erhöhen:

    Cells(ActiveCell.Row + 1, 1).FormulaR1C1 = "=R[-1]C+1" ' Wert um 1 erhöhen

Beide Beispiele zeigen, wie Du den Cursor in Spalte A springen lassen kannst, während Du den Wert der darüberliegenden Zelle übernimmst oder anpasst.


Tipps für Profis

  • Nutze With...End With-Anweisungen, um den Code lesbarer zu gestalten.
  • Vermeide die Verwendung von Select und Activate, wenn es nicht notwendig ist, um die Ausführungsgeschwindigkeit zu erhöhen.
  • Experimentiere mit dem Aufzeichnen von Makros, um ein besseres Verständnis für die verschiedenen Methoden zu erhalten.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um in eine andere Spalte zu springen?
Ändere einfach die Spaltennummer in der Cells-Funktion, z.B. Cells(Zeile + 1, 2) für Spalte B.

2. Was mache ich, wenn ich nicht weiß, in welcher Zeile ich bin?
Verwende ActiveCell.Row, um die aktuelle Zeile dynamisch zu ermitteln, bevor Du das Makro aufrufst.

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