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

Forumthread: Löschen per Makro bei verbundenen Zellen

Löschen per Makro bei verbundenen Zellen
25.11.2004 08:12:40
Micha
Hallöchen, habe da folgendes Problem!
Ich möchte per Buttonklick 3 untereinanderliegende Zeilen löschen, sind aber nicht die normale Zeilen im Excelblatt, sondern nur eine bestimmte Anzahl verbundener Zellen.
So funtioniert es nur, wenn der die Zellen nicht verbunden sind!
Privat

Sub CommandButton1_Click()
Range("D30").Select
For i = 1 To 3 Step 1
ActiveCell.ClearContents
ActiveCell.Offset(, 0).Selecct
Next i
End Sub

Wie muß ich dies ändern? Muß ich noch was beachten, habe einen Blattschutz gesetzt.
Gruß Micha
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Löschen per Makro bei verbundenen Zellen
Nike
Hi,

Private Sub CommandButton1_Click()
Dim rngLoe As Range
Dim rngCell As Range
Set rngLoe = Range("D30:D32")
For Each rngCell In rngLoe
If rngCell.MergeCells Then
rngCell.UnMerge
End If
rngCell.ClearContents
End Sub

den Schutz ggf. vorher herausnehmen,
per VBA oder manuell...
Bye
Nike
Anzeige
AW: Löschen per Makro bei verbundenen Zellen
25.11.2004 08:30:08
Micha
Danke für die Hilfe, ich probiere es mal und wenns nicht funktioniert melde ich mich nochmal
Gruß Micha
AW: Löschen per Makro bei verbundenen Zellen
25.11.2004 09:01:40
Micha
Hallo Nike, es wird der Fehler beim Kompilieren For ohne Next. Was muß ich jetzt tun?
Gruß Micha
AW: Löschen per Makro bei verbundenen Zellen
Nike
Hi,
sorry, ein next vergessen:

Private Sub CommandButton1_Click()
Dim rngLoe As Range
Dim rngCell As Range
Set rngLoe = Range("D30:D32")
For Each rngCell In rngLoe
If rngCell.MergeCells Then
rngCell.UnMerge
End If
rngCell.ClearContents
Next
End Sub

Bye
Nike
Anzeige
Kannst Du nochmal schauen bitte!
25.11.2004 09:29:47
Micha
Jetzt funktionierts, super schon mal, aber ich hatte mich bestimmt etwas falscvh ausgedrückt. Jetzt werden ja die ganzen Formate auch gelöscht, ich wollte doch nur die Zellinhalte löschen, kannst Du mir nochmal hlfen bitte?
Danke LG Micha
AW: Kannst Du nochmal schauen bitte!
Nike
Hi,
dann muesstest du nach dem Clear Contents
die entsprechenden Zellen wieder mergen?

Private Sub CommandButton1_Click()
Dim rngLoe As Range
Dim rngCell As Range
Set rngLoe = Range("D30:D32")
For Each rngCell In rngLoe
If rngCell.MergeCells Then
rngCell.UnMerge
End If
rngCell.ClearContents
Range(rngCell, rngCell.Offset(0, 1)).Merge
Next
End Sub

Bye
Nike
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Löschen von Zellinhalten per Makro bei verbundenen Zellen


Schritt-für-Schritt-Anleitung

Um Zellinhalte in Excel per Makro zu löschen, während die Zellen verbunden sind, kannst du folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass die Inhalte der verbundenen Zellen gelöscht werden, ohne die Formate zu beeinträchtigen:

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

  2. Füge ein neues Modul ein über Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub CommandButton1_Click()
       Dim rngLoe As Range
       Dim rngCell As Range
       Set rngLoe = Range("D30:D32")
       For Each rngCell In rngLoe
           If rngCell.MergeCells Then
               rngCell.UnMerge
           End If
           rngCell.ClearContents
           Range(rngCell, rngCell.Offset(0, 1)).Merge
       Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.

  5. Füge einen Button hinzu, der das Makro ausführt.

Dieser Code überprüft, ob die Zellen in dem angegebenen Bereich verbunden sind, trennt sie und löscht dann die Inhalte. Anschließend werden die Zellen wieder verbunden.


Häufige Fehler und Lösungen

  • Fehler beim Kompilieren: "For ohne Next"

    • Stelle sicher, dass du die Next-Anweisung am Ende der Schleife nicht vergisst. Das kann leicht passieren, wenn du den Code bearbeitest.
  • Blattschutz verhindert das Löschen

    • Wenn der Blattschutz aktiviert ist, entferne ihn entweder manuell oder füge eine Zeile im Code hinzu, um den Schutz vorübergehend aufzuheben.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du auch die folgenden Alternativen in Betracht ziehen:

  • Manuelles Löschen der Zellinhalte

    • Wähle die verbundenen Zellen aus, klicke mit der rechten Maustaste und wähle Inhalte löschen, um nur die Inhalte zu entfernen.
  • Verwendung von Excel-Formeln

    • Wenn es nur um das Anzeigen von Werten geht, kannst du eine Formel in einer anderen Zelle verwenden, um die Werte anzuzeigen, ohne die Originalzellen zu verändern.

Praktische Beispiele

Angenommen, du hast in den Zellen D30 bis D32 verbundene Zellen, in denen Namen stehen. Der VBA-Code oben entfernt die Namen, ohne das Format der Zellen zu ändern.

Wenn du experimentieren möchtest, ändere den Bereich in Set rngLoe = Range("D30:D32") auf einen anderen Bereich, um zu sehen, wie der Code bei verschiedenen verbundenen Zellen funktioniert.


Tipps für Profis

  • Fehlerbehandlung einfügen

    • Es ist immer gut, eine Fehlerbehandlungsroutine einzufügen, um sicherzustellen, dass dein Makro auch bei unerwarteten Eingaben stabil läuft.
  • Makro optimieren

    • Überlege, ob du das Makro so anpassen kannst, dass es dynamisch auf verschiedene Bereiche reagiert, anstatt fest codierte Zelladressen zu verwenden.

FAQ: Häufige Fragen

1. Wie kann ich meinen Blattschutz im Makro aufheben? Um den Blattschutz im Makro aufzuheben, füge vor dem Löschen der Inhalte folgende Zeile hinzu:

ActiveSheet.Unprotect "dein_passwort"

2. Was passiert mit den Formaten der Zellen, wenn ich sie lösche? Wenn du die Methode mit ClearContents verwendest, bleiben die Zellformate intakt. Wenn du jedoch die Zellen unmerge und wieder zusammenfügen möchtest, kann das ursprüngliche Format verloren gehen, wenn du es nicht explizit wiederherstellst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige