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

Forumthread: Used Range beschränken

Used Range beschränken
24.11.2014 13:52:58
Sparrow
Hey!
Ich möchte gerne dass dieser Code die Used Range untersucht - allerdings nur bis Spalte S! Geht das irgendwie?
Sub VerbundzellenAuflösen()
Dim Zelle As Range
Dim Wert As Variant
For Each Zelle In ActiveSheet.UsedRange
If Zelle.MergeCells = True Then
With Zelle.MergeArea
Wert = .Cells(1, 1).Value
.MergeCells = False
.Value = Wert
End With
End If
Next
End Sub
Vielen Dank im Voraus
Beste Grüße
Sascha

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Used Range beschränken
24.11.2014 13:56:08
Rudi
Hallo,
For Each Zelle In ActiveSheet.UsedRange.Resize( ,19)
Gruß
Rudi

AW: Used Range beschränken
24.11.2014 13:56:10
Hajo_Zi
Hallo Sascha,
Range("S1:S" & ActiveSheet.UsedRange.row)

AW: Used Range beschränken
24.11.2014 14:01:56
Sparrow
Hey,
danke für die schnelle Antwort - funktioniert leider nicht wie es soll.
Sagen wir mal dass die Tabelle bei Zeile 500 aufhört (500 ist nicht fix)
Dann soll er von A1:S500 gehen, drückt dein Code das selbe aus?
Vg
Sascha

Anzeige
AW: Used Range beschränken
24.11.2014 14:03:49
Hajo_Zi
Hallo Sascha,
Ersetze S1 durch A1
Gruß Hajo

AW: Used Range beschränken
24.11.2014 14:05:48
Daniel
im geszeigten Code nur für Spalte S.
Von A-S dann einfach:
Range("A1:S" & ActiveSheet.UsedRange.row)
Gruß Daniel

Anzeige
AW: Used Range beschränken
24.11.2014 14:03:21
Sparrow
Hey,
danke für die schnelle Antwort - funktioniert leider nicht wie es soll.
Sagen wir mal dass die Tabelle bei Zeile 500 aufhört (500 ist nicht fix)
Dann soll er von A1:S500 gehen, drückt dein Code das selbe aus?
Vg
Sascha

AW: Used Range beschränken
24.11.2014 14:03:21
Daniel
Hi
wenn du es au bestimmte Spalten einschränken willst:
For Each Zelle In Intersect(ActiveSheet.UsedRange, Range("A:S"))
damit liessen sich auch Bereiche dazwischen aussparen.
For Each Zelle In Intersect(ActiveSheet.UsedRange, Range("A:D;G:I;Q:S"))
Gruß Daniel

Anzeige
AW: Used Range beschränken
24.11.2014 14:04:54
Sparrow
Super nice!
Wieder was gelernt, vielen Dank!
Vg
Sascha

AW: Used Range beschränken
24.11.2014 14:11:34
Rudi
Hallo,
oder so:
Sub VerbundzellenAuflösen()
Dim Zelle As Range
Dim Wert As Variant
For Each Zelle In ActiveSheet.UsedRange
If Zelle.Column 

Gruß
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Used Range in Excel VBA Beschränken


Schritt-für-Schritt-Anleitung

Um den Used Range in Excel VBA auf die Spalten A bis S zu beschränken, kannst du den folgenden Code verwenden:

Sub VerbundzellenAuflösen()
    Dim Zelle As Range
    Dim Wert As Variant
    For Each Zelle In Intersect(ActiveSheet.UsedRange, Range("A:S"))
        If Zelle.MergeCells = True Then
            With Zelle.MergeArea
                Wert = .Cells(1, 1).Value
                .MergeCells = False
                .Value = Wert
            End With
        End If
    Next
End Sub

Dieser Code untersucht nur die Zellen im ActiveSheet.UsedRange, die sich innerhalb der Spalten A bis S befinden.


Häufige Fehler und Lösungen

  1. Fehler: Code funktioniert nicht wie gewünscht

    • Lösung: Stelle sicher, dass du die richtige Range im Code verwendest. Der Code sollte Intersect(ActiveSheet.UsedRange, Range("A:S")) enthalten, um den Used Range korrekt zu beschränken.
  2. Fehler: Die Tabelle endet an einer bestimmten Zeile

    • Lösung: Verwende Range("A1:S" & ActiveSheet.UsedRange.Rows.Count), um die letzte Zeile dynamisch zu bestimmen.

Alternative Methoden

Eine Alternative zu ActiveSheet.UsedRange ist die Verwendung der .Cells-Eigenschaft:

For Each Zelle In ActiveSheet.Cells
    If Zelle.Row <= 500 And Zelle.Column <= 19 Then
        ' Deine Logik hier
    End If
Next

Diese Methode erlaubt dir, die Zeilen und Spalten direkt zu steuern, was manchmal nützlich sein kann, wenn du spezifische Anforderungen hast.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von Used Range in Excel VBA:

  • Um sicherzustellen, dass du nur mit der Used Range bis zur Spalte S arbeitest:
For Each Zelle In Intersect(ActiveSheet.UsedRange, Range("A:S"))
    ' Deine Logik hier
Next
  • Um die Werte innerhalb der Used Range zu ändern:
For Each Zelle In ActiveSheet.UsedRange
    Zelle.Value = Zelle.Value * 2  ' Alle Werte verdoppeln
Next

Tipps für Profis

  • Nutze Debug.Print um die Werte während der Schleife zu überprüfen und sicherzustellen, dass du die richtigen Zellen bearbeitest.
  • Denke daran, die Used Range nur in den notwendigen Bereichen zu verwenden, um die Performance deiner Makros in Excel zu verbessern.
  • Verwende Application.ScreenUpdating = False, um das Flackern des Bildschirms während der Ausführung von VBA-Code zu vermeiden.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen ActiveSheet.UsedRange und Sheet.UsedRange?
Der Unterschied besteht darin, dass ActiveSheet auf das aktuell aktive Arbeitsblatt verweist, während Sheet auf ein bestimmtes Arbeitsblatt verweist.

2. Wie kann ich den Used Range in einer bestimmten Zeile beschränken?
Verwende die Syntax Range("A1:S" & ActiveSheet.UsedRange.Rows.Count) um den Used Range dynamisch bis zur letzten Zeile zu beschränken.

3. Kann ich den Used Range auf mehrere nicht zusammenhängende Bereiche beschränken?
Ja, mit Intersect kannst du mehrere Bereiche kombinieren, z.B. Intersect(ActiveSheet.UsedRange, Range("A:D,G:I,Q:S")).

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