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

Forumthread: Zeilen einfügen ohne Formatierung

Zeilen einfügen ohne Formatierung
Maris
Hallo Leute,
ich habe hier einen super Codeschnipsel gefudnen der mir nach jeder Zelle 6 Leerzeilen einfügt. Allerdings übernimmt er die formatierungen von der darüberliegenden Zelle und das möcht ich nicht. Es sollen keine Formatierungen übernommen werden. könnte mir jemand bei der anpassung des codes helfen bitte?
Sub insertRows()
Dim rng As Range
Dim lngRow As Long
On Error GoTo ErrExit
Application.ScreenUpdating = False
Set rng = Range("E4:E278")
For lngRow = rng.Rows.Count - 1 To rng.Row - 1 Step -1
rng.Rows(lngRow).Resize(6, rng.Columns.Count).Insert xlDown
Next
ErrExit:
Application.ScreenUpdating = True
Set rng = Nothing
End Sub

Danke schon mal!
Gruß,
Maris
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: evtl. hilft das ...
18.01.2011 14:33:15
fcs
Hallo Maris,
mit folgender Anpassung werden die Formate in den eingefügten Zellen gelöscht.
Gruß
Franz

Sub insertRows()
Dim rng As Range
Dim lngRow As Long
On Error GoTo ErrExit
Application.ScreenUpdating = False
Set rng = Range("E4:E278")
For lngRow = rng.Rows.Count - 1 To rng.Row - 1 Step -1
rng.Rows(lngRow).Resize(6, rng.Columns.Count).Insert xlDown
rng.Rows(lngRow).Resize(6, rng.Columns.Count).ClearFormats
Next
ErrExit:
Application.ScreenUpdating = True
Set rng = Nothing
End Sub

Anzeige
AW: evtl. hilft das ...
18.01.2011 15:10:15
Maris
Danke sehr! Klappt :-)
OT Nachfrage zu Insert xlDown
18.01.2011 15:28:38
Reinhard
Hallo Franz,
das wollte ich schon sehr lange mal fragen.
Ich benutze Insert grundsätzlich ohne xldown.
So wie auch hier bei meinem Lösungsversuch. Der scheint zu klappen bei einm Test.
Hatte ich da bislang nur Glück bei Weglassung des Parameters, daß da die Götter immer mit mir waren und die Standardeinstellung bei Welassung traf immer genau das was ich wollte?
Shift Variant optional. Gibt an, wie die Zellen verschoben werden. Kann eine der folgenden
XlInsertShiftDirection-Konstanten sein: xlShiftToRight oder xlShiftDown. Wird das Argument weggelassen,
wird die Richtung anhand der Form des Bereichs festgelegt
Andersrum gefragt, gehe ich Recht in der Annahme, wenn ich
Rows(...)....Insert
habe, so erkennt Excel daß es sich um Zeilen handelt, bei
Columns(...)....Insert
erkennt Excel daß es sich um Spalten handelt.
Birgt dieses Weglassen so gesehen also irgendwelche "Gefahren" die ich so nicht sehe?
Danke ^ Gruß
Reinhard
Anzeige
AW: OT Nachfrage zu Insert xlDown
18.01.2011 16:44:47
fcs
Hallo Reinhard,
bei der Auswahl kompletter Spalten/Zeilen und anschliessendem Einfügen von Zellen ist der Parameter nicht erforderlich, da gibt es für Excel nur die Möglichkeit verschieben nach rechts/unten.
Bei der Auswahl eines Zellbereichs im Tabellenblatt gibt es folgende Tendenzen:
- Hat der Bereich mehr Zeilen als Spalten, dann verschieben nach rechts.
- Hat der Bereich mehr Spalten als Zeilen, dann verschieben nach unten.
- Beinhaltet die Auswahl alle Spalten eines benutzten Datenbereichs dann verschieben nach unten.
- Beinhaltet die Auswahl alle Zeilen eines benutzten Datenbereichs dann verschieben nach rechts.
Du kannst ja mal mit der manuellen Funktion "Einfügen Zellen" rumprobieren und beobachten, welche Operation Excel vorschlägt.
Unter VBA bist du mit Angabe des optionalen Parameters auf jedenfall auf der sicheren Seite.
Gruß
Franz
Anzeige
Aha, danke dir :-) o.w.T.
19.01.2011 11:40:18
Reinhard


AW: Zeilen einfügen ohne Formatierung
18.01.2011 14:31:57
Reinhard
Hallo Marlis,
Sub insertRows()
Dim lngRow As Long
Application.ScreenUpdating = False
For lngRow = 279 To 5 Step -1
Rows(lngRow).Resize(6, Columns.Count).Insert
Rows(lngRow).Resize(6, Columns.Count).Clear
Next lngRow
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel einfügen ohne Formatierung


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel ohne Formatierung einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code fügt sechs Leerzeilen nach jeder Zelle in einem bestimmten Bereich ein und entfernt die Formatierungen:

Sub insertRows()
    Dim rng As Range
    Dim lngRow As Long
    On Error GoTo ErrExit
    Application.ScreenUpdating = False
    Set rng = Range("E4:E278")
    For lngRow = rng.Rows.Count - 1 To rng.Row - 1 Step -1
        rng.Rows(lngRow).Resize(6, rng.Columns.Count).Insert xlDown
        rng.Rows(lngRow).Resize(6, rng.Columns.Count).ClearFormats
    Next
ErrExit:
    Application.ScreenUpdating = True
    Set rng = Nothing
End Sub

Mit diesem VBA-Skript kannst du effizient und schnell mehrere Zeilen in Excel einfügen, ohne dass Formatierungen von bestehenden Zellen übernommen werden.


Häufige Fehler und Lösungen

  • Problem: Die eingefügten Zeilen behalten die Formatierungen der vorherigen Zeilen.

    • Lösung: Stelle sicher, dass du die ClearFormats-Methode in deinem VBA-Code verwendest, um alle Formatierungen zu entfernen.
  • Problem: Der Code läuft nicht oder gibt einen Fehler aus.

    • Lösung: Überprüfe, ob der Bereich korrekt definiert ist (z.B. Range("E4:E278")), und dass du die richtigen Berechtigungen hast, um Makros auszuführen.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die Excel-Funktion „Einfügen“ verwenden und anschließend die Formatierungen manuell löschen:

  1. Wähle die Zeilen aus, in die du neue Zeilen einfügen möchtest.
  2. Rechtsklicke und wähle „Einfügen“.
  3. Nachdem du die Zeilen eingefügt hast, wähle die neuen Zeilen aus und gehe zu „Start“ > „Löschen“ > „Formate löschen“.

Diese Methode ist jedoch weniger effizient, wenn du viele Zeilen in Excel einfügen möchtest.


Praktische Beispiele

Wenn du beispielsweise 100 Zeilen in Excel einfügen möchtest, kannst du den oben genannten VBA-Code anpassen:

Sub insert100Rows()
    Dim lngRow As Long
    Application.ScreenUpdating = False
    For lngRow = 279 To 5 Step -1
        Rows(lngRow).Resize(100, Columns.Count).Insert
        Rows(lngRow).Resize(100, Columns.Count).Clear
    Next lngRow
    Application.ScreenUpdating = True
End Sub

Dieser Code fügt 100 leere Zeilen ein und löscht die Formatierungen.


Tipps für Profis

  • Nutze die Application.ScreenUpdating = False-Zeile, um die Performance deines Codes zu verbessern, insbesondere wenn du viele Zeilen einfügst.
  • Wenn du oft ohne Formatierungen einfügen musst, kannst du dir eine Excel-Vorlage erstellen, die bereits die benötigten Makros enthält.
  • Experimentiere mit dem xlDown-Parameter, wenn du die Richtung des Einfügens anpassen möchtest.

FAQ: Häufige Fragen

1. Wie kann ich in Excel ohne Formatierung einfügen? Du kannst VBA verwenden, um das Einfügen ohne Formatierung zu automatisieren, oder die Funktion „Formate löschen“ nach dem Einfügen nutzen.

2. Funktioniert das auch in Excel Online? VBA ist nicht in Excel Online verfügbar. Du musst in diesem Fall die manuelle Methode verwenden.

3. Wie viele Zeilen kann ich auf einmal einfügen? Mit VBA kannst du eine beliebige Anzahl von Zeilen einfügen, solange du die Schleife entsprechend anpasst. Beispielsweise kannst du bis zu 100 oder mehr Zeilen in einem Durchgang einfügen.

4. Gibt es eine Möglichkeit, Excel Spalten ohne Formatierungsverlust einzufügen? Ja, du kannst einen ähnlichen Code verwenden, um Spalten einzufügen und die Formatierungen zu löschen, indem du den Columns-Parameter anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige