Anzeige
Archiv - Navigation
244to248
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
244to248
244to248
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

aktives blatt löschen

aktives blatt löschen
17.04.2003 11:28:38
henning
hi leute

mein selbstgeschriebenes programm hängt sich beim automatischen löschen der blätter auf. es soll alle blätter wo eine gewiße range = 0 ist und eine andere range = 1 ist löschen.

das geht auch soweit ganz gut bloß leider löscht er das aktive blatt mit und stürzt dann mit object wurde von clients getrennt ab. es handelt sich um eine arbeits mappe die sich aus einer anderen (in der die sub und userforms sitzen) heraus kopiert hat.

weiß jemand rat?

hier mal die sub

Application.DisplayAlerts = False

For Each Blatt In ActiveWorkbook.Worksheets
If Blatt.Range("C20") = 0 And Blatt.Range("L1") = 1 Then Blatt.Delete
Next

Application.DisplayAlerts = True

vielen dank

henning

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: aktives blatt NICHT löschen
17.04.2003 11:35:22
Boris

Hi Henning,

Gruß Boris

hilft leider nicht @boris
17.04.2003 11:59:21
henning

hi boris,
wenn das programm stand dann gehts aber aus dem laufenden prozeß hauts mich noch raus.

es ist immer laufzeitfehler... das object wurde von den clients getrennt.

ich dachte es liegt dran das ich das aktive blatt lösche. scheint aber doch tiefer zu gehen...

noch wer ne idee.

henning

Noch offen
17.04.2003 12:07:14
Boris

Hi Henning,

dann müssen andere ran.

Gruß Boris

Re: Noch offen
17.04.2003 13:06:47
Lothar

Hi Henning,

vielleicht solltest Du mal den gesamte Code posten, so tappt man völlig im Dunkeln.


Gruss
Lothar

code
17.04.2003 13:21:38
henning

hi lothar

was meinst du mit dem ganzen code?

was das löschen und die fehlerentstehung angeht ist das der ganze code... das habe ich schon getestet. wenn der weg ist gehts.

aber hier mal der code des buttons der das löschen soll:

Private Sub CommandButton5_Click()

Worksheets("tabelle1").Select
Range("A15:Q59").Select
Selection.Delete shift:=xlUp

Worksheets("tabelle1").Range("A1").Activate

Dim Blatt As Worksheet
wert = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C43]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(19, 3).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C44]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(20, 3).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C45]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(21, 3).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C46]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(22, 3).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[E43]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(19, 5).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[E45]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(21, 5).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[E46]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(22, 5).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[G44]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(20, 7).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C52]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(28, 2).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C53]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(29, 2).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C54]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(30, 2).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C55]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(31, 2).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C56]
If IsNumeric(wert) Then summe = (summe + wert) / 2
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(32, 2).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[C57]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(33, 2).Value = summe


Worksheets("tabelle1 (2)").Range("G17").Copy
ActiveSheet.Paste Destination:=Worksheets("tabelle1").Range("D33")


summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[H44]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(20, 8).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[H45]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(21, 8).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[H46]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(22, 8).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[H43]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(19, 8).Value = summe

summe = 0
For Each Blatt In ActiveWorkbook.Worksheets
wert = Blatt.[G43]
If IsNumeric(wert) Then summe = summe + wert
Next Blatt

ActiveWorkbook.ActiveSheet.Cells(22, 7).Value = summe

wert = 0
summe = 0

Application.DisplayAlerts = False

Worksheets("tabelle1").Activate

For Each Blatt In ActiveWorkbook.Worksheets
If Blatt.Name <> ActiveSheet.Name And Blatt.Range("C20") = 0 _
And Blatt.Range("L1") = 1 Then Blatt.Delete
Next


Application.DisplayAlerts = True

Range("A1").Select
Unload Me
UserForm8.Show

End Sub

da sind noch ein paar sachen drin die auf der tabelle1 summieren sollen...

ich kann auch gerne mal das ganze teil verschicken wen das jemand interessiert...

hoffentlich findet ihr den fehler.


henning

Anzeige
Re: code
17.04.2003 13:52:00
Lothar

Hmm, ich kann eigentlich nichts auffälliges entdecken.

Frage:
Das selektieren der Daten von den einzelnen Blättern an sich fünktioniert? (ich meine falls der Blatt-Lösch-Code nicht eingebaut ist). Die Routine zum Löschen alleine funktioniert auch, wie Du sagtest ...
IMHO hilft das nur nach dem Selektier/Kopiervorgang und der Formatierei den Lösch-Code als Sub aus dem 1. aufzurufen ???
Haste das mal gechecked?

Lothar

Re: code
17.04.2003 15:42:58
henning

hi lothar,

bis zum löschvorgang gehts gut. ich habe das mal gecheckt ohne löschen das geht. aber was meinst du mit noch dem kopieren ein sub aus der 1. aufzurufen?

das verstehe ich nicht ganz...

kann es sein das ich da noch value zu packen muß weil er das ganze sonst für false und true hält?

wie gesagt ich kanns dir schicken wenns dir hilft...

danke


henning

Anzeige
noch offen
17.04.2003 16:24:27
henning

hi lothar,

ich fahre jetzt in urlaub. bin am mittwoch wieder da. falls du noch was brauchst kann ichs dir am mittwoch schicken...

merci

henning


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige