Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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
Bedingtes Format Datenbalken widersetzt sich VBA
16.09.2013 21:17:26
Andreas
Hallo Herber Fans,
es sollte eigentlich doch nur ein kleiner Code am Abend werden… und nun bin ich leider mittelprächtig entnervt, die Augen schmerzen und ich komm nicht drauf… In PivotTabellen verwende ich für Abweichungsdarstellungen zuweilen Datenbalken. Diese skalieren sich innerhalb eines DataFields automatisch. Wenn ich jedoch über mehrere Datenfelder hinweg eine einheitliche Skalierung haben möchte, so muß ich entweder jede bedingte Formatierung manuelle anpassen oder eine Prozedur übernimmt das für die selektierten Zellen. Theoretisch so weit so gut. Ich habe mir diese Prozedur nun geschrieben. In einer InputBox gibt man Unter und Obergrenze für die Skalierung an und dann sollten diese Werte an jede bedingte Formatierung innerhalb der Selektion übergeben werden. Sollten… passiert nichts. Diese Befehlskomponente scheint der Knackpunkt zu sein newvalue:=dblMinValue.
Ich habe im Internet und im Forum gesucht, aber es gibt kein Hinweis darauf, warum der newvalue nicht korrekt übertragen wird!!!
Kann jemand aus dem Forum, der heute vielleicht geistig noch etwas frischer ist, sich die Sache ansehen? Ich bin für jeden Hinweis dankbar!
https://www.herber.de/bbs/user/87319.xlsm
Vielen Dann für Eure Aufmerksamkeit und Grüße aus Berlin, Andreas Hanisch

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingtes Format Datenbalken widersetzt sich VBA
16.09.2013 21:23:37
Hajo_Zi
Du kennst Dich ja mit VBA aus,
ich habe es so umgesetzt.
newvalue:=Evaluate(Application.WorksheetFunction.Substitute((Worksheets(StTabelleStart).Cells(LoZeileAktuell, 5)), Chr(160), ""))
Das Substitute kann bei Dir wohl entfallen.

AW: Bedingtes Format Datenbalken widersetzt sich VBA
16.09.2013 22:04:51
Andreas
Hallo Hajo,
vielen Dank für Deine Antwort!
Mir ist jedoch nicht ganz klar, welche Rolle Substitute hier spielen soll. In der Prozedur in Modul1 leite ich aus einer InputBox zwei numerische Werte ab, diese werden jedoch nicht vom newvalue angenommen. Wenn die Werte als Double deklariert sind, was soll ich da noch ersetzen? Welchen Effekt soll 'Evaluate' haben?
Vielleicht bin ich auch einfach schon zu kaputt für heute. Ich guck es mir morgen mit frischen Kräften noch einmal an.
Liebe Grüße, Andreas

Anzeige
AW: Bedingtes Format Datenbalken widersetzt sich VBA
17.09.2013 06:05:47
Hajo_Zi
du liest meinen Beitrag also nicht, Gut ich kann damit Leben. Ich habe nicht das Problem.
Das Substitute kann bei Dir wohl entfallen.

Gut ich dachte Du willst nur eine Lösung, das Dun auch ein umfangreiche Erklärung warum, da kann ich Dir nicht helfen.
Ich bin dann raus, siehe ersten Satz.
Gruß Hajo

AW: Bedingtes Format Datenbalken widersetzt sich VBA
17.09.2013 08:07:03
Luschi
Hallo Andreas,
schicke Deine Problemdatei nochmals als zip-Datei, dann schau ich mir das mal an.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Bedingtes Format Datenbalken widersetzt sich VBA
17.09.2013 11:20:43
Andreas
Lieber Hajo, lieber Luschi,
ich habe Hajos Lösung heute noch einmal getestet und sie funktioniert zu 75%. Dafür schon einmal danke. Ich habe den Thread auch richtig gelesen, mich selbst aber in meiner Antwort nicht korrekt ausgedrückt. Ich habe also einen kleinen Testlauf durchgeführt, um die letzten 25% korrekt skizzieren zu können.
Wenn als Minimum und Maximum jeweils Zahlen eingetragen sind und dann über die InputBox bspw. -5/5 eingetragen wird, dann werden als Minimum und Maximum auch korrekt –5 und 5 eingetragen. Wenn ich nun die Skalierung für Min/ Max wieder auf „Automatisch“ setzen will, dann lasse ich die InputBox leer und clicke auf OK. Die Prozedur erkennt, daß kein Wert eingetragen wurde und implementiert „Automatisch“.
Und jetzt der Knackpunkt: Will ich jetzt wieder -5/5 für Min/ Max hinterlegen, dann schaltet die Prozedur die Skalierung zwar korrekt auf „Zahl“, aber in dem Feld für den Wert steht dann nur ein Gleichheitszeichen drin, aber keine Zahl. Das ist auch so, wenn ich Evaluate newvalue:=Evaluate(dblMinValue) verwende.
Woran kann das liegen, daß nach der Implementierung von „Automatisch“ die Prozedur in einem nachfolgenden Lauf „Zahl“ nicht mehr korrekt einstellen kann und die Werte fehlen?
Ich bin weiterhin für jeden Hinweis dankbar. Anbei die Datei noch einmal als zip upload: https://www.herber.de/bbs/user/87323.zip
Grüße, Andreas Hanisch

Anzeige
AW: Bedingtes Format Datenbalken widersetzt sich VBA
17.09.2013 11:28:38
Hajo_Zi
Hallo Andreas,
mein Code geht zu 100%, wenn Du nicht vorher die richtigen Einstellungen triffst, kann der Code nicht gehen.
.MinPoint.Modify newtype:=xlConditionValueAutomaticMin
.MaxPoint.Modify newtype:=xlConditionValueAutomaticMax
Gruß Hajo

AW: Bedingtes Format Datenbalken widersetzt sich VBA
17.09.2013 11:39:07
Hajo_Zi
Hallo Andreas,
meine Erfahrung sagt das man die 2 Eigenschaften aus dem vorherigen Beitrag setzen sollte und bei Value zuweisen hast Du ja
.MaxPoint.Modify newtype:=xlConditionValueFormula,
Gruß Hajo

Anzeige
AW: Bedingtes Format Datenbalken widersetzt sich VBA
17.09.2013 12:15:53
Andreas
Lieber Hajo,
ich verwende in der Prozedur folgende 3 Einstellungen (als Enumeration),
Feste Skalierung:
intMinType = 0 (xlConditionValueNumber)
intMaxType = 0 (xlConditionValueNumber)
Automatische Skalierung
intMinType = 6 (xlConditionValueAutomaticMin)
intMaxType = 7 (xlConditionValueAutomaticMax)
Ich weiß jetzt nicht wo Du die Zeile .MaxPoint.Modify newtype:=xlConditionValueFormula her hast. Aber ganz sicher nicht aus meiner Prozedur Sub FormatConditions_ChangeScaling ()... Die Enumeration für xlConditionValueFormula wäre die 4, aber in meiner Prozedur existiert nicht einmal die Zahl 4. Hast Du überhaupt in den Code hineingesehen? Ich bezweifle dies.
Grüße, Andreas

Anzeige
AW: Bedingtes Format Datenbalken widersetzt sich VBA
19.09.2013 07:42:34
Hajo_Zi
Hallo Andreas,
bedingte Formatierung ab 2007 ist sehr kompliziert. Ich habe mich für mein Add In, da einmal eingearbeitet und den entsprechenden Teil für Deine Frage aus meinem Add In kopiert.
Es ist mir einfach zu aufwendig mich in vorhandenen Code einzuarbeiten. Ich gehe davon aus wer sich damit Belfast hat sehr viel Ahnung von VBA und kann meine Hinweise umsetzen.
Das sich die Eigenschaften immer auf eine bedingte Formatierung beziehen, habe ich als bekannt angenommen.
Gruß Hajo

Anzeige
AW: Bedingtes Format Datenbalken widersetzt sich VBA
20.09.2013 11:01:59
Andreas
Hallo Hajo,
vielen Dank für Deine Rückmeldung. Ich werde mir einmal Deine Website ansehen und gucken, ob ich mit Deinem Wissen von dort noch eine Lösung hinbekomme. Ein heutiger kurzer Test hat ergeben, daß die Zahlen eingetragen werden (zwar mit Gleichheitszeichen), wenn man die Werte direkt aus dem Array an newvalue übergibt. Und dieses Array ist als String deklariert, da es Werte aus der Split Funktion aufnimmt. Es wäre zwar etwas unlogisch die Werte als String zu übergeben, aber solange es läuft... Es würde Dein Statement "bedingte Formatierung ab 2007 ist sehr kompliziert." bestätigen.
Danke Dir für den Austausch zum Thema. Habe ein schönes Wochenende!
Grüße aus Berlin, Andreas Hanisch
Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige