Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Application.Dialogs(xlDialogPatterns

Forumthread: VBA Application.Dialogs(xlDialogPatterns

VBA Application.Dialogs(xlDialogPatterns
19.10.2020 21:58:52
Stephan
Hallo Zusammen,
ich habe folgendes Problem:
ich habe ein Formular in Excel aus dem ich ein Farbauswahlfenster mit dem Befehl Application.Dialogs(xlDialogPatterns).Show aufrufe , eine Farbe auswähle und dann eine Zelle in einem Versteckten Tabellenblatt einfärben möchte. Und hier ist auch schon das Problem. Sobald ich den Befehl aufrufe, wird die Hintergrundfarbe der gerade aktiven Zelle geändert (nicht die Zelle in dem versteckten Tabellenblatt).
Gibt es eine Möglichkeit per VBA Zellen in dem versteckten Blatt vor aufrufen des Befehls anzusprechen so das nur genau die vorher definierte Zelle eingefärbt wird ?
z.B. sheets("Tabellenblatt1").Range("A1")
Gruß Stephan
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Application.Dialogs(xlDialogPatterns
19.10.2020 23:14:21
ralf_b
versuch mal das hier, mittel call Colordialog wird der Farbauswahldialog geöffnet mit der Ausgangsfarbe der Zelle A1.
Wenn eine Farbe ausgewählt wurde, dann wird diese in A1 übernommen. Ungetestet!
Sub ColorDialog()
'Spende aus dem Internet
'Create variables for the color codes
Dim FullColorCode As Long
Dim RGBRed As Integer
Dim RGBGreen As Integer
Dim RGBBlue As Integer
'Get the color code from the cell named "RGBColor"
FullColorCode = Range("A1").Interior.Color
'Get the RGB value for each color (possible values 0 - 255)
RGBRed = FullColorCode Mod 256
RGBGreen = (FullColorCode \ 256) Mod 256
RGBBlue = FullColorCode \ 65536
'Open the ColorPicker dialog box, applying the RGB color as the default
If Application.Dialogs(xlDialogEditColor).Show _
(1, RGBRed, RGBGreen, RGBBlue) = True Then
'Set the variable RGBColorCode equal to the value
'selected the DialogBox
FullColorCode = ActiveWorkbook.Colors(1)
'Set the color of the cell named "RGBColor"
Range("A1").interior.Color = FullColorCode  'hier wir die Farbe angewandt
Else
'Do nothing if the user selected cancel
End If
End Sub

Anzeige
AW: VBA Application.Dialogs(xlDialogPatterns
20.10.2020 09:53:22
Stephan
Hallo Ralf_B
dein Code funktioniert perfekt. Vielen Dank !
Gruß
Stephan
danke für die rückmeldung -owT
20.10.2020 10:30:53
ralf_b
;
Anzeige

Infobox / Tutorial

VBA Farbauswahl in Excel: Anwendung von Application.Dialogs


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem Du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste in den Projektexplorer auf dein Projekt, wähle „Einfügen“ und dann „Modul“.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub ColorDialog()
        Dim FullColorCode As Long
        Dim RGBRed As Integer
        Dim RGBGreen As Integer
        Dim RGBBlue As Integer
    
        FullColorCode = Range("A1").Interior.Color
    
        RGBRed = FullColorCode Mod 256
        RGBGreen = (FullColorCode \ 256) Mod 256
        RGBBlue = FullColorCode \ 65536
    
        If Application.Dialogs(xlDialogEditColor).Show(1, RGBRed, RGBGreen, RGBBlue) = True Then
            FullColorCode = ActiveWorkbook.Colors(1)
            Range("A1").Interior.Color = FullColorCode
        End If
    End Sub
  4. Ändere die Zielzelle: Anstatt Range("A1") kannst Du jede gewünschte Zelle oder ein verstecktes Tabellenblatt ansprechen, indem Du den Code entsprechend anpasst.

  5. Führe das Makro aus: Du kannst das Makro aus dem VBA-Editor heraus oder über die Excel-Oberfläche starten.


Häufige Fehler und Lösungen

  • Problem: Die aktive Zelle wird gefärbt, anstatt die gewünschte Zelle.

    • Lösung: Stelle sicher, dass Du die korrekte Zelle in Deinem Code angibst, indem Du Sheets("Tabellenblatt1").Range("A1") verwendest.
  • Problem: Der Farbauswahldialog öffnet sich nicht.

    • Lösung: Überprüfe, ob Du das richtige Dialogfeld aufrufst, z.B. Application.Dialogs(xlDialogEditColor).Show.

Alternative Methoden

  • Excel VBA Color Picker: Anstelle von Application.Dialogs(xlDialogPatterns) kannst Du Application.Dialogs(xlDialogEditColor) verwenden, um einen Farbauswahldialog zu öffnen, der mehr Optionen bietet.
  • UserForm mit Farbauswahl: Du kannst auch eine UserForm erstellen, die einen Farbauswahl-Button enthält, um die gewünschte Farbe auszuwählen.

Praktische Beispiele

  • Färbe eine Zelle auf einem versteckten Blatt:

    Sub ColorHiddenCell()
        Dim FullColorCode As Long
        FullColorCode = Application.Dialogs(xlDialogEditColor).Show
        If FullColorCode Then
            Sheets("VerstecktesBlatt").Range("B2").Interior.Color = FullColorCode
        End If
    End Sub
  • Färbe mehrere Zellen: Du kannst eine Schleife verwenden, um mehrere Zellen in einem Bereich zu färben, indem Du den Dialog einmal öffnest und die Farbe anwendest.


Tipps für Profis

  • Verwende Farb-Codes: Du kannst Farbcodes in Hexadezimal- oder RGB-Format direkt in Deinen Code einfügen, um spezifische Farben zu verwenden.
  • Erstelle eine Farbauswahl-UserForm: Wenn Du regelmäßig Farben auswählst, kann eine benutzerdefinierte UserForm mit einem Farbauswahl-Interface effizienter sein.

FAQ: Häufige Fragen

1. Wie kann ich die Hintergrundfarbe einer Zelle ändern, ohne die aktive Zelle zu beeinflussen?
Du kannst die Zielzelle direkt im Code ansprechen, wie z.B. Sheets("Tabellenblatt1").Range("A1").Interior.Color = FullColorCode.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code funktioniert in den meisten Excel-Versionen, die VBA unterstützen, einschließlich Excel 2010 und neuer.

3. Was ist der Unterschied zwischen xlDialogPatterns und xlDialogEditColor?
xlDialogPatterns öffnet ein Dialogfeld zur Auswahl von Mustern, während xlDialogEditColor einen Farbauswahldialog öffnet, in dem Du spezifische Farben auswählen kannst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige