Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1260to1264
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

Warnhinweis bei Minuszahl

Warnhinweis bei Minuszahl
Dietmar
Hallo zusammen,
mit folgendem Code summiere ich Werte, die in Tabelle1.Range(A2:A20) eingetragen werden; die Summierungen erfolgt zunächst in Spalte B2:B20 der Tabelle1.
Spalte B2:B20 wird auf Tabelle2 in Range(A2:A20) als Bezug gespiegelt. (In Meiner Original-Datei werden in Tabelle2 in Range(A2:A20) noch weitere Bezugsdaten hinzugefügt).
Der Code meldet mir korrekterweise, wenn in Tabelle2.Range(A2:A20) ein Wert im Minus entstanden ist. Dann ist es aber bereits geschehen!
Meine Frage:
Wie erreiche ich, dass der Code erst gar nicht ausgeführt wird, wenn in Tabelle2.Range(A2:A20) ein Minuswert entstehen WÜRDE?
Vielen Dank!
Dietmar aus Aachen
Private Sub cmd_Summieren_Click()
Dim rngC As Range
Application.Calculation = xlCalculationManual
If Application.Count(Range("A2:A20")) > 0 Then
For Each rngC In Range("A2:A20").SpecialCells(xlCellTypeConstants)
With rngC
.Offset(0, 1) = .Offset(0, 1) + .Value
End With
Next
Range("A2:A20").ClearContents  'Quelle löschen
Application.Calculation = xlCalculationAutomatic
Else
MsgBox "Nö, es sind keine Werte zu übertragen!", vbInformation, "Hinweis"
Application.Calculation = xlCalculationAutomatic
Exit Sub
End If
Application.Calculation = xlCalculationAutomatic
With Application.WorksheetFunction
If .CountIf(Sheets("Tabelle2").Range("A2:A20"), "

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Warnhinweis bei Minuszahl
09.05.2012 18:43:02
Hajo_Zi
Hallo Ditmat,
erst Bildest Du die Summe über Werte, also nicht Formel und dann löscht Du alles auch die Formeln. Ist das nicht ein Wiederspruch?
Ich hätte ja sonst die Sum Funktion eingestzt.

Formeln sind nur auf Tabelle2
09.05.2012 18:49:14
Dietmar
Hallo Hajo,
ich lösche doch nur die Werte, die ich in der Tabelle1.Range(A2:A20) eintrage, nachdem sie berarbeitet wurden.
Formeln befinden sich nur in Tabelle2; die müssen auch bestehen bleiben, weil sie in meiner O-Datei noch Werte aus anderen Bereich addieren.
Hier genau soll die Funktion einsetzten: Wenn in Tabelle2.Range(A2:A20) ein Minuswert entstehen WÜRDE, soll der Code nicht ausgeführt werden.
Habe mal eine Beispieldatei beigefügt.
https://www.herber.de/bbs/user/80088.xls
Viele Grüße
Dietmar
Anzeige
AW: Formeln sind nur auf Tabelle2
09.05.2012 19:21:35
Hajo_Zi
Hallo Dietmar,
Dann sagt Dein Code was anderes.
und warum benuzt Du dann nicht meinen Vorschalg?
Application.WorksheetFunction.Sum()
Gruß Hajo
:-(
09.05.2012 19:31:05
Dietmar
Hallo Hajo,
... weil ich keine Ahnung habe, wie ich diese Funktion anwenden müsste.
Insofern: VBA ... mehr als bescheiden
Viele Grüße
Dietmar
AW: :-(
09.05.2012 19:33:09
Hajo_Zi
Hallo Dietmar,
Du schreibst umfangreichen Code und jetzt ist es ein Problem zwischen den Klammern Range("A1:A20") zu schreiben.
Gruß Hajo
Anzeige
ich versuchs nochmal
09.05.2012 19:55:57
Dietmar
Hallo Hajo,
auch auf die Gefahr hin, dass ich wieder eine Rückfrage erhalte, die zuviel Wissen unterstellt und mir dann leider nicht weiterhelfen wird:
Weder löscht mein Code Formeln, wie von Dir anfangs angenommen, noch brauche ich eine Summenfunktion.
Ich suche eine VBA-Möglichkeit, die VOR der Ausführung des Codes Teil 1 erkennt, ob in Tabelle2.Range("A2:A20") ein Negativwert entstehen würde und dann den Teil 1 meines Codes erst gar nicht ausführt, sonder den Msgbox-Hinweis auslöst.
Ich wüsste wirklich nicht, wie ich das mit Deinem Vorschlag umsetzen sollte.
Übrigens: Teile des Codes habe ich hier im Forum erhalten; insofern sieht der GesamtCode besser aus als ich die Thematik beherrsche und lässt keine belastbaren Rckschlüsse auf meine Kenntnisse zu :-) Auf mich trifft trotz allem noch zu: *VBA bescheiden* ... wie auch angegeben.
Viele Grüße
Dietmar
Anzeige
AW: ich versuchs nochmal
09.05.2012 20:18:05
Josef

Hallo Dietmar,
tut mir Leid, aber Hajo kann man in letzter zeit leider nicht mehr ernst nehmen - schade!
Meinst du so?
Private Sub cmd_DerNaechsteBitte_Click()
  Dim rngC As Range
  On Error GoTo ErrExit
  Application.Calculation = xlCalculationManual
  If Application.Count(Range("A2:A20")) > 0 Then
    If Evaluate("MIN(B2:B20+A2:A20)") < 0 Then
      MsgBox "Achtung! Diese Buchung erzeugt auf Sheet 2 einen Minuswert!", vbInformation, "Achtung!"
    Else
      For Each rngC In Range("A2:A20").SpecialCells(xlCellTypeConstants)
        With rngC
          .Offset(0, 1) = .Offset(0, 1) + .Value
        End With
      Next
      Range("A2:A20").ClearContents 'Quelle löschen
    End If
  Else
    MsgBox "Nö, es sind keine Werte zu übertragen!", vbInformation, "Hinweis"
  End If
  
  ErrExit:
  Application.Calculation = xlCalculationAutomatic
  Set rngC = Nothing
End Sub



« Gruß Sepp »

Anzeige
*freu*
09.05.2012 20:37:08
Dietmar
Hallo Sepp,
ganz lieben Dank! Dein Code läuft klasse durch!
Da wäre ich doch in meinen künsten Träumen nicht drauf gekommen.
Zu Deiner Anmerkung: ich finde es auch sehr schade, aber manchmal helfen Rückfragen ja auch. Ich hoffe nur, dass das Forum nicht darunter leidet, denn manche Fragen können einfache Gemüter auch scheu machen, und ein gut Teil der Fragenden ist auf wirkliche Hilfe angewiesen ist; so jedenfalls mein Eindruck, wenn ich manche Beiträge so studiere. Für mich bleibt es aber DAS Forum!!! und ich schwärme immer wieder bei meinen Kollegen davon :-)
Was mich angeht, bin ich mit meinen fast 60 nicht mehr in der Lage soviel Wissen zu erlernen, dass ich solche Fragestellungen lösen könnte und da ist es mir jedes mal eine Riesenfreude, wenn ich hier (wie bisher hier letztlich immer!) tolle Hilfe bekomme ... denn Ideen habe ich viele ... allein Ideen ohne Lösung sind auch nichts wert.
Nochmals lieben Dank und bis bald mal wieder
Dietmar aus Aachen
Anzeige
AW: *freu*
09.05.2012 20:59:08
Josef

Hallo Dietmar,
keiner hat was gegen Rückfragen, man stellt sie ja nicht aus Jux, sondern weil man das Problem eingrenzen will oder aus der Beschreibung des selbigen nicht ganz schlau wird.
Aber den Fragern einfach ein paar Brocken, oft außerhalb des Zusammenhanges, hinzuschmeißen oder vorgefertigte Standartfrasen hier hin zu kopieren und an wahrer Hilfestellung scheinbar nicht interessiert zu sein, da sträuben sich mir die Nackenhaare.
Bis dann!

« Gruß Sepp »

Anzeige
AW: *freu*
09.05.2012 21:11:54
Dietmar
Hallo Sepp,
Du hast recht und ich finde Dein Engagement (und auch das vieler anderer toller Leute hier, die echte Stützpfeiler dieses Forums sind) echt klasse! Und dies ist durchaus wichtig, damit die die Qualität des Forums gesichert bleibt.
Wie auch immer: schaut dass ihr Frieden haltet. Aus meiner Zeit der Begeisterung für ethymologische Wortanlaysen kann ich mich noch erinnern: Frieden heißt: man spricht miteinander. Nur mal so ... :-)
Auch: bis dann.
Liebe Grüße
Dietmar
DANKE
10.05.2012 00:02:39
Stef@n
Hallo Dietmar
hallo Josef
ihr Beiden bringt den "Forum-Gedanken" auf "den Punkt"
Lasst uns alle den positiven Gedanken der gegenseitigen Hilfe
weiter "spinnen"
und dabei bedenken, dass Viele Ihre Fragen mit einem
niedreren KnowHow formulieren, als einige vermuten !
UND:
ICH lerne jeden Tag dazu !
Und das ist mir eine GROSSSSSSSE Freunde !! !
Mich erfreut diesen Forum sehr !
Besten Gruß
Stef@n
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige