Bedingte Formatierung einfügen und ändern

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Sutarex.

    Bedingte Formatierung einfügen und ändern

    Hallo zusammen,

    ich stehe vermutlich vor einem simplen Problem, wo ich aber aktuell keinen Schritt vorwärts komme.

    Ich möchte eine bestimmte Formatierung in ein Blatt einfügen.
    Das Blatt weise ich wie folgt zu:

    VB.NET-Quellcode

    1. Dim oXLApp As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application
    2. Dim oWbk As Microsoft.Office.Interop.Excel.Workbook = oXLApp.Workbooks.Add
    3. Dim oS As Microsoft.Office.Interop.Excel.Sheets = oWbk.Worksheets
    4. Dim oWks = DirectCast(oS(1), Microsoft.Office.Interop.Excel.Worksheet)


    Ich habe mir aus dem Makro Recorder folgendes versucht umzuändern:

    VB.NET-Quellcode

    1. With oWks.Range("I2:I" & oWks.Range("A2000").End(Microsoft.Office.Interop.Excel.XlDirection.xlUp).Row)
    2. .FormatConditions.Add(Type:=Microsoft.Office.Interop.Excel.XlFormatConditionType.xlCellValue, Operator:=Microsoft.Office.Interop.Excel.XlFormatConditionOperator.xlEqual, Formula1:="=""LLE""")
    3. .FormatConditions(.FormatConditions.Count).SetFirstPriority 'Option Strict on lässt spätes Binden nicht zu.
    4. .FormatConditions(1).Interior.PatternColorIndex = Microsoft.Office.Interop.Excel.Constants.xlAutomatic 'Option Strict on lässt spätes Binden nicht zu.
    5. .FormatConditions(1).Interior.ThemeColor = Microsoft.Office.Interop.Excel.XlThemeColor.xlThemeColorAccent3 'Option Strict on lässt spätes Binden nicht zu.
    6. .FormatConditions(1).Interior.TintAndShade = 0.399945066682943 'Option Strict on lässt spätes Binden nicht zu.
    7. End With


    Wie in den Zeilen auch erwähnt, zeigt er mit an, dass spätes Binden nicht zulässig ist.

    Leider stehe ich jetzt auf dem Schlauch und weiß nicht wie ich es abändern kann, sodass es funktioniert.

    Mein erster Ansatz war, die geaddete Formatierung einer Variable zuzuordnen und diese dann mit der Variable zu ändern. Aber das die neue Formatierung vom Typ Object ist, komme ich da auch nicht weiter.

    VB.NET-Quellcode

    1. Dim fcCondition As Microsoft.Office.Interop.Excel.FormatConditions
    2. fcCondition = DirectCast(oWks.Range("I2:I" & oWks.Range("A2000").End(Microsoft.Office.Interop.Excel.XlDirection.xlUp).Row).FormatConditions.Add(Type:=Microsoft.Office.Interop.Excel.XlFormatConditionType.xlCellValue, Operator:=Microsoft.Office.Interop.Excel.XlFormatConditionOperator.xlEqual, Formula1:="=""LLE"""), Microsoft.Office.Interop.Excel.FormatConditions)


    Hat jemand einen neuen Lösungsansatz?

    Vielen Dank und Grüße
    Jan

    Sutarex schrieb:

    und weiß nicht wie ich es abändern kann, sodass es funktioniert.
    Gib dieser Klasse, nicht aber dem Projekt, Option Strict Off, indem Du dies als 1. Zeile in die betreffende Datei einfügst:

    VB.NET-Quellcode

    1. Option Strict Off
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!