online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Peter3011 vom 23.10.2019, 21:37 Options

Nicht in den Haltemodus wechseln

Hallo,

zu später Stunde komme ich noch mal mit meiner Frage.

Und zwar möchte ich mit einem Makro ein Tabellenblatt löschen. Dieses enthält aber ein Makro, welches offenbar anspringt, wenn ich das Blatt lösche.

Deshalb kommt immer die Meldung: "Zu diesem Zeitpunkt kann nicht in den Haltemodus gewechselt werden"

Das will ich ja auch gar nicht und wenn ich auf "Fortfahren" klicke, läuft das Makro problemlos durch.

Wie kann ich diese Meldung verhindern oder umgehen? mit displayalerts funktioniert es nicht.

Eine Antwort muss heute nicht mehr sein. Einen schönen entspannten Abend noch.

Gruß

Peter


Antwort schreiben

Antwort 1 von coros vom 24.10.2019, 07:54 Options

Hallo Peter,

ohne genau Deine Datei und die darin enthaltenen VBA-Code zu kennen, könnte es unter Umständen daran liegen, dass ein Calculate-Ereignis den VBA-Code auslöst. Das könntest DU mit

[b]Application.Calculation = xlCalculationManual[/b]


abfangen. Dieser Befehl bewirkt, dass die Berechnung auf manuell gestellt wird und somit kein Calculate-Ereignis auslöst. Am Ende des Makros solltest Du das aber wieder mit

[b]Application.Calculation = xlCalculationAutomatic[/b]


einschalten.

Noch eine Möglichkeit wäre, sich eine Sperrvariable zu erzeugen, die mit Publik als Typ Boolean definiert wird (Achtung Public-Definition muss in einem StandardModul erstellt werden, damit der Wert in der gesamten Exceldatei verwendet, bzw. abgefragt werden kann), mit der man den Code an einer bestimmten Stelle, meist gleich am Anfanf eines VBA-Codes, diesen abbricht. Als Beispiel

[b]Public Sperre as Boolean[/b]


In Deinem Makro weiß Du der Variablen "Sperre" den Wert "True" zu. In dem zu löschenden Blatt setzt Du in jedem Worksheet-Ereignis in der ersten Zeile den Befehl

[b]If Sperre = True Then Exit Sub[/b]


Das bewirkt, dass der VBA-Code an der Stelle abgebrochen wird.

Ich hoffe, Du kommst klar. Ansonsten benötigt man sicherlich Deine Datei, um zu sehen, welches Ereignis dort anspricht und wie man das unterbinden kann.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Peter3011 vom 24.10.2019, 09:00 Options

Hi Oliver,

ich habe mal fix das Makro, welches sich im Tabellenblatt befindet, hierher kopiert.

Private Sub Worksheet_Change(ByVal Target As Range)

'Kapazitäten Stromaggregate vergleichen
If Range("c106") < Range("f106") Then
leist$ = Range("f106")
If Sheets("Deckblatt (total)").Range("f8") = "Deutsch" Then
MsgBox ("Die Leistung des Aggregates muss mindestens " & leist$ & " KW betragen!")
neuleist$ = InputBox("Bitte geben Sie hier die Leistung (min. " & leist$ & " KW) ein!")
Else
MsgBox ("The capacity has to have " & leist$ & " KW at minimum!")
neuleist$ = InputBox("Please insert the new capacity (bigger than " & leist$ & " KW)!")
End If
Range("c106") = neuleist$
End If

'Kapazitäten techn. CO2 vergleichen
If Range("c132") < 0 Then
leist$ = Range("f130")
If Sheets("Deckblatt (total)").Range("f8") = "Deutsch" Then
MsgBox ("Sie können maximal " & leist$ & " t Trockeneis produzieren!")
neuleist$ = InputBox("Bitte geben Sie hier die neue Trockeneismenge (max. " & leist$ & " t) ein!")
Else
MsgBox ("You only can produce " & leist$ & " t at maximum!")
neuleist$ = InputBox("Please insert the new dry ice amount (max. " & leist$ & " t) you want to produce!")
End If
Range("c134") = neuleist$
End If

'Wärme für Kälteproduktion
If Range("c120") < 0 Then
leist$ = Range("c122")
eis$ = leist$ / 1.75
If Sheets("Deckblatt (total)").Range("f8") = "Deutsch" Then
MsgBox ("Sie benötigen für die Kältemenge von " & leist$ & " MWh mehr Wärme, als Ihnen zur Verfügung steht!")
neuleist$ = InputBox("Bitte geben Sie hier die neue Kältemenge (max. " & eis$ & " MWh) ein!")
Else
MsgBox ("You only can produce " & leist$ & " MWh cold at maximum!")
neuleist$ = InputBox("Please insert the new cold amount (max. " & eis$ & " MWh) you want to produce!")
End If
Range("c122") = neuleist$
End If

End Sub

Dieses Makro muss unterdrückt werden, wenn das Blatt gelöscht wird.

Und dieses Makro löscht die Blätter.

Private Sub ListBox5_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

'Deklarationen
Dim nummer As Integer
Dim intab As Integer
Dim intcou As Integer
Dim val As Integer
Dim valuta As Integer
Dim I As Long
Dim hi As String

protxt$ = ListBox5.Text

Application.DisplayAlerts = False



For intab = 9 To Worksheets.Count Step 6
nummer = intab
If Worksheets(intab).Range("A1") = protxt$ Then
Worksheets(Array(nummer, nummer + 1, nummer + 3, nummer + 4, _
nummer + 5)).Select

ActiveWindow.SelectedSheets.Delete

Sheets(nummer).Delete
GoTo end1
End If
Next intab

end1:

For intcou = 9 To Worksheets.Count Step 6

'Tabellennamen vergeben
Sheets(intcou).Select
ActiveSheet.Name = "Project " & (intcou - 3) / 6
Sheets(intcou + 1).Select
ActiveSheet.Name = "Deckblatt " & (intcou - 3) / 6
Sheets(intcou + 2).Select
ActiveSheet.Name = "Steuerung " & (intcou - 3) / 6
Sheets(intcou + 3).Select
ActiveSheet.Name = "Summary " & (intcou - 3) / 6
Sheets(intcou + 4).Select
ActiveSheet.Name = "GuV " & (intcou - 3) / 6
Sheets(intcou + 5).Select
ActiveSheet.Name = "Zins und Tilgung " & (intcou - 3) / 6

'Projektnummer vergeben
Sheets("Steuerung " & (intcou - 3) / 6).Select
Range("c7").Select
Selection.ClearContents
ActiveCell.Value = "Project " & (intcou - 3) / 6

Next intcou

UF_Projekt_löschen_de.ListBox5.Clear

For intab = 9 To Worksheets.Count Step 6
Worksheets(intab).Activate
Range("a1").Select
hi = ActiveCell.Value
UF_Projekt_löschen_de.ListBox5.AddItem hi
Next

End Sub

Der fett gedruckte Befehl betrifft das Blatt mit dem Code, der unterdrückt werden soll.

Mit dem Public Sub scheint das nicht zu funktionieren (zumindest so wie ich das mache), da die Fehlermeldung immer noch kommt.

Ich mache noch mal meine Datei fertig und stelle sie hierein.

Vielleicht kommst Du mit diesem Makros auch schon weiter.

Gruß

Peter

Antwort 3 von Peter3011 vom 24.10.2019, 09:13 Options

Wo konnte man noch mal die Datei hochladen?

Gruß

Peter

Antwort 4 von coros vom 24.10.2019, 12:39 Options

HAllo Peter,

die Datei kann man z.B. bei www.netupload.de hochladen. Hast Du denn einen meiner Vorschläge mal ausprobiert? Wenn ja, mit welchem Ergebnis?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von Peter3011 vom 24.10.2019, 12:50 Options

Hallo Oliver,

habe hin und her probiert. Ohne Erfolg zunächst.

Aber Excel hat sich anscheinend überlegt, dass es auch ohne geht :-).

Jetzt läuft top, ohne dass ich etwas geändert habe.

Danke für Deine Hilfe.

Gruß

Peter

Ähnliche Themen

Verknüpfung, Benutzer wechseln
HaPes  24.02.2007 - 321 Hits - 2 Antworten

Combilaufwerk bei Acer Extensa 3000 wechseln
123456Toni  09.09.2007 - 86 Hits -

compac presario b 1014 laufwerk wechseln
heilender  12.09.2007 - 70 Hits -

festplatte wechseln
adsfgasdf  07.03.2008 - 475 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 09:21:55 2026