Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
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

Wochenwechsel in Programmierter Tabelle

Wochenwechsel in Programmierter Tabelle
15.09.2018 10:13:39
Stephan
Hallo Liebes Forum,
ich habe eine Tabelle Programmiert für meine Arbeit und komme nun an einer Stelle nicht weiter, da ich nicht genau weiß welche Informationen benötigt werden. Schildere ich erst die Situation und gebe euch dann den Auszug des Makros ,die Excel Tabelle (bitte nicht lachen, ist meine erste VBA Tabelle).
Ich habe eine Auslastungsprogrammierung für Auftrage gemacht. Dieser bezieht die eingegeben Daten auf einen Bereich von -4 wochen bis + 1 Jahr. Sobald in einer Woche mehr als 80 Einheiten gezählt werden geht eine Pop-up als Warnung raus.
Dies Funktioniert super, wenn jetzt aber sich das Datum wechselt, ändern sich die KW´s eins weiter und alle Zeilen welche den Wert von 80 überschritten haben machen Meldung. Dies soll über eine einfache Abfrage zwischen alter und neuer Kalenderwoche geregelt werden.
Auszug Makro:
Option Explicit
Dim h As String
Private Sub Worksheet_Calculate()
Static x As Double
Dim h As Integer
For h = 43 To 99
'If Range("AI3")  Range("AI4") Then
'    Call wochenwechsel
'End If
If Cells(14, h).Value  Cells(1, h) Then
Call MSG(h)
End If
Next h
End Sub
Private Sub wochenwechsel()
'Wochenwechsel
'keine Pop-up Nachricht!
'Dim k As Integer
'For k = 43 To 99
'Cells(1, k) = Cells(14, k).Value
'Next k
'Range("AF4").Value = Range("AD4")
'End
End Sub
Private Sub MSG(h)
If Application.Sum(Range(Cells(16, h), Cells(1000, h))) > 80 Then  'Auslastungsgrenze 80  _
festgelegt!
MsgBox "Achtung: Auslastungsgrenze in der " & Sheets("Anfragen & Angebote 2018").Cells(12,  _
h).Value & " erreicht! " & vbNewLine & vbNewLine & _
"Der Wochenwert ist " & Sheets("Anfragen & Angebote 2018").Cells(14, h).Value & " Balkone  _
und somit um " & _
Sheets("Anfragen & Angebote 2018").Cells(2, h).Value & " Balkone überschritten.",  _
vbCritical, "Warnung"
Cells(1, h) = Cells(14, h).Value
Else
Cells(1, h) = Cells(14, h).Value
End If
End Sub
Fehlermeldung:
Laufzeitfehler `28`:
Nicht genügend Stapelfehler
Hier die Datei:
https://www.herber.de/bbs/user/123966.xlsm
Vielen Dank an alle welche mir Ihre Hilfe anbieten.
MFG Stephan

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wochenwechsel in Programmierter Tabelle
15.09.2018 10:24:08
onur
Private Sub Worksheet_Calculate() wird ausgeführt, wenn eine Berechnung gestartet wird. Es wird
MSG(h) aufgerufen, was zu einer Berechnung führt.
Private Sub Worksheet_Calculate() wird ausgeführt, wenn eine Berechnung gestartet wird. Es wird
MSG(h) aufgerufen, was zu einer Berechnung führt.
Private Sub Worksheet_Calculate() wird ausgeführt, wenn eine Berechnung gestartet wird. Es wird
MSG(h) aufgerufen, was zu einer Berechnung führt.
Private Sub Worksheet_Calculate() wird ausgeführt, wenn eine Berechnung gestartet wird. Es wird
MSG(h) aufgerufen, was zu einer Berechnung führt.
......
Wenn die "Auslastungsgrenze" von Excel für sich selbst aufrufende Codes erreicht ist, kommt die Fehlermeldung.
Anzeige
AW: Wochenwechsel in Programmierter Tabelle
15.09.2018 10:32:43
Stephan
Ich möchte ja bei einem Wochenwechsel den Call MSG befehl überspringen, da ohne Wochenwechsel alles perfekt funktioniert, sollte dies machbar sein. Mit =heute() rufe ich das aktuelle Datum auf und kontrolliere es mit dem alten welches Range("AI3") fest niedergeschrieben wird. Ich verstehe nur nicht wo mein Fehler liegt. Mit MSG-Boxen habe ich mir anzeigen lassen ob er im Code richtig rechnet und dies Tut er, nur beim allerletzten Durchlauf bekommt er mit der Zeile "If Range("AI3") Range("AI4") Then" ein Problem. Entschuldigt bitte das die Zeilen mit ' deaktiviert sind. ich hatte kurzzeitig was anderes gemacht und wollte die Zeilen nicht löschen.
Anzeige
AW: Wochenwechsel in Programmierter Tabelle
15.09.2018 11:00:22
onur
Du verstehst immer noch nicht: "Ich möchte ja bei einem Wochenwechsel den Call MSG befehl überspringen", und bei keinem Wochenwechsel NICHT?
Das Calculate-Event wird JEDESMAL aufgerufen, wenn das Blatt neu berechnet wird - willst du das?
Ein Wochenwechsel passiert doch - wie der Name schon sagt - 1x pro Woche, oder?
Also würde es doch reichen, einen Wochenwechsel zu überprüfen, wenn die Datei gestartet wird (Private Sub Workbook_Open() ).
Von Event-Programmierung solltest du die Finger lassen, wenn du noch ein Anfänger bist, da kann man im besten Falle eine Fehlermeldung erzeugen und im schlimmsten Falle Excel zum "Aufhängen" bringen, so daß du Excel nur noch durch den Taskmanager beenden kannst und alle Änderungen verloren gehen.
Anzeige
AW: Wochenwechsel in Programmierter Tabelle
15.09.2018 11:17:01
Stephan
1. das duzen einer Fremden Person ist äußerst unhöflich
2. einem Anfänger in einem Frage-Forum aufgrund seiner mangelnden Kenntnisse in solchem Wortlaut zu antworten ist ebenfalls unhöflich
3. ich dachte ich müsste den Überspringen Befehl ebenfalls in den Calculate-event einbauen damit dieser eben nicht ausgeführt wird, Anfänger eben
4. dennoch vielen Dank für die Antwort, der Befehl "Private Sub Workbook_Open()" wird meine Lösung sein, an die ich einfach nicht gedacht habe
AW: Wochenwechsel in Programmierter Tabelle
15.09.2018 11:31:18
onur
1) Wenn du dich mal hier durchguckst, siehst du, daß das Duzen (wie in allen anderen Foren auch) STANDARD ist.
2) Ich dachte, du willst konstruktive Hilfe und nicht irgendwelche Streicheleinheiten.
3) Wenn du das bedingte Überspringen einbaust, wird übersprungen, wenn die Bedingung zutrifft (oder auch nicht zutrifft - je nach Programmierung) -, aber nur DANN - aber was ist, wenn die Bedingung NICHT zutrifft? Wenn IMMER übersprungen werden muss, könntest du dir ja auch die Bedingung inkl. Rest des Codes genausogut sparen.
4) Gern geschehen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige