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

Forumthread: Vba - Befehl für 2 zelle nach rechts

Vba - Befehl für 2 zelle nach rechts
Manuela
Hallo,
ich versuchte mit aufzeichen folgendes Makro:
2 Zellen nach rechts.
dann wird folgendes aufgezeichnet: Range("H20").Select
Das Makro soll aber, ab der x-gewählten Position 2 Zellen nach rechts gehen.
Lieben Dank für eine Hilfe.
Manu
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
in Hilfe- Offset suchen... owT
12.11.2009 09:58:05
robert
AW: Vba - Befehl für 2 zelle nach rechts
12.11.2009 10:00:48
otto
Hi,
ActiveCell.Offset(0, 2).Select
otto
...Offset(0, 2)
12.11.2009 10:01:12
Erich
Hi Manu,
du startest vermutlich in Zelle F20, oder?
Wenn du per Makro einfach nur 2 Spalten weiter nach rechts markieren willst, geht das mit

Sub SelRe2()
Selection.Offset(0,2).Select
End Sub
(vorausgesetzt, du gerätst dabei nicht hinter die letzte Spalte des Blattes!)
Aber vermutlich ist ein "Select" überhaupt nicht nötig. Willst du nur eine Zelle markieren oder mit dieser Zelle etwas tun?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: ...Offset(0, 2)
12.11.2009 10:04:36
Manuela
Hallo Erich,
den Wert oder die Formel von dort (2 Zellen nach rechts) in die aktive Zelle kopieren.
Sorry, bin Anfängerin in VBA.
Ich hätte ja auch von selbst darauf können, im Archiv zu suchen.
Manuela
...Offset(0, 2).Copy ...
12.11.2009 10:21:51
Erich
Hi Manu,
je nachdem, ob du das immer nur für die jeweilige gesamte Markierung
oder nur für die (einzelne) aktive Zelle anwenden willst:

Sub CopSelRe2()      ' gesamte Markierung
Selection.Offset(0, 2).Copy Selection
End Sub
Sub CopActRe2()      ' nur aktive Zelle
ActiveCell.Offset(0, 2).Copy ActiveCell
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: ...Offset(0, 2)
12.11.2009 10:21:53
Jens
Hallo Manuela
den Wert oder die Formel von dort (2 Zellen nach rechts) in die aktive Zelle kopieren
Wert und Formel ist aber ein Unterschied.
Willst Du die Formel in die Zelle kopieren, oder den Wert oder je nachdem, was in der Zelle steht?
Willste Du das über das gesamte Blatt machen können, oder nur in einem bestimmten Bereich?
Gruß aus dem Sauerland
Jens
Anzeige
AW: Vba - Befehl für 2 zelle nach rechts
12.11.2009 10:02:57
Christian
Hallo Manu,
auf das "gehen" im Sinne von "Select" kann man verzichten. Das bremst den ganzen Spaß nur unnötig aus.
Nehmen wir mal an, du hast eine bestimmte Zelle ausgewählt und willst dann den Wert der Zelle (2 nach rechts) wissen.
Sub GetValue_I()
MsgBox ActiveCell.Offset(, 2)
End Sub
oder:
Sub GetValue_II()
MsgBox Cells(ActiveCell.Row, ActiveCell.Column +2)
End Sub
Gruß
Christian
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Zellen mit Offset nach rechts verschieben


Schritt-für-Schritt-Anleitung

Um in Excel VBA eine Zelle oder einen Bereich um zwei Zellen nach rechts zu verschieben, kannst Du den Offset-Befehl verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke Alt + F11.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Schreibe das Makro: Verwende den folgenden Code, um zwei Zellen nach rechts zu verschieben:

    Sub VerschiebeZelleNachRechts()
       ActiveCell.Offset(0, 2).Select
    End Sub
  4. Führe das Makro aus: Platziere den Cursor in der gewünschten Startzelle und drücke F5, um das Makro auszuführen.

Du kannst auch die Werte oder Formeln von einer Zelle in die aktive Zelle kopieren, indem Du den Befehl Copy verwendest:

Sub KopiereWertNachRechts()
    ActiveCell.Offset(0, 2).Copy ActiveCell
End Sub

Häufige Fehler und Lösungen

Fehler 1: Auswahl der Zelle funktioniert nicht

  • Lösung: Stelle sicher, dass Du Dich in einer aktiven Zelle befindest, bevor Du das Makro ausführst. Verwende ActiveCell, um die aktuelle Zelle korrekt zu referenzieren.

Fehler 2: Über die letzte Spalte hinaus verschieben

  • Lösung: Achte darauf, dass Du nicht versuchst, über die Grenzen des Arbeitsblattes hinaus zu gehen, indem Du Offset über die maximale Spalte (z.B. Spalte XFD in Excel) hinaus verwendest.

Alternative Methoden

Anstatt nur die aktive Zelle zu verschieben, kannst Du auch einen gesamten Bereich mit einer offset-Methode bearbeiten. Hier ist ein Beispiel:

Sub MarkiereBereichNachRechts()
    Selection.Offset(0, 2).Select
End Sub

Mit dieser Methode kannst Du auch mehrere Zellen gleichzeitig verschieben oder markieren.


Praktische Beispiele

Hier sind einige praktische Beispiele, die zeigen, wie Du Offset in verschiedenen Situationen verwenden kannst:

  1. Wert aus einer Zelle in eine andere kopieren:

    Sub KopiereWertVonRechts()
       ActiveCell.Offset(0, 2).Copy ActiveCell
    End Sub
  2. Wert in einer MessageBox anzeigen:

    Sub ZeigeWertVonRechts()
       MsgBox ActiveCell.Offset(0, 2).Value
    End Sub
  3. Eine Zelle zwei nach rechts markieren:

    Sub MarkiereZelleNachRechts()
       Cells(ActiveCell.Row, ActiveCell.Column + 2).Select
    End Sub

Tipps für Profis

  • Vermeide unnötige Selektionsbefehle: Statt Zellen zu markieren, arbeite direkt mit Werten, um die Ausführung zu beschleunigen.
  • Verwende With-Anweisungen: Dies erleichtert das Lesen des Codes und verbessert die Leistung:

    With ActiveCell.Offset(0, 2)
       .Value = "Neuer Wert"
    End With
  • Teste Dein Makro: Verwende Testdaten, um sicherzustellen, dass dein Makro wie gewünscht funktioniert, bevor Du es in einem produktiven Arbeitsblatt anwendest.

FAQ: Häufige Fragen

1. Wie kann ich eine Zelle nach rechts verschieben, ohne sie auszuwählen? Du kannst den Wert der Zelle direkt kopieren oder ändern, ohne sie auszuwählen, indem Du ActiveCell.Offset(0, 2).Value = "Neuer Wert" verwendest.

2. Was passiert, wenn ich über die letzten Spalten hinaus gehe? Wenn Du versuchst, über die Grenzen des Arbeitsblattes hinaus zu gehen, wird ein Laufzeitfehler angezeigt. Stelle sicher, dass Du die Grenzen des Arbeitsblattes überprüfst, bevor Du Offset verwendest.

3. Wie kann ich mehrere Zellen gleichzeitig mit Offset bearbeiten? Du kannst Selection.Offset verwenden, um mehrere Zellen zu bearbeiten. Beispiel: Selection.Offset(0, 2).Copy Selection.

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