Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1092to1096
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excelbug beim löschen von Blättern?

Excelbug beim löschen von Blättern?
Blättern?
Hallo!
Ich habe ein Problem, dass mich seit Tagen fast in den Wahnsinn treibt und hoffe, dass mir hier jemand einen Tipp geben kann der mich vor dem Irrenhaus bewahrt.
In einer Arbeitsmappe lege ich Blätter mit den Namen TypA…TypJ an.
Jedes Blatt steht für einen Typen.
Die Anzahl der Typen variiert.
D.h. habe ich bswp. 3 Typen, dann hat die Mappe entsprechend die Blätter TypA, TypB, TypC.
Das Anlegen der Typen sowie das spätere Hinzufügen von Typen funktioniert.
Nun kann es sein, dass ich im Laufe der Bearbeitung in der Mappe die Anzahl der Typen reduzieren will. Dazu sollen die „überflüssigen“ Blätter gelöscht werden.
Beispiel:
Es gibt die Blätter TypA, TypB, TypC, TypD. Ich hätte nun gerne aber nur 2 Typen, dann sollen die Blätter TypC und TypD gelöscht werden. Ausgelöst wird dies per Knopfdruck.
Eigentlich ja eine ganz banale Sache.
Ich habe schon alle möglichen Varianten ausprobiert (auch unterschiedliche Schleifen…bspw. for each, schleifen vorwärts und rückwärts.). Jedes mal das gleiche Problem. Das Makro läuft bis zum letzten Blatt welches gelöscht wird problemlos durch.
Nach dem Löschen des letzten Blattes hängt sich Excel komplett auf ohne in die Fehlerbehandlung zu springen (Microsoft Office Excel hat ein Problem festgestellt und muss beendet werden).
Was mache ich falsch?
Wenn es sich um einen Excelbug handelt – was kann ich dagegen tun?
Wäre super, wenn mir jemand einen Tipp geben könnte!
Vielen Dank!
Mario
Hier meine aktuelle Codevariante. Da ich schon diverse Lösungen ausprobiert habe wirkt der Code zugegebenermaßen etwas zu kompliziert und teilweise doppelt.
Anmerkung:
Es gibt keinen Blattschutz.

Public Sub Blaetter_loeschen()
On Error GoTo Fehlerbehandlung
' Application.ScreenUpdating = True
Dim Wert_Soll As Integer
Dim Wert_Ist As Integer
Dim Anzahl As Integer
Dim Zahl_Blatt_IST As Integer
Dim Zahl_Blatt_A As Integer
Wert_Soll = Worksheets("Uebersicht").Range("D13").Value 'Gewünschter Wert
Anzahl = ActiveWorkbook.Sheets.Count 'Anzahl aller Blätter der Mappe
Dim Blattname As String
For i = Anzahl To 1 Step -1 'To Anzahl
Blattname = ActiveWorkbook.Worksheets(i).Name
Select Case Blattname
Case Is = "TypA", "TypB", "TypC", "TypD", "TypE", "TypF", "TypG", "TypH", "TypI", "TypJ"
'ASCII für A == 65, B==66 usw
'Anmerkung für Herberforum: selbst wenn ich für Zahl_Blatt_IST und Zahl_Blatt_A feste Werte  _
schreibe, das gleich Problem.
Zahl_Blatt_IST = CInt(Asc(Right(Blattname, 1))) 'Assii sicherheitshalber nochmal in  _
Integer umwandeln
Zahl_Blatt_A = CInt(Asc("A") + Wert_Soll - 1)
If Zahl_Blatt_IST > Zahl_Blatt_A Then
'Application.DisplayAlerts = False
Worksheets(Blattname).Select 'Delete
MsgBox "test"
Worksheets(Blattname).Delete
'Application.DisplayAlerts = True
End If
Case Else
'nix
End Select
Next i
Exit Sub
Fehlerbehandlung:
Dim F_prozedur As String
F_prozedur = "Blaetter_loeschen"
MsgBox Erl
Select Case Err.Number
Case Is = 9
MsgBox "fehler 9"
Resume Next
Case Else
Call Fehlerbehandlung(F_prozedur, Err.Number, Err.Description, Err.HelpFile)
End Select
End Sub

AW: Excelbug beim löschen von Blättern?
10.08.2009 13:00:18
Blättern?
Hallo Mario
Habe den Code eben getestet, zwar ältere Excel-Version, aber funktioniert.
Einzige Änderung, Variable i deklariert und Call Fehlerbehandlung auskommentiert (da keine entsprechende Prozedur vorhanden).
Schlage vor, du baust den Code mal in eine neue leere Mappe ein und testest so. Von einem generellen Bug beim Blätterlöschen habe ich nichts gehört. Insofern vermute ich schon eher, dass die Instabilität durch etwas anderes in der Mappe ausgelöst wird.
cu
Chris
AW: Excelbug beim löschen von Blättern?
10.08.2009 13:43:51
Blättern?
Hallo Chris,
danke für deine Antwort.
Was fällt dir spontan ein, was diese "Instabilität" auslösen könnte?
Ich kann umöglich die Mappe neu aufbauen. Werde das aber trotzdem mal testen mit einer neuen Mappe.
Gruß
Mario
Anzeige
AW: Excelbug beim löschen von Blättern?
11.08.2009 09:28:28
Blättern?
Hallo Mario
Wäre gut wenn du das Problem erstmal weiter einschränken könntest. Liegt es am Code (mit leerer Mappe testen), liegt es an der Mappe (Mappe auf anderem PC testen) oder liegt es an Excel (siehe Hinweis Rudi).
cu
Chris
Kein Problem feststellbar
10.08.2009 13:03:28
NoNet
Hallo Mario,
Dein Code läuft bei mir einwandfrei, auch wenn mehr oder weniger als die geforderten Blätter enthalten sind und auch bei unsortierter Blattliste !
Teste das Makro doch mal im Einzelschrittmodus (Taste F8) um zu sehen, WO der Code evtl. hängenbleibt !
Gruß, NoNet
AW: Kein Problem feststellbar
10.08.2009 13:32:40
Mario
Hallo NoNet!
Vielen Dank für die schnelle Antwort.
Im Einzelschrittmodus sagt mir der VBA-Editor, dass der Code im Haltemodus nicht weiter ausgeführt werden kann. Wenn man fortsetzen drückt hängt sich das Programm auf. Drückt man beenden, kommt es zu keinem Fehler - aber die Blätter sind gelöscht. Also wäre das Ziel an der Stelle erreicht.
Vielleicht noch ne Idee?
Gruß
Mario
Anzeige
AW: Excelbug beim löschen von Blättern?
10.08.2009 13:07:51
Blättern?
Hallo,
das
würde ich 'dreckiger' programmieren.
Wert_Soll = Worksheets("Uebersicht").Range("D13").Value 'Gewünschter Wert
Application.DisplayAlerts = False
On Error Resume Next
For i = Wert_Soll + 1 To 26
Sheets("Typ" & Chr(64 + i)).Delete
Next i
Application.DisplayAlerts = True
On Error GoTo 0
Gruß
Rudi
AW: Excelbug beim löschen von Blättern?
10.08.2009 13:40:12
Blättern?
Hallo Rudi,
Danke für deine Antwort.
Dein Code führt zum selben Problem.
Irgend eine Idee was das Problem auslösen könnte.
Selbst wenn ich alles abklemme (enableevents = false, caculation = xlmanual...) tritt das problem auf.
Gruß
Mario
Anzeige
AW: Excelbug beim löschen von Blättern?
10.08.2009 15:29:02
Blättern?
Hallo Mario,
dieses Problem hatte ich auch bereits, hängt aber meiner Meinung nach nicht mit VBA zusammen.
Habe Excel 2003 deinstalliert und wieder neu installiert, seitdem ist das Problem vorbei.
Vielleicht hilft dies auch bei Dir.
Rudi S.
vielleicht gehts hiermit...
10.08.2009 16:34:48
Tino
Hallo,
versuche es mal mit diesem Code.
Sub LoescheBlaetter()
Dim myAr() As String
Dim i As Integer, ii As Integer, iii As Integer

For i = 1 To ThisWorkbook.Sheets.Count
    With ThisWorkbook.Sheets(i)
        If .Visible Then
          iii = iii + 1
              If .Name Like "Typ[A-Z]" Then 'Typ[A-Z] entsprechend anpassen z. Bsp. Typ[C-Z] 
                Redim Preserve myAr(ii)
                myAr(ii) = .Name
                ii = ii + 1
              End If
        End If
    End With
Next i

If ii > 0 Then
    If (ii = iii) Then
     
        MsgBox "Sie können nicht alle sichtbaren Tabellen löschen!"
    
    Else
        
         With Application
          .DisplayAlerts = False
          .EnableEvents = False
            
                Sheets(myAr).Delete
          
          .DisplayAlerts = True
          .EnableEvents = True
         End With
        
    End If
End If
End Sub
Gruß Tino
Anzeige
Schummellösung:Excelbug beim löschen von Blättern?
12.08.2009 08:58:27
Blättern?
Habe alle eure Tipps beherzigt und getestet - Danke noch mal!!! Habe mich auch durch sämtliche Foren gelesen. Für mich gibt es keine Lösung für das Problem mit delete - ich kann mir nicht erklären, wo der Fehler in dieser Mappe herkommt.
Falls jemand mal eine ähnliches Problem hat hilft ihm vielleicht meine kleine Schummellösung weiter.
Anstelle von "Worksheets(Blattname).delete" rufe ich folgende Prozedur, mit der Aufgabe die Inhalte der überflüssigen Blätter zu löschen und die Blätter dann auszublenden.
Public Sub blatt_reinigen(Blattname As String)
With Worksheets(Blattname)
.Select 'auswählen
.Name = .CodeName 'eindeutiger Codename zuweisen
.Tab.ColorIndex = 6 'gelb färben
.UsedRange.EntireColumn.Delete 'komplett löschen
.Visible = False 'ausblenden
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige