Announcement

Collapse
No announcement yet.

VB.NET, Excel Programmierung: Bedingte Formatierung - Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VB.NET, Excel Programmierung: Bedingte Formatierung - Problem

    Hallo zusammen,

    ich habe folgendes Problem. Ich möchte über mein Programm eine bedingte Formatierung in ein Excel Sheet eintragen. Die bedingte Formatierung liegt darin, dass ich prüfen möchte, ob Text1 oder Text2 in dem Feld stehen. Falls ja, soll der Hintergrund der Zelle seine Farbe ändern. b1 und b2 sind die Texte, die ich über Variablen in die Bedingung einfügen möchte.

    Daher habe ich folgendes probiert:
    xlsArbeitsblatt.Range("I15").FormatConditions.Add( Excel.XlFormatConditionType.xlExpression,Formula1: ="ODER(I15="Chr(34) & b1 & Chr(34) ";I15=" Chr(34) & b2 & Chr(34) ")")

    xlsArbeitsblatt.Range("I15").FormatConditions(2).I nterior.ColorIndex = 44

    Leider ergibt das in der Excel Zelle im Worksheet:
    ="ODER(I15="hoch";I15="mittelhoch")" was leider falsch ist. Eigentlich müsste es ja
    =ODER(I15="hoch";I15="mittelhoch") heißen Also die " um den kompletten Ausdruck herum (vor dem ODER und nach der ) müssten weg. Das klappt aber leider nicht. Wenn ich die " vor dem ODER wegnehme, erkennt er die Formel in VB nicht mehr und meldet mir einen Fehler, weil er natürlich das ODER nicht kennt.

    Könnt ihr mir vielleicht helfen bzw. einen kleinen Tipp dazu geben?

    Vielen Dank für eure Hilfe!
    Zuletzt editiert von Testuser16; 14.08.2008, 08:35.

  • #2
    Ich habe zwar nicht ganz kapiert, was Du machen willst, aber wer füllt denn die Daten in das Feld ein, ein User oder Dein Programm? Im Falle des zweiteren, wäre es doch einfacher, selbst die Bedingung zu überprüfen und dementsprechend zu formatieren.

    Ansonsten, versuchs mal mit der englischen Funktionsbezeichnung (also OR statt ODER) vielleicht klappt das ja.

    Gruß
    Martin
    Zuletzt editiert von M.Dietz; 14.08.2008, 10:23. Reason: Tippfehlerkorrektur

    Comment


    • #3
      Die Daten werden in das Feld über eine Liste über Daten -> Gültigkeit eingefügt. Das heißt ich weiß erstmal noch nicht, welche Daten letztendlich dort hineinkommen.

      Daher muss ich die bedingte Formatierung nutzen und über das Oder(....) kann ich mehr als 3 Bedingungen definieren.

      Das VB Programm generiert die Bedingte Formatierung und im Excel Sheet, welches dann später vom Benutzer ausgefüllt wird, kann dieser über eine Drop Down Liste Werte eintragen.
      Ungefähr klar geworden?

      Comment


      • #4
        Ok, ich habs jetzt hinbekommen. Der Code muss lauten:

        xlsArbeitsblatt.Range("I15").FormatConditions.Add( Excel.XlFormatConditionType.xlExpression, , Formula1:="=ODER(I15=" & Chr(34) & a1 & Chr(34) & ";I15=" & Chr(34) & a2 & Chr(34) & ")")

        Jetzt habe ich nur das Problem, wenn a2 eine Zahl ist, dann erkennt er eine eingegebene Zahl nicht.

        Die Bedingung lautet ja
        =ODER(A1="Test";A1="1")

        Müsste aber in diesem Fall
        =ODER(A1="Test";A1=1) lauten.

        Da weiß ich noch nicht genau, wie ich das löse. Wenn ich das Feld in Excel als "Text" definiere, dann meckert er, wenn ich eine Zahl eintrage. Weil er dann sagt: "Die Zahl in dieser Zelle ist als Text definiert". Na mal schauen

        Danke für eure Hilfe!

        Comment

        Working...
        X