Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Löschen eines Bereiches

Betrifft: Löschen eines Bereiches von: Thomas3
Geschrieben am: 03.07.2008 08:15:37

Guten Morgen,
manchmal stehe ich dem Guten einfach im Wege und denke mir, Thomas, das soll nicht sein. Und trotzdem fuchst mich das tierisch, warum das nicht geht...

Aus einer Tabelle heraus soll in der gleichen Datei in einer anderen Tabelle der Bereich ab der Zeile 2 bis zur letzten beschriebenen Zeile gelöscht werden. Kein Problem...

lzeile = Thisworkbock.Sheet("Liste").cells(Rows.Count, 16).End(xlUp).Row
ThisWorkbook.Sheet("Liste").range(Cells(2,1),Cells(lzeile,16)).ClearContens

Wunderbar. Passt.
Nur, wenn in dem Bereich nichts steht, dann läuft der Befehl ins Leere und ich bekomme eine Fehlermeldung. Will ich nicht. Also schreibe ich :

lzeile = Thisworkbock.Sheet.("Liste").cells(Rows.Count, 16).End(xlUp).Row
If lzeile = 1 then
MsgBox "Da steht nix mehr"
Exit sub
else : ThisWorkbook.Sheet("Liste"). Range(Cells(2,1),Cells(lzeile,16)).ClearContens
End if

Und - Hurra - Ich bekomme eine Fehlermeldung bei dem ClearContens.

Kann mir einer sagen warum ?
Liebe Grüße
Thomas

  

Betrifft: AW: Löschen eines Bereiches von: UweD
Geschrieben am: 03.07.2008 08:31:01

Hallo


sind einige schreibfehler drin....


so wäre es richtig


lzeile = ThisWorkbook.Sheets("Liste").Cells(Rows.Count, 16).End(xlUp).Row
If lzeile = 1 Then
MsgBox "Da steht nix mehr"
Exit Sub
Else: ThisWorkbook.Sheets("Liste").Range(Cells(2, 1), Cells(lzeile, 16)).ClearContents
End If


Gruß UweD


  

Betrifft: AW: Löschen eines Bereiches von: Thomas3
Geschrieben am: 03.07.2008 20:48:28

Hallo UweD,
ja sorry....
War ein wenig früh heute.. Klar, da sind Schreibfehler drinnen, weil ich das aus dem Kopf geschrieben und nicht mit Copy / Paste aus dem Makro hergenommen habe.
Das löst nicht mein eigentliches Problem.
Wie gesagt. Schreibe ich das ClearContens ohne die IF -Schleife, dann läuft das durch. Mache ich die If-Schleife rein, startet das Makro schon garnicht, sondern hängt sich an der ClearContens-Zeile auf. Fehler wäre 1004.
Vielleicht noch eine Idee ?
Liebe Grüße und Danke
Thomas


  

Betrifft: AW: Löschen eines Bereiches von: UweD
Geschrieben am: 04.07.2008 08:27:35

Hallo nochmal


Also. Der abgedruckte Code von mir funktioniert... Hast du den mal mit copy/paste probiert??


=====> Contents

Gruß UweD


  

Betrifft: AW: Löschen eines Bereiches von: thomas3
Geschrieben am: 05.07.2008 07:11:53

hallo UweD,
auch mit Copy/Paste mag er nicht. Kommt immer Fehler 1004.
Dann muß ich eine andere Lösung finden.
Lieben Dank
Thomas


  

Betrifft: AW: Löschen eines Bereiches von: Reinhard
Geschrieben am: 05.07.2008 11:16:22

Hi Thomas,

kopier mal deinen Komplettcode der Sub hier rein. Hat das Blatt Blattschutz?

Gruß
Reinhard


  

Betrifft: AW: Löschen eines Bereiches von: Thomas3
Geschrieben am: 06.07.2008 09:07:56

Hallo Reinhard,
anbei der Code. Er ist nicht sehr groß... Oben das, was nicht geht, unten dann das, was ich umgeschrieben habe.
Datei ist nicht schreibgeschützt
Liebe Grüße
Thomas


Version 1
Info : In der Zeile 11 hängt er sich auf

Sub daten_Firmenübersicht_löschen()
Dim lzeile As Integer

Application.ScreenUpdating = False
lzeileTW = ThisWorkbook.Sheets("Firmenübersicht").Cells(Rows.Count, 1).End(xlUp).Row
If lzeile = 1 Then
    MsgBox "In der Tabelle 'Firmenübersicht' sind keine Daten mehr", _
                    vbInformation, "Kleiner Hinweis"
Else: ThisWorkbook.Sheets("Firmenübersicht").Range(Cells(2, 1), Cells(lzeile, 16)). _
ClearContents
End If
Application.ScreenUpdating = True
End Sub




Version 2

Sub daten_Firmenübersicht_löschen()
Dim lzeile As Integer

Application.ScreenUpdating = False
Sheets("Firmenübersicht").Activate
lzeile = Cells(Rows.Count, 1).End(xlUp).Row
If lzeile = 1 Then
    MsgBox "In der Tabelle 'Firmenübersicht' sind keine Daten mehr", _
                    vbInformation, "Kleiner Hinweis"
Else: Range(Cells(2, 1), Cells(lzeile, 16)).ClearContents
End If
Sheets("Schaltflächen").Activate
Application.ScreenUpdating = True
End Sub




  

Betrifft: AW: Löschen eines Bereiches von: Reinhard
Geschrieben am: 06.07.2008 12:32:32

Hi Thomas,

schreib mal
Option Explicit
zuoberst in das Modul, dann lass nochmal Code 1 laufen, war es das?

Gruß
Reinhard


  

Betrifft: AW: Löschen eines Bereiches von: thomas3
Geschrieben am: 06.07.2008 17:31:22

Hallo Reinhard,
das ist nett, dass du dir am Sonntag die Mühe machst....
Aber leider war es das auch nicht.....
Macht ja nix. Der zweite Weg tut es ja auch.
Liebe Grüße und noch einen schönen Sonntag
Thomas


 

Beiträge aus den Excel-Beispielen zum Thema "Löschen eines Bereiches"