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

Enumerations Kombinieren

Enumerations Kombinieren
01.09.2023 09:52:49
Barolt
Hallo

ich habe für mich eine "Herausforderung".

In ein Module habe ich

Option Explicit
Enum Palette1
Farbe1 = 12264056
Farbe2 = 12320632
End Enum


Enum Palette2
Farbe1 = 12280852
Farbe2 = 1991880
End Enum



Sub Farbzuweisung()
Dim palettewahl As Byte
Dim farbe As Palette1

palettewahl = InputBox("Wählen Sie 1 für Palette '1' oder '2' für Palette 2")

If palettewahl = 1 Then
Dim farbe As Palette1
ElseIf palettewahl = 2 Then
Dim farbe As Palette2
End If

Tabelle1.Range("a1").Interior.Color = farbe.Farbe1

End Sub


Ich bekomme natürlich ein Fehlermeldung "mehrfach deklaration", (dim Farbe as ...) was auch logisch ist.

Ich suche eine möglichkeit um die Enums dynamisch zu gestalten und zwar so das die CodeZeile "Tabelle1.Range("a1").Interior.Color = farbe.Farbe1" immer gleich bleibt.

Für ein Denkanstoß wäre ich sehr dankbar:
Vielen Dank
Viele Grüße
Barolt

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Enumerations Kombinieren
01.09.2023 15:15:44
Ulf
modFarben


Option Explicit

Private Enum Palette1
Farbe_1 = 12264056
Farbe_2 = 12320632
End Enum

Private Enum Palette2
Farbe_1 = 12280852
Farbe_2 = 1991880
End Enum

Private Type Palette
Farbe1 As Long
Farbe2 As Long
End Type

'Mit Typ
Sub Farbzuweisung()
Dim intPalette As Integer
Dim Farbe As Palette

intPalette = InputBox("Wählen Sie 1 für Palette '1' oder '2' für Palette 2", "Farbe", 1)
Select Case intPalette
Case 1
Farbe.Farbe1 = Palette1.Farbe_1
Farbe.Farbe2 = Palette1.Farbe_2
Case 2
Farbe.Farbe1 = Palette2.Farbe_1
Farbe.Farbe2 = Palette2.Farbe_2
End Select
Tabelle1.Range("a1").Interior.Color = Farbe.Farbe1
End Sub


'Mit Klasse
Sub Farbzuweisung2()
Dim intPalette As Integer
Dim Farbe As New clsFarbe
intPalette = InputBox("Wählen Sie 1 für Palette '1' oder '2' für Palette 2", "Farbe", 1)
With Farbe
.Palettentyp = intPalette
End With
Tabelle1.Range("a1").Interior.Color = Farbe.Farbe1
End Sub

clsFarben


Option Explicit

Private Enum Palette
Farbe_1 = 12264056
Farbe_2 = 12320632
Farbe_3 = 12280852
Farbe_4 = 1991880
End Enum

Private mFarbe1 As Long
Private mFarbe2 As Long

Public Property Let Palettentyp(ByVal intPalette As Integer)
Select Case intPalette
Case 1
mFarbe1 = Palette.Farbe_1
mFarbe2 = Palette.Farbe_2
Case 2
mFarbe1 = Palette.Farbe_3
mFarbe2 = Palette.Farbe_4
End Select
End Property

Public Property Get Farbe1()
Farbe1 = mFarbe1
End Property

Public Property Get Farbe2()
Farbe2 = mFarbe2
End Property

hth
Ulf
Anzeige
AW: Enumerations Kombinieren
04.09.2023 10:10:21
Barolt
hallo Ulf

Vielen Dank für deine Lösungen! Vor allem die mit der Klasse finde ich klasse :)

Schöne Woche und danke schön

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige