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

Forumthread: Löschen Inhalt Tabellenblatt

Löschen Inhalt Tabellenblatt
Georg
Hallo zusammen,
ich habe 2 Probleme.
1. Ich möchte den kompletten Inhalt des Tabellenblattes 'Excel-Dokument' löschen, wenn sich in den Feldern
B4 und B5 des Tabellenblattes 'Eingabe' kein Inhalt befindet.
2.Ich möchte vom Tabellenblatt 'Ecxel-Dokument' ein Word-Dokument erstellen. Habe aus dem Forum
eine Möglichkeit gefunden. Dabei wird aber ein bestehendes Word Dokument benutzt (z.B. Angebot.doc)
welches immer vorhanden sein muss. Im Worddokument kommt zwar alles richtig an, aber leider mit
allen Zellen wie in Excel. Gibt es keine Möglichkeit das Tabellenblatt komplett nur als Text in ein Worddokument zu übernehmen?
Vielen Dank für Eure Hilfe.
Gruss

Die Datei https://www.herber.de/bbs/user/76654.xls wurde aus Datenschutzgründen gelöscht

Georg
Anzeige
AW: Löschen Inhalt Tabellenblatt
17.09.2011 23:06:07
Josef

Hallo Georg,
wenn du die Tabelle etwas umgestaltest dann bekommt man das auch so hin. Man braucht auch keine Vorlage, man kann in Word einfach ein leeres Dokument erzeugen.
Zum löschen des Zellbereiches:

If Range("B4") & Range("B5") = "" Then
Sheets("Excel-Dokument").UsedRange.Clearcontents
End If
https://www.herber.de/bbs/user/76656.xls

« Gruß Sepp »

Anzeige
AW: Löschen Inhalt Tabellenblatt
17.09.2011 23:19:57
Georg
Hallo Sepp,
vielen Dank für Deine Antwort.
Das Löschen funktioniert wie gewünscht.
Das Erzeugen eines Word-Dokumentes ohne Zwischenablage passt auch.
Die Frage hätte ich noch, ob das Zellenraster von Excel immer nach Word
rüberkommt, oder ob dieses Raster auch ausgeblendet werden kann.
Gruß
Georg
Anzeige
AW: Löschen Inhalt Tabellenblatt
17.09.2011 23:30:19
Josef

Hallo Georg,
es wird zwar eine Tabelle in Word eingefügt, Raster ist bei mir aber keines sichtbar.

« Gruß Sepp »

Anzeige
AW: Löschen Inhalt Tabellenblatt
17.09.2011 23:37:09
Georg
Hallo Sepp,
mit Raster meinte ich auch die Umrisse des Tabellenblattes, welches schwach sichtbar ist. Es wird somit wohl immer eine Tabelle übergeben, oder kann auch nur der Textinhalt des Blattes nicht in Tabellenform übergeben werden?
Gruß
Georg
AW: Löschen Inhalt Tabellenblatt
17.09.2011 23:43:44
Josef

Hallo Georg,
ich hab dich schon verstanden, weiß allerdings nicht, warum bei dir die Tabellenumrisse sichtbar sind.
Versuch mal folgenden Code, ich bin aber nicht sicher, ob dieser unter deiner Office-Version läuft.

Sub versuch()
  Dim appWord As Object
  Dim doc As Object
  
  Dim sFile As String
  
  sFile = Sheets("Eingabe").Range("B7").Value & Sheets("Eingabe").Range("B8").Value
  If sFile = "" Then
    Beep
    MsgBox "Kein Vorname und Nachname eingegeben !!"
    Exit Sub
  End If
  
  Set appWord = CreateObject("Word.Application")
  Set doc = appWord.documents.Add
  appWord.Visible = True
  
  
  With ThisWorkbook.Sheets("Excel-Dokument")
    .Range(.PageSetup.PrintArea).Copy
  End With
  
  doc.Paragraphs(1).Range.PasteAndFormat (22)
  
  Application.CutCopyMode = False
  
  doc.SaveAs "C:\Excel\Zeugnis_" & Sheets("Eingabe").Range("B7").Value & "_" & Sheets("Eingabe").Range("B5").Value & ".doc"
  
  doc.Close False '*** das Dokument schließen ***
  appWord.Quit '*** Word beenden ***
  
  '*** Aufräumen ***
  Set appWord = Nothing
  Set doc = Nothing
  
  
End Sub



« Gruß Sepp »

Anzeige
AW: Löschen Inhalt Tabellenblatt
17.09.2011 23:56:13
Georg
Hallo Sepp,
Du hast Recht. Bleibt stecken mit Laufzeitfehler 438 'Objekt unterstützt die Methode nicht ....'
Und zwar bei dem Befehl ' doc.Paragraphs(1).Range.PasteAndFormat (22)'
Gibt es noch eine andere Lösung?
Gruß
Georg
AW: Löschen Inhalt Tabellenblatt
18.09.2011 10:23:46
Georg
Hallo Sepp,
im Anhang das erzeugte Word-Dokument auf meinem Rechner.
Vielleicht gibt es ja wie in meiner letzten Nachricht erwähnte eine andere Lösung.
Für Info wäre ich dankbar.
Gruß
Georg
https://www.herber.de/bbs/user/76660.doc
Anzeige
AW: Löschen Inhalt Tabellenblatt
18.09.2011 10:27:56
Josef

Hallo Georg,
bei mir sieht das Dokument OK aus. Liegt wahrscheinlich an der Office-Version.

« Gruß Sepp »

Anzeige
AW: Löschen Inhalt Tabellenblatt
18.09.2011 10:30:09
Georg
Hallo Sepp,
dann wird es wohl so sein. Vielen Dank für Deine Bemühungen.
Gruß
Georg
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Inhalt von Tabellenblättern in Excel mit VBA löschen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, dessen Inhalt du löschen möchtest.

  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  4. Kopiere den folgenden Code in das Modul:

    Sub InhaltTabelleLoeschen()
       If Range("B4").Value = "" And Range("B5").Value = "" Then
           Sheets("Excel-Dokument").UsedRange.ClearContents
       End If
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus: Drücke Alt + F8, wähle "InhaltTabelleLoeschen" und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler 438 – Objekt unterstützt diese Methode nicht:

    • Dieser Fehler kann auftreten, wenn du versuchst, eine Methode auf ein nicht unterstütztes Objekt anzuwenden. Überprüfe, ob die benannten Tabellenblätter und Bereiche existieren.
  • Das Makro funktioniert nicht:

    • Stelle sicher, dass das Makro aktiviert ist und du die Sicherheitsoptionen in Excel entsprechend eingestellt hast.

Alternative Methoden

Wenn du den Inhalt eines Tabellenblattes leeren möchtest, kannst du auch mit der Clear-Methode arbeiten:

Sheets("Excel-Dokument").Cells.Clear

Diese Methode entfernt sowohl Inhalte als auch Formatierungen aus dem gesamten Tabellenblatt.


Praktische Beispiele

Hier ist ein Beispiel, wie du ein leeres Word-Dokument generieren kannst, ohne das Zellenraster von Excel zu übertragen:

Sub WordDokumentErstellen()
    Dim appWord As Object
    Dim doc As Object
    Set appWord = CreateObject("Word.Application")
    Set doc = appWord.Documents.Add
    appWord.Visible = True
    doc.Content.Text = Sheets("Excel-Dokument").Range("A1").Value ' Nur Text, ohne Raster
    doc.SaveAs "C:\Pfad\zum\Speichern\Dokument.doc"
    doc.Close
    appWord.Quit
End Sub

Tipps für Profis

  • Benutzerdefinierte Fehlermeldungen: Füge eigene Meldungen hinzu, um die Benutzerführung zu verbessern, z.B. wenn die Zellen B4 und B5 leer sind.

  • Verwende Schleifen: Wenn du mehrere Tabellenblätter oder Bereiche leeren möchtest, kannst du Schleifen verwenden, um den Code zu optimieren.

  • Teste den Code: Nutze die Debugging-Funktionen im VBA-Editor, um sicherzustellen, dass dein Code wie gewünscht funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Inhalt eines Tabellenblattes immer gelöscht wird? Um dies zu gewährleisten, kannst du das Makro an ein Ereignis (z.B. beim Öffnen der Datei) binden.

2. Gibt es eine Möglichkeit, nur bestimmte Zellen zu leeren? Ja, du kannst spezifische Zellreferenzen verwenden, um nur diese Zellen zu leeren, z.B. Range("A1:B10").ClearContents.

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