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

Select o not Select, das ist die Frage

Select o not Select, das ist die Frage
ing.grohn
Hallo Forum,
bei der Arbit mit der "Bedingten Formatierung" ist mir etwas merkwürdiges aufgefallen:
Lasse ich folgenden Code mit Select laufen, ist das Ergebnis für den Eintrag immer korrekt:Istfehler(C34)
ohne select sthet da imer was wildes drin.
Kann mir jemand den Grund erklären?
Hier der Code:
Sub Makro3()
Dim Formel As String
Dim FormelA1 As String
'Range("C34").Select
'Cells(34, 3).Select
'With Cells(34, 3)
With Range("C34")
.Formula = Formel
.FormatConditions.Delete
.FormatConditions.Add _
Type:=xlCellValue, _
Operator:=xlEqual, _
Formula1:="1"
.FormatConditions(1).Interior.ColorIndex = 33
.FormatConditions.Add _
Type:=xlCellValue, _
Operator:=xlEqual, _
Formula1:="0"
.FormatConditions(2).Interior.ColorIndex = 3
.FormatConditions.Add _
Type:=xlExpression, _
Formula1:="=ISTFEHLER(C34)"
.FormatConditions(3).Interior.ColorIndex = 22
End With
End Sub

Für eine Antwort vielen Dank
Mit freundlichen Grüßen
Albrecht
Sicher! Die Bedingungsformeln richten sich...
12.08.2011 17:23:07
Luc:-?
…immer nach der ActiveCell, Albrecht;
das gilt auch für Namen! Hat natürlich nur auf relative Zellbezüge Auswirkungen! Deshalb hatte ich ja auch in meinem Bsp die jeweilige Zelle aktiviert — hättest du also schon ahnen können… ;-)
Gruß Luc :-?
AW: Sicher! Die Bedingungsformeln richten sich...
12.08.2011 17:38:13
ing.grohn
Hallo Luc,
ich hab ja sowas gedacht und bin dann zügig in Richtung select gegangen (Allerdings ist das Ergebnis doch ziemlich wild bzw für mich nicht unbedingt nachvollziehbar, Activecell F36, in der bedingten Istfehler(IT32), Ich weiß nicht?)
Und behaupten die Selektierer doch immer ohne Select auszukommen.
(zuggeben, ist i.d.R übersichtlicher)
Wünsch Dir ein schönes Wochenende
Albrecht
Anzeige
was steht denn drin ?
12.08.2011 17:26:50
Matthias
Hallo
und welche Formel produziert den Isfehler in C34?
Mein Test
Auch ohne Select steht als dritte bedingte Formatierung
Formel ist: =ISTFEHLER(C34)
Was geht denn nicht ?
Wieso löschst Du die Formel die den Fehler verursacht?
Schreib mal in C34 diese Formel: =1/F ergibt #Name? (also ein IstFehler)
Jetzt lässt Du Deinen Code laufen.
und bei .Formula = Formel -> ist ruck zuck die Formel weg!?
Ist das so gewollt?
Gruß Matthias
AW: was steht denn drin ?
12.08.2011 18:05:27
ing.grohn
Hallo an alle,
es ist völlig egal, was in der Zelle als Formel eingetragen ist.
Die Formel wird uch immer richtig übernomen.
gibts eigentlich noch mehr dieser Stolperfallen?
Mit frendlichen Grüßen
Albrecht
Anzeige
AW: Select o not Select, das ist die Frage
12.08.2011 17:29:02
Nepumuk
Hallo,
C34 ist relativ zur aktiven Zelle. Also: $C$34
Gruß
Nepumuk
AW: Select o not Select, das ist die Frage
12.08.2011 17:46:51
ing.grohn
Hallo Matthias, Hallo Nepumuk,
Als dritte Bedingung soll in der bedingten Formatierung der Zelle C34 ISTFEHLER(C34) stehen und nicht irgendwie ISTFEHLER(C) (mein ich so, probiers aus).
das passiert aber nur dann, wenn C34 selectiert ist.
Das mit den Dollar zeichen muß ich mir überlegen
Mit freundlichen Grüßen
Albrecht
AW: Select o not Select, das ist die Frage
12.08.2011 18:48:35
Nepumuk
Hallo,
na dann einfach so:
Sub Makro3()
    With Range("C34")
        .FormatConditions.Delete
        .FormatConditions.Add _
            Type:=xlCellValue, _
            Operator:=xlEqual, _
            Formula1:="1"
        .FormatConditions(1).Interior.ColorIndex = 33
        .FormatConditions.Add _
            Type:=xlCellValue, _
            Operator:=xlEqual, _
            Formula1:="0"
        .FormatConditions(2).Interior.ColorIndex = 3
        .FormatConditions.Add _
            Type:=xlExpression, _
            Formula1:="=ISTFEHLER(" & ActiveCell.Address( _
            RowAbsolute:=False, ColumnAbsolute:=False) & ")"
        .FormatConditions(3).Interior.ColorIndex = 22
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Select o not Select, das ist die Frage
12.08.2011 19:01:24
ing.grohn
Hallo Nepumuk,
das gefällt mir gut!
schönes Wochenende
Albrecht
AW: Select o not Select, das ist die Frage
12.08.2011 19:08:29
ing.grohn
Hallo Nepumuk,
das gefällt mir gut!
schönes Wochenende
Albrecht
Das hatte ich zunächst geschrieben!
Kein Zweifel, es funktioniert!
Aber in der Formel steht Activecell.adress
Die ist aber (siehe das, was lug sagte) doch tatsächlich eine andere!!
Gruß
Albrecht
AW: Select o not Select, das ist die Frage
12.08.2011 20:05:15
Nepumuk
Hallo,
ja was nun? ActiveCell musst du benutzen wenn du den Bezug auf die Zelle setzen willst in welche du die Bedungung rein schreibst. Hast du nicht verstanden warum?
Dann nimm doch einfach mal deine alte Prozedur, setz den Cursor in A1 und lass sie laufen. Was kommt dabei raus? Genau E67. Markiere den Bereich von A1-C34 mal, färbe ihn ein und kopiere ihn. Dann klick in C34 und füge ein. Was ist die letzte gefärbte Zelle? Wieder E67. Jetzt klarer was passiert bei relativen Zellbezügen?
Und was Lug sag ist mir schnurtz-piep. Nur weil er es nicht besser weiß oder kann ist es noch lange nicht richtig
Gruß
Nepumuk
Anzeige
AW: Select o not Select, das ist die Frage
12.08.2011 20:34:07
ing.grohn
Hallo Nepumuk,
ich war gerad dabei Dir zu folgen (markieren, färben..)
Alles klar,
Dann hab ich die Zeile With Range("C34") auf With Range("$C$34") gesetzt.
Nun wird in die bedingte Formatierung ISTFEHLER(A4) geschrieben.
Für mich schwer nachvollziehbar?!!
Aber mit der Lösung von Dir kann ich arbeiten
Mit freundlichen Grüßen
Albrecht
AW: Select o not Select, das ist die Frage
12.08.2011 21:12:22
Tino
Hallo,
bei der Bedingten Formatierung richtet sich die Formel nach der gerade aktiven Zelle aus,
als ob Du diese von Hand eingibst, also sozusagen wird ein Offset eingefügt der im Bezug zur gerade aktiven Zelle steht. (bei relativer Adresse in der Formel)
Diesen Offset- Wert kann man auch berechnen.
Beispiel anhand von Deinem Code.
Sub Makro3()
Dim Formel As String
Dim FormelA1 As String
Dim OffsetR As Long, OffsetC As Long
'Range("C34").Select 
'Cells(34, 3).Select 
'With Cells(34, 3) 
With Range("C34")
    .Formula = Formel
    .FormatConditions.Delete
    .FormatConditions.Add _
               Type:=xlCellValue, _
               Operator:=xlEqual, _
               Formula1:="1"
    .FormatConditions(1).Interior.ColorIndex = 33
    .FormatConditions.Add _
               Type:=xlCellValue, _
               Operator:=xlEqual, _
               Formula1:="0"
    .FormatConditions(2).Interior.ColorIndex = 3
    
    'Offset zur aktiven Zelle 
    OffsetR = -.Row + ActiveCell.Row
    OffsetC = -.Column + ActiveCell.Column
    
    .FormatConditions.Add _
               Type:=xlExpression, _
               Formula1:="=ISTFEHLER(" & _
               .Offset(OffsetR, OffsetC).Address(0, 0) & _
               ")"
    
    .FormatConditions(3).Interior.ColorIndex = 22

End With
End Sub
Gruß Tino
Anzeige
Dann hast du wohl nicht gelesen, was ich...
12.08.2011 23:54:50
Luc:-?
…geschrieben habe, Nepumuk,
sonst sag mir mal, was daran falsch war (außer das Albrecht aus Versehen Lug geschrieben hat und das möglicherweise nicht ganz richtig verstanden haben mag)!
Gruß Luc :-?
AW: Dann hast du wohl nicht gelesen, was ich...
13.08.2011 01:18:42
Tino
Hallo,
"Deshalb hatte ich ja auch in meinem Bsp die jeweilige Zelle aktiviert"
Auf Select u. Activate kann man fasst immer verzichten,
dank Nepumuk weist Du ja jetzt auch wie es in diesem Fall geht.
Gruß Tino
Was soll diese AW,...
13.08.2011 18:49:31
Luc:-?
…Tino! :-(
1. Warst nicht du angesprochen!
2. Hast du im Prinzip das Gleiche geantwortet wie ich!
3. Hat auch Nepumuk zuerst genau das Gleiche geschrieben!
Denkst du, mir ist nicht klar, dass man auch nur eine Zelle markieren u.alle Formatbedingungen mit Relativbezügen darauf ausgerichtet neu schreiben kann?! Warum sollte ich das aber tun, wenn die schon alle richtig da sind und ich nur das jeweilige Format anpassen/vereinzeln will? Da ist doch ein temporäres Application.ScreenUpdating=False viel sinnvoller!
Ja, hab ich's hier (fast) nur noch mit Ignoranten zu tun?! Dich hat die Variant-Diskussion verärgert und N. die Sache mit den Variablennamen. Zu meiner Frühzeit war's kaum üblich, etwas später fing's mit seiner Methode an, strukturiertes Pgmieren kam auf. Heute gilt seine spezielle Bezeichnungsmethode als überholt, nicht aber projektspezifische Namenskonventionen, was bei Teamwork ja eigentl auch unerlässlich ist. Um so etwas geht's bei diesen Dingen hier aber zumeist nicht. Deshalb muss man die Methode nicht verabsolutieren, zumal das auch MS nicht tut.
Übrigens hatte ich eigentl nicht erwartet, dass du auf meine letzte Bemerkung noch dort antwortest (wohnst doch im Netz! ;->). Aber damit ist dann auch klar, dass wir diametral entgegengesetzte Ansätze vertreten bzw Ziele haben!
„Viel Feind', viel Ehr'!” :->
SchöWE, Luc :-?
Anzeige
AW: Was soll diese AW,...
13.08.2011 20:21:29
Tino
Hallo,
1. kann ich schreiben wem ich will und was ich will.
2. habe ich erst nach Deinem Beitrag an Nepumuk gelesen
3. wenn Du meinst es mit Select lösen zu müssen, dann bleib halt dabei ist mir wurscht.
Wenn Du mal größere Projekte in Angriff nimmst wirst ja sehen was da rauskommt.
Und zu Deiner Sache "wohnst doch im Netz!" Du würdest staunen von wo man heute überall her eine Antwort schreiben kann.
Gruß Tino
AW: Luc, Nepumuk, Tino
14.08.2011 11:22:31
ing.grohn
Hallo Ihr Streithansel,
ich hatte nicht beabsichtigt, dass diese Diskussion so ausartet. Eigentlich hatte ich doch nur _ eine "einfache" Frage gestellt. Im Nachhinein sehe ich, dass man das auch kompliziert sehen kann. Für jemanden wie mich ist es in der Tat nicht immer leicht, alles nachzuvollziehen. Ich war froh auf meinen jetzigen Kenntnisstand gelangt zu sein und relativ sicher mit With-Formulierungen und Set- Anweisungen umgehen zu können. Unverständlich wird es dann plötzlich, wenn ein Text scheinbar willkürlich verändert wird. Und

"=ISTFEHLER(C58)"
ist nichts anderes als ein String. Scheinbar kann man sich aber auf nichts verlassen. Bisher war ich der Meinung, dort wo der Cusor in der Tabelle steht, ist die ActiveCell und wenn ich sage With Range("C34") ist immer diese Zelle gemeint. Wenn ich da Text reinschreibe steht da auch Text (ich weiss es wird ein String an eine Eigenschaft (oder ist es ein Object?) übergeben) . Man kann es sehen wie man will: m. E. ist das schlicht ein "Fehler" in Excel: Auch wenn es ohne Select funktioniert (ala Nepumuk und Tino, dafür recht herzlichen Dank) werde ich in solchen Situationen wieder Selektierer werden (ist einfacher) und hoffen, dass es nicht noch mehr dieser Stolperfallen gibt.
Ich wünsche Euch allen einen schönen Sonntag
Mit freundlichen Grüßen
Albrecht
PS: Luc, könnt ichs reseten, ich täts (das g), tschuldigung!
Anzeige
Nicht so wild, Albrecht,
15.08.2011 15:12:43
Luc:-?
…sah bloß etwas makaber aus… ;->
Mich ärgert nur diese Mischung aus Arroganz und Ignoranz, die möglicherweise zur Verwirrung von Lern­willigen wie dir beiträgt. Frage mich nur, wie diese Herren zu ihrem Urteil kommen, wenn sie weder mich noch meine Arbeit kennen. Was hier zu lesen ist, ist nur die Spitze des Eisbergs. Aber, wer Augen hat zu lesen, könnte schon ahnen, dass es da noch mehr gibt. Einige wissen das auch; immerhin bin ich hier schon im 7. Jahr dabei…
Gruß + schöWo, Luc :-?
AW: Nicht so wild, Albrecht,
15.08.2011 15:45:06
ing.grohn
Hallo Luc,
stimmt!
sah bischen nach "Lug und..." aus.
Viel mir nach Deiner Antwort wie Schuppen von den Augen
Freud ick hör dir trapsen (hihihi)
dito
Albrecht
Anzeige
Du nu wieder! ;-)) Gruß owT
16.08.2011 17:17:38
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige