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

mehrere Zellen gleichzeitig markieren

Forumthread: mehrere Zellen gleichzeitig markieren

mehrere Zellen gleichzeitig markieren
10.01.2003 07:57:36
H.- Udo
Hallo,

Wie kann ich mit VBA mehere Zellen gleichzeitig (alle grauen) in einer Spalte (B) markieren ?

(Diese Zellinhalte sollen in eine andere Spalte kopiert werden, allerdings ohne die zwischenliegenden "leeren" (weißen) Zellen)

Vielen Dank im Voraus

H.- Udo

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mein bisheriger Code (Versuch)
10.01.2003 08:08:12
H.- Udo

Sub test0()
For i = 1 To 120
For k = 4 To 8
If (Worksheets("Werte").Range("B" & i).Interior.ColorIndex = 40) = True Then _
Worksheets("Werte").Range("K" & k).Value = Worksheets("Werte").Range("B" & i).Value
Next k
Next i
End Sub

Leider kopiert dieser Code die letzte gefundene Zelle 5 mal, und nicht jede gefundene Zelle einzeln.

Sub test3()
Dim farbe As Range
Range("B:B").Activate
For Each farbe In Selection.Cells
If farbe.Interior.ColorIndex = 40 Then farbe.Select
Next
End Sub


Dieser Code markiert ebenfalls nur den letzten gefundenen Eintrag.



Anzeige
Re: mehrere Zellen gleichzeitig markieren
10.01.2003 08:21:09
Steffen D
Hi Udo,

schau dir mal diese Zeile an, und teste sie:

Range("B1,B5,B10,B15,B25,B26,B32").Select

nun musst du jetzt einfach zuerst diesen Text (B1,B5,B10...) in deiner Schleife generieren und dann am ende das ganze markieren

Gruß
Steffen D

Re: mehrere Zellen gleichzeitig markieren
10.01.2003 08:32:41
H.- Udo
Hi Steffen,

Das ist ja mein Problem. Ich krieg es nicht gebacken, mehrere Zeilen gleichzeitig zu markieren. Zumal die zu markierenden Zellen keine feste Position haben.


Gruß
H.- Udo

Anzeige
Re: mein bisheriger Code (Versuch)
10.01.2003 09:29:18
Hajo_Zi
Hallo H.-Udo


Option Explicit

Sub Udo()
Dim LoI As Long
Dim LoLetzte As Long
' letzte Zeile in Spalte B feststellen
If [B65536] = "" Then
LoLetzte = [B65536].End(xlUp).Row
Else
LoLetzte = 65536
End If
With Worksheets("Werte")
For LoI = 1 To LoLetzte
If .Range("B" & LoI).Interior.ColorIndex = 40 Then _
.Range("K" & [K65536].End(xlUp).Row + 1).Value = .Range("B" & LoI).Value
Next LoI
End With
End Sub

Code eingefügt mit: Excel Code Jeanie

Code Jeanie
Frage
Das Umsetzen nach Html klappt perfekt, auch die Ansicht in den Foren ist gegeben. Bei manchen Foren kann man aber anscheinend nicht den dargestellten Code nach VBA rückkopieren. Warum?
Antwort
Dies liegt nicht an der Code Jeanie !!! Manche Foren interpretieren anscheinend < pre > < /pre > Tags nicht richtig und erzeugen am Zeilenende einen weichen Zeilenumbruch anstatt eines harten Zeilenumbruches. Dies führt dazu, dass im VBA-Editor die Zeilen hintereinander geschrieben werden. Zum Rückkopieren in solchen Fällen: Fügen Sie den kopierten Code aus dem Forum nach Word ein, kopieren Sie ihn dort wieder und fügen Sie ihn dann im VBA - Editor ein

Gruß Hajo

Anzeige
Re: mehrere Zellen gleichzeitig markieren
10.01.2003 09:37:58
Steffen D
Hi,

schau dir mal dieses Beispiel an:

Gruß
Steffen D

Danke
10.01.2003 10:07:14
H.- Udo
Halo Hajo,

verstehen tue ich es nicht, aber funktionieren tut es.

Danke

Dank auch an Steffen für seine Hilfe.

Gruß
H.- Udo (Udo)

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Mehrere Zellen gleichzeitig markieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um mehrere Zellen gleichzeitig in Excel zu markieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code markiert alle grauen Zellen in Spalte B und kopiert deren Inhalte in die nächste freie Zelle in Spalte K, ohne die leeren Zellen zu berücksichtigen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein:

    Sub MarkiereUndKopiereGraueZellen()
        Dim LoI As Long
        Dim LoLetzte As Long
    
        ' Letzte Zeile in Spalte B feststellen
        If [B65536] = "" Then
            LoLetzte = [B65536].End(xlUp).Row
        Else
            LoLetzte = 65536
        End If
    
        With Worksheets("Werte")
            For LoI = 1 To LoLetzte
                If .Range("B" & LoI).Interior.ColorIndex = 40 Then
                    .Range("K" & [K65536].End(xlUp).Row + 1).Value = .Range("B" & LoI).Value
                End If
            Next LoI
        End With
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus.


Häufige Fehler und Lösungen

  • Fehler: Der Code kopiert die letzte gefundene Zelle mehrfach.

    • Lösung: Stelle sicher, dass Du die richtige Schleife verwendest, um die Zellen zu durchlaufen und die Inhalte nur einmal kopierst.
  • Fehler: Es werden keine Zellen markiert.

    • Lösung: Überprüfe, ob die Zellen tatsächlich die richtige Hintergrundfarbe (ColorIndex = 40) haben.
  • Fehler: Leere Zellen werden ebenfalls kopiert.

    • Lösung: Füge eine Bedingung hinzu, die leere Zellen ignoriert.

Alternative Methoden

Du kannst auch die Range-Methode verwenden, um mehrere Zellen auszuwählen. Hier ist ein Beispiel:

Sub AuswahlMehrererZellen()
    Range("B1,B5,B10,B15").Select
End Sub

Für nicht zusammenhängende Zellen kannst Du die Union-Methode verwenden:

Sub UnionVonZellen()
    Dim rng As Range
    Set rng = Union(Range("B1"), Range("B5"), Range("B10"))
    rng.Select
End Sub

Praktische Beispiele

  1. Markieren und Kopieren mehrerer nicht zusammenhängender Zellen:

    • Nutze die Union-Methode, um spezifische Zellen auszuwählen und deren Werte zu kopieren.
  2. Markieren aller Zellen in einer bestimmten Reihe:

    • Beispiel:
    Sub MarkiereReihe()
        Rows("1:1").Select
    End Sub
  3. Excel markiert mehrere Zeilen gleichzeitig:

    • Um mehrere Zeilen gleichzeitig zu markieren, kannst Du folgendes verwenden:
    Sub MarkiereMehrereZeilen()
        Rows("2:5").Select
    End Sub

Tipps für Profis

  • Nutze die Cells-Methode, um dynamisch auf Zellen zuzugreifen.
  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung des Makros zu stoppen und die Leistung zu verbessern.
  • Teste den Code immer in einer Kopie Deiner Excel-Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellen auswählen, die nicht zusammenhängen? Du kannst die Union-Methode in VBA verwenden, um nicht zusammenhängende Zellen auszuwählen.

2. Kann ich mehrere Zeilen gleichzeitig markieren? Ja, Du kannst die Rows-Methode verwenden, um mehrere Zeilen gleichzeitig zu markieren, wie im Beispiel oben gezeigt.

3. Was ist der Unterschied zwischen Select und Activate? Select wählt die Zellen aus, während Activate das Arbeitsblatt oder die Zelle in den Vordergrund bringt.

4. Ist VBA in allen Excel-Versionen verfügbar? Ja, VBA ist in allen gängigen Excel-Versionen verfügbar, jedoch können einige Funktionen in neueren Versionen verbessert oder verändert worden sein.

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