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

Forumthread: Nach VBA bestimmte Zelle markieren

Nach VBA bestimmte Zelle markieren
10.06.2020 12:39:35
David
Hallo,
ich verwende folgendes Script um daten aus Excel in eine .doc Datei zu exportieren.

Sub Markierter_Bereich_in_Textdatei2()
Dim strFileName As String
Dim objWord As Object, objDocument As Object
Application.ScreenUpdating = False
Application.EnableEvents = False
Set objWord = CreateObject(Class:="Word.Application")
Set objDocument = objWord.Documents.Add
strFileName = Selection.Offset(0, 4).Value
Selection.Offset(0, 5).Copy
objWord.Selection.Paste
objDocument.SaveAs2 "C:\Google Drive\Export\" & _
strFileName & ".doc", 0
objWord.Quit
Application.EnableEvents = True
End Sub

Nach export bleibt die Zelle aktiv aus welcher der wert exportiert wurde.
Nun möchte ich das nicht diese Zelle anch export markiert ist sondern eine Zelle 7 Zellen links daneben.
Ich habe es mit folgen Makro und per "call" versucht, leider hat es nicht funktioniert.

Sub linksMarkieren()
Range(ActiveCell.Offset(0, -7), ActiveCell.Offset(0, -7)).Select
End Sub

Kann mir jemand zeigen wie diese Funktion in das obere script integriert wird?
Vielen Dank + einen schönen Feiertag.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach VBA bestimmte Zelle markieren
10.06.2020 12:49:31
UweD
Hallo
Wenn es danach geschehen soll, dann ans Ende

Sub Markierter_Bereich_in_Textdatei2()
Dim strFileName As String
Dim objWord As Object, objDocument As Object
Application.ScreenUpdating = False
Application.EnableEvents = False
Set objWord = CreateObject(Class:="Word.Application")
Set objDocument = objWord.Documents.Add
strFileName = Selection.Offset(0, 4).Value
Selection.Offset(0, 5).Copy
objWord.Selection.Paste
objDocument.SaveAs2 "C:\Google Drive\Export\" & _
strFileName & ".doc", 0
objWord.Quit
Application.EnableEvents = True
ActiveCell.Offset(0, -7).Select
End Sub

ActiveCell.Offset(0, -7).Select reicht dabei aus
LG UweD
Anzeige
AW: Nach VBA bestimmte Zelle markieren
10.06.2020 13:27:02
David
Hallo Uwe und vielen Dank für die schnelle Antwort.
Bei "ActiveCell.Offset(0, -7).Select" eine Fehlermeldung.
Ich gehe davon aus weil ich den Befehl aus Zelle "C" starte und demnach -7 nicht möglich ist.
Mit folgender Ergänzug wird die kopierte selective Zelle demarkiert und die ursprüngliche Zelle selectiert.
Application.CutCopyMode = False
Selection.Offset(0, 0).Select

LG David
Anzeige
AW: Nach VBA bestimmte Zelle markieren
10.06.2020 14:59:38
UweD
Hallo
ggf so?

With ActiveCell
col = IIf(.Column > 8, -7, 1 - .Column)
.Offset(0, col).Select
End With

LG UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA: Bestimmte Zelle in Excel markieren


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA eine bestimmte Zelle auszuwählen oder zu markieren, kannst Du den folgenden Code verwenden. Angenommen, Du möchtest eine Zelle 7 Zellen links von der aktuellen Auswahl markieren. Hier ist eine angepasste Version des VBA-Skripts, das dies erreicht:

Sub Markierter_Bereich_in_Textdatei2()
    Dim strFileName As String
    Dim objWord As Object, objDocument As Object
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Set objWord = CreateObject(Class:="Word.Application")
    Set objDocument = objWord.Documents.Add
    strFileName = Selection.Offset(0, 4).Value
    Selection.Offset(0, 5).Copy
    objWord.Selection.Paste
    objDocument.SaveAs2 "C:\Google Drive\Export\" & _
    strFileName & ".doc", 0
    objWord.Quit
    Application.EnableEvents = True
    ' Zelle 7 Spalten links auswählen
    ActiveCell.Offset(0, -7).Select
End Sub

Vergewissere Dich, dass Du das Skript in einem Modul in der VBA-Umgebung von Excel einfügst. Wenn Du das Makro ausführst, wird die aktuelle Zelle 7 Zellen nach links ausgewählt.


Häufige Fehler und Lösungen

  1. Fehlermeldung bei ActiveCell.Offset

    • Problem: Wenn Du das Makro in einer Zelle startest, die weniger als 7 Spalten von der linken Kante entfernt ist, erhältst Du eine Fehlermeldung.
    • Lösung: Verwende eine Bedingung, um sicherzustellen, dass die Auswahl nicht außerhalb des Arbeitsblatts liegt:
      With ActiveCell
       If .Column > 7 Then
           .Offset(0, -7).Select
       Else
           MsgBox "Nicht genügend Spalten links vorhanden."
       End If
      End With
  2. Zelle bleibt aktiv nach Export

    • Problem: Die ursprüngliche Zelle bleibt aktiv und wird nicht deaktiert.
    • Lösung: Füge Application.CutCopyMode = False vor dem Selektieren der neuen Zelle hinzu.

Alternative Methoden

  • Statt VBA kannst Du auch die Bedingte Formatierung in Excel verwenden, um alle Zellen mit einem bestimmten Inhalt hervorzuheben:
    1. Wähle den Bereich aus, den Du formatieren möchtest.
    2. Gehe zu „Start“ > „Bedingte Formatierung“ > „Neue Regel“.
    3. Wähle „Zellen formatieren, die enthalten“ und gib den gewünschten Inhalt ein.

Diese Methode ist besonders nützlich, wenn Du alle Zellen mit bestimmten Inhalten markieren möchtest.


Praktische Beispiele

  • Beispiel zur Auswahl einer Zelle in einer bestimmten Zeile:

    Sub ZelleInZeileMarkieren()
    Rows(5).Cells(1, 1).Select 'Wählt die Zelle in der 5. Zeile, 1. Spalte aus
    End Sub
  • Beispiel zur Auswahl aller Zellen in einer bestimmten Spalte mit einem bestimmten Inhalt:

    Sub AlleZellenMitInhaltMarkieren()
    Dim Zelle As Range
    For Each Zelle In Range("A1:A100")
        If Zelle.Value = "DeinWert" Then
            Zelle.Interior.Color = RGB(255, 0, 0) ' Markiert die Zelle rot
        End If
    Next Zelle
    End Sub

Tipps für Profis

  • Nutze die Fehlerbehandlung in VBA, um das Skript robuster zu machen:

    On Error Resume Next ' Fehler ignorieren
  • Mit Application.GoTo kannst Du schnell zu einer bestimmten Zelle springen, ohne sie vorher auszuwählen:

    Application.GoTo Reference:=Range("A1") ' Springt zur Zelle A1

FAQ: Häufige Fragen

1. Wie kann ich alle Zellen mit einem bestimmten Inhalt markieren? Du kannst das Makro AlleZellenMitInhaltMarkieren verwenden, um alle Zellen mit dem gewünschten Inhalt in einem bestimmten Bereich zu markieren.

2. Was mache ich, wenn mein Makro nicht funktioniert? Überprüfe, ob Du das Makro im richtigen Modul eingefügt hast und ob Du die richtigen Zellreferenzen verwendest. Achte auch darauf, dass Du die Makros in einer Datei speicherst, die Makros unterstützt (z.B. *.xlsm).

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