Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro verkürzen

Forumthread: Makro verkürzen

Makro verkürzen
06.07.2015 22:18:39
Burghard
Hallo,
ich möchte mein Makro gerne verkürzen. Geht das mit Case? Ich würde auch gerne, dass die Neuberechnung nur im Bereich A2 bis L5 und nicht über das ganze Tabellenblatt stattfindet. Da müsste wohl der Range-Bereich angegeben werden. Hilfe wäre nett.
Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
If WorksheetFunction.Sum(Range("A2:A5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("B2:B5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("C2:C5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("D2:D5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("E2:E5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("F2:F5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("G2:G5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("H2:H5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("I2:I5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("J2:J5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("K2:K5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
If WorksheetFunction.Sum(Range("L2:L5")) > 1000 Then
MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
End If
Application.ScreenUpdating = True
End Sub
Grüße Burghard

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro verkürzen
06.07.2015 22:28:48
Sepp
Hallo Burhard,
und wo liegt der tiefere Sinn des ganzen?
Private Sub Worksheet_Calculate()
  Dim lngCol As Long
  
  For lngCol = 1 To 12
    If WorksheetFunction.Sum(Range(Cells(2, lngCol), Cells(5, lngCol))) > 1000 Then
      MsgBox "Höchstbetrag von 1.000 € wird überschritten!"
      Exit For
    End If
  Next
  
End Sub


Gruß Sepp

Anzeige
AW: Makro verkürzen
07.07.2015 11:04:45
Burghard
Hallo Sepp,
danke für Deine Lösung. Es gibt aber noch ein Problem. Ich bin am Lernen und wollte sehen, wie man den Code kürzen kann.
Das Problem bei Deiner Lösung ist, dass die MessageBox aufgeht, wenn ich unterhalb des Bereichs "A2:L5" etwas in eine Zelle eintrage.
Mein Vorgehen:
Ich trage zum Beispiel in Zelle A30 und A31 einen Betrag ein, diese werden monatlich in Zelle A2 summiert.
Ich trage zum Beispiel in Zelle F30 und F31 einen Betrag ein, diese werden monatlich in Zelle A3 summiert.
Ich trage zum Beispiel in Zelle H30 und H31 einen Betrag ein, diese werden monatlich in Zelle A4 summiert.
Ich trage zum Beispiel in Zelle J30 und J31 einen Betrag ein, diese werden monatlich in Zelle A5 summiert.
Das Makro soll jetzt die Beträge in den Zellen A2:A5 summieren und eine Meldung ausgeben, wenn die Summe größer als 1000 ist.
Gibt es eine Lösung das Calculate Ereignis einzugrenzen?
Grüße Burghard

Anzeige
AW: Makro verkürzen
07.07.2015 11:11:02
Sepp
Hallo Burghard,
dann nimm doch das Change-Ereignis, da kannst du den Bereich eingrenzen.
Gruß Sepp

;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige