Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
724to728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
724to728
724to728
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bed. Form. per VBA : äußerst merkwürdig!

bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 07:28:43
Franz
Guten Morgen Fachleute,
ich stoße auf was zumindest für mich äußerst Unverständliches beim Einstellen der bedingten Formatierung per VBA mit folgendem Code:

Sub varSonst_bedingt_formatieren()
ActiveSheet.Unprotect
With Range("VarSonst")
'.Select
.Interior.ColorIndex = xlNone
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$BP2<HEUTE()"
.FormatConditions(1).Font.ColorIndex = 2
.FormatConditions(1).Interior.ColorIndex = 15
End With
End Sub

Der benamte Bereich "VarSonst" geht über 2 Spalten (BP und BQ) und 299 Zeilen (von Zeile 2 - 300), in der Spalte BP steht jeweils ein Datum, in BQ ein zugehöriger Wert.
- Mach ich das ganze händisch, markiere also den Bereich "VarSonst" mit aktivierter Zelle BP2 und trage ein "=$BP2 - Lasse ich in obigem Code das "Select" drin, ist also der Bereich selektiert und wiederum BP2 aktiviert, dann geht's auch.
- UND JETZT KOMMTS: nimmt man im Code das "Select" raus UND der Cursor steht in irgendeiner Zelle der Zeile 2, dann - und nur dann - stimmt auch alles. Steht der Cursor aber in einer anderen Zeile, dann wird was Falsches eingetragen:
... steht der Cursor z.B. in Zeile 1, dann steht in der bed. Form. der Zelle "BP2" : "=$BP3 ... steht der Cursor z.B. in Zeile 3, dann steht in der bed. Form. der Zelle "BP2" : "=$BP1 ... steht der Cursor z.B. in Zeile 4, dann steht in der bed. Form. der Zelle "BP2" : "=$BP65536 ... steht der Cursor z.B. in Zeile 5, dann steht in der bed. Form. der Zelle "BP2" : "=$BP65535 ... ist also anscheinend von der Stellung des Cursors abhängig!?! Ich versteh das nicht! Was mach ich da falsch? Bitte um eure Hilfe...
Danke schon mal und Grüße
Franz

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 07:44:29
Matthias
Hallo Franz,
so kannst du das ohne Select machen:

.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$BP" & ActiveCell.Row & "<HEUTE()"

Gruß Matthias
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 07:48:41
Franz
Hallo Matthias,
sehr gute Lösung, funktioniert, vielen Dank!
Dennoch erstaunt mich das Ganze schon sehr, verstehen kann ich's nicht - aber vielleicht muss ich ja nicht alles verstehen :-)))
Noch mal danke und Grüße
Franz
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 07:57:06
Matthias
Hallo Franz,
wenn du hier eine relative Adressierung einsetzt, bezieht sie sich auf die Aktive Zelle, bei den anderen Zellen wird die Formel entsprechen verändert.
beim manuellen Mrkieren fällt das dann auf, wenn du den Bereich von unten nach oben markierst und dann den Bezug auf die oberste markierte Zeile nimmst.
Zieh mal B1:B10 auf und gib ein (Formel ist) =$A1=1
Dann stimmt alles.
Nun zieh mal B10:B1 (von unten nach oben) auf und gib dieselbe Formel ein, dann kommt es zu dem gleichen Fehler wie bei deinem Makro.
Gruß Matthias
Anzeige
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 08:34:28
Franz
Hallo Matthias,
danke für die Erklärung. Trotzdem bleibt auch für mich noch die Frage von Micha: wenn du in deiner Formel "Activecell.Row" einsetzt, warum wird dann richtigerweise in die Zelle BP2 auch "$BP2" eingetragen, auch wenn eine Zelle in Zeile 300 oder sonstwo markiert ist? Die ActiveCell.Row also alles andere als "2" ist .. ?!?
Grüße
Franz
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 08:44:46
Matthias
Hallo Franz,
wenn z.B. eine Zelle in Zeile 100 markiert ist, schreibt er erstmal für $BP100: "=$BP100=HEUTE()"
und für alle anderen Zellen der Gültigkeit dann relativ, also bei $BP2 dann: "=$BP2=HEUTE()"
Gruß Matthias
Anzeige
Ha!! Jetzt hab ich's kapiert
27.01.2006 08:49:04
Franz
Hallo Matthias,
stimmt, eigentlich ist's ja logisch :-//
Danke dir noch mal und Grüße
Franz
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 09:11:39
yps
hi Matthias,
so richtig hab ich's noch nicht verstanden (liegt wahrscheinlich an mir)

Sub test()
With Range("A1:A10")
.Formula = "=$B" & ActiveCell.Row
End With
End Sub

hier wird der "falsche" bezug hergestellt (also auf die zeile in der der cursor steht)
und dann logischerweise relativ weiter nach unten

Sub varSonst_bedingt_formatieren()
With Range("A1:A10")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$B" & ActiveCell.Row & "<HEUTE()"
.FormatConditions(1).Font.ColorIndex = 2
.FormatConditions(1).Interior.ColorIndex = 15
End With
End Sub

in diesem code wird ab der ersten zeile der "richtige" bezug hergestellt (also auf die gleiche zeile) ohne auf die tatsächliche activecell.row zu achten
wo ist jetzt der unterschied ?
oder ist das mal wieder exceltypisch ? (und man muss es nicht verstehen sondern nur anwenden)
cu Micha
Anzeige
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 09:19:01
Matthias
Hallo Micha,
oder ist das mal wieder exceltypisch ?
Ich denke, das ist es am ehesten... ;-)
Ist ja auch komisch, dass in Formula1:= die lokale (=HEUTE) Formel stehen muss und nicht die engliche.
Gruß Matthias
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 09:55:19
yps
hi Matthias,
danke für deine antwort
ich hatte schon gedacht bei mir macht sich langsam der kalk bemerkbar
besonders weil Franz das verstanden hat ;-) und ich nicht :-(
aber Münchner sind eben einfacher zu überzeugen als Berliner *fg*
cu Micha
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 10:29:19
Franz
Auf meiner Ebene hab ich's verstanden, wenn du natürlich tiefer graben musst........
Aber dein Anwurf "besonders weil Franz das verstanden hat ;-) und ich nicht :-(" rechtfertigt meine Mail umso mehr :-))))))))))))))
bis später
Franz
Anzeige
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 07:47:27
yps
hi Franz,
die dusslige bedingte formatierung will eine absolute adressierung
also:
"=$BP$2 oder wenns zeilenbezogen sein soll:

Sub varSonst_bedingt_formatieren()
ActiveSheet.Unprotect
Set myobjekt = Range("A1:A10")
For Each zelle In myobjekt
With zelle
.Interior.ColorIndex = xlNone
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$BP$" & zelle.Row & "<HEUTE()"
.FormatConditions(1).Font.ColorIndex = 2
.FormatConditions(1).Interior.ColorIndex = 15
End With
Next
End Sub

anpassen und verfeinern schaffst du bestimmt ;-)
viel spass
und wieder der hinweis: ich kann nur unter 2003 testen
cu Micha
Anzeige
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 07:52:26
Franz
Hallo Micha,
danke, hab ich ja auch versucht mit abs. Adr. Aber dann stimmt's halt nur in ZEile 2. Aber Matthias hat schon ne sehr schöne Lösung geliefert, braucht For Each ... Next gar nicht (ham mir zwoa wos glernt, gei :-)))
Schönen Tag noch
Franz
AW: bed. Form. per VBA : äußerst merkwürdig!
27.01.2006 08:01:48
yps
hi Franz,
die lösung von Matthias funktioniert ! aber warum ?
wenn man die ActiveCell.Row in die überwachung nimmt wird immer die zeile ausgegeben in der der cursor steht *grummel*
naja, ich muss ja nicht alles verstehen ;-)
eventuell hat ja Matthias 'ne erklärung
cu Micha
du hast Post *gg*
27.01.2006 08:31:06
Franz
sorry, so san mia hoit ...
Franz
Anzeige
OT leider erst später...
27.01.2006 08:49:40
yps
hi Franz,
ich komme leider nicht von meiner arbeitsstelle an meine privatmails ran (die hat mein überaus fleissiger mailclient zuhause schon längst abgeholt)
aber ich melde mich auf jeden fall bei dir
cu Micha
wär dir auch gar nicht gram, ...
27.01.2006 08:52:49
Franz
... wenn du dich nie mehr meldest ... :-))))))))))))
Grüße
Franz

300 Forumthreads zu ähnlichen Themen


Hallo Hans,
wenn ich die URLs richtig interpretiere, haben wir im Forum soeben die Zahl von 1 Million Beiträgen überschritten.
Herzlichen Glückwunsch zu dem Erfolg Deines "Babys"!
Gruß
Martin
Anzeige

Hallo zusammen!
Ich habe da als blutiger Anfänger in VBA zwei Fragen:
1.) Wie kann ich in meiner Tabelle in jeder zweiten Spalte 4 leere Spalten einfügen lassen?
2.) Dann möchte ich unter den Inhalt der ersten fünf Spalten (A-E) den Inhalt der zweiten 5 Spalten (F-J) usw. In der grö...

Guten Morgen!
Ich hätte folgendes Problem: Ich erhalte automatisiert Exceltabellen, bei denen nicht alle Zellen einer Zeile gefüllt werden, wenn dort der Inhalt einer darüberliegenden Zeile stehen sollte. Zur Weiterverarbeitung muss ich aber diese Zellen mit den dazugehörigen Werten füllen....
Anzeige

Hallo zusammen,
ich habe eine lange Liste, in der in einer Spalte Daten stehen, wo ab und zu vorangehende Nullen nötig sind (mal eine - mal 2...etc.) - und manchmal auch keine.
Wie kann ich diese Zellen formatieren, das die vorangehenden "Nullen" nicht automatisch weggelassen werden?

Hallo Excel-Profis
ich habe folgenden Code in ein Makro eingebaut:
'Drucken mit Vorschau
Application.ActivePrinter = "\\dataserv\HP LaserJet 5L AV auf Ne05:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True, Collate:= _
True
Hier wird der Standard-Drucker an...

Hallo,
Ich brauche dringend Eure Hilfe. Unter https://www.herber.de/bbs/user/54533.xls findet Ihr eine Mappe, in welcher in Spalte A
1 für "Kaufen"
0 für " "
-1 für "Verkaufen"
steht. IN SPALTE B SIND BISHER NUR MANUELL ERSTELLTE BEISPIELEINTRÄGE ENTHALTEN, DAMIT ERSICHTLIC...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige