Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Bedingte formate auflisten
#11
Hallöchen,

nur mal eine weitere Frage - Hast Du eventuell 64 bit Office installiert?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#12
Hallo Schauan,

Ja Ich Habe 64 bit Office
Antworten Top
#13
Hallöchen,

Problem bei den AddIns ist, dass sie eventuell nicht für 64 bit ausgelegt sind. Mal sehn, ob ich morgen früh was zusammenschreibe Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • schwarzeteufel
Antworten Top
#14
Hallöchen,

ich habe Dir hier mal einen code angepasst. Da wäre noch die Frage, was Du bei Schrift haben willst. Die Schriftart ist ja fix, aber z.B. Fett oder Kursiv wäre einstellbar. Der Code erzeugt eine neue Mappe und trägt dort die Formatierungen des zuvor aktiven Blattes ein.

Code:
Option Explicit

Function CFSignature(ByRef cf As Variant) As String
'Variablendeklaration
Dim aReturn(1 To 3) As String
'Formatierung wird angewendet auf
aReturn(1) = cf.AppliesTo.Address
'Formatierungstyp
aReturn(2) = FCTypeFromIndex(cf.Type)
On Error Resume Next
  'Formel
  aReturn(3) = cf.Formula1
'Array zu einem String zusammensetzen
CFSignature = Join(aReturn, vbNullString)
End Function

Sub ShowConditionalFormatting_4()
'Variablendeklarationen
Dim cf As Variant
Dim rCell As Range
Dim colFormats As Collection
Dim i As Long
Dim wsOutput As Worksheet
Dim aOutput() As Variant
'Collection initialisieren
Set colFormats = New Collection
'Schleife ueber alle Zellen mit bedingter Formatierung
For Each rCell In ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions).Cells
  'Schleife ueber alle Bedingungen
  For i = 1 To rCell.FormatConditions.Count
    'Mit den Bedingungen
    With rCell.FormatConditions
      'Fehlerbehandlung zur Vermeidung von Mehrfacheintraegen
      'anhand des mit CFSignature festgelegten Keys
      On Error Resume Next
        'Bedingung (i) der Collection hinzufuegen
        'Hinweis: der Item enthaelt alle moeglichen
        'Einstellungen zu der Bedingung.
        colFormats.Add .Item(i), CFSignature(.Item(i))
      On Error GoTo 0
    'Ende Mit den Bedingungen
    End With
  'Ende Schleife ueber alle Bedingungen
  Next i
'Ende Schleife ueber alle Zellen mit bedingter Formatierung
Next rCell
'Ausgabearray dimensionieren - hier begrenzt auf 7 Felder / Einstellungen
ReDim aOutput(1 To colFormats.Count + 1, 1 To 7)
'neue Datei erstellen und erstes Blatt zuweisen
Set wsOutput = Workbooks.Add.Worksheets(1)
'Spaltenbezeichnungen festlegen
aOutput(1, 1) = "Type": aOutput(1, 2) = "Range"
aOutput(1, 3) = "StopIfTrue": aOutput(1, 4) = "Formual1"
aOutput(1, 5) = "Formual2"
aOutput(1, 6) = "Color"
aOutput(1, 7) = "Font"
'Schleife ueber alle CollectionItems
For i = 1 To colFormats.Count
  'Collection-Item an cf zuweisen
  Set cf = colFormats.Item(i)
  'allgemeine Einstellungen uebernehmen
  aOutput(i + 1, 1) = FCTypeFromIndex(cf.Type)
  aOutput(i + 1, 2) = cf.AppliesTo.Address
  aOutput(i + 1, 3) = cf.StopIfTrue
  'Fehlerbehandlung fuer spezielle Einstellungen
  'die nicht in allen bed. Formaten vorhanden sind
  'Hinweis: Koennte man alternativ anhand des Typs realisieren
  On Error Resume Next
    aOutput(i + 1, 4) = "'" & cf.Formula1
    aOutput(i + 1, 5) = "'" & cf.Formula2
    aOutput(i + 1, 6) = "'" & cf.Interior.Color
    aOutput(i + 1, 7) = "'" & cf.Font.FontStyle
  On Error GoTo 0
'Ende Schleife ueber alle CollectionItems
Next i
'Ausgabe in das Blatt
wsOutput.Range("A1").Resize(UBound(aOutput, 1), UBound(aOutput, 2)).Value = aOutput
'Spltenbreite anpassen
wsOutput.UsedRange.EntireColumn.AutoFit
End Sub

Function FCTypeFromIndex(lIndex As Long) As String
'Typen bedingter Formatierungen
Select Case lIndex
  Case 12: FCTypeFromIndex = "Above Average"
  Case 10: FCTypeFromIndex = "Blanks"
  Case 1: FCTypeFromIndex = "Cell Value"
  Case 3: FCTypeFromIndex = "Color Scale"
  Case 4: FCTypeFromIndex = "DataBar"
  Case 16: FCTypeFromIndex = "Errors"
  Case 2: FCTypeFromIndex = "Expression"
  Case 6: FCTypeFromIndex = "Icon Sets"
  Case 14: FCTypeFromIndex = "No Blanks"
  Case 17: FCTypeFromIndex = "No Errors"
  Case 9: FCTypeFromIndex = "Text"
  Case 11: FCTypeFromIndex = "Time Period"
  Case 5: FCTypeFromIndex = "Top 10?"
  Case 8: FCTypeFromIndex = "Unique Values"
  Case Else: FCTypeFromIndex = "Unknown"
End Select
End Function
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
Danke Schauan,

Das funktioniert. Schriftart hätte ich FETT. Wo und was muss ich ändern.

Nochmals vielen Dank.
Antworten Top
#16
Hallöchen,
Das ist schon so berücksichtigt 17
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • schwarzeteufel
Antworten Top
#17
OK.

Danke Schauan.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste