[Excel-VBA] Userform für bedingte Formatierung

Jacka

Erfahrenes Mitglied
Hallöchen!

Da Excel bei der bedingten Formatierung bekanntlich auf 3 Einstellunge beschränkt
ist, habe ich ein kleines Macro geschrieben mit dem es möglich ist, mehr Bereiche zu
definieren. Man markiert den entsprechenden Bereich und startet dann das Macro.
Es erscheint ein Userform, in dem man die Wertebereiche eingeben und entprechende Farben dazu auswählen kann. Die Farbauswahl mache ich mit Hilfe von Textboxen, klickt man hinein erscheint die Farbpallette aus der man die Farbe auswählt, klickt man OK enhält die Textbox die eben definierte Farbe als Hintergrund.
Hier der Code für eine Textbox:

Code:
Private Sub TextBox8_enter()
Dim b As Boolean

Sheets("Farbauswahl").Visible = False
Worksheets("Farbauswahl").Activate

b = Application.Dialogs(xlDialogPatterns).Show
If b = True Then
Worksheets("Farbauswahl").Range("A1").Activate
UserForm1.TextBox8.BackColor = ActiveCell.Interior.Color
FarbeText8 = ActiveCell.Interior.ColorIndex
Else
MsgBox "Der Dialog wurde abgebrochen"
End If

End Sub

Er benötigt also dafür eine Tabelle mit Namen "Farbauswahl".
Diese erstelle ich beim starten des Userforms:

Code:
Sub UserFormAnzeigen()
UserForm1.Show

Worksheets.Add.Name = "Farbauswahl"

End Sub

Aber genau da liegt das Problem!
Er sagt folgendes:
"Kann einem Blatt nicht den gleichen Namen geben wie einem anderen Blatt, einer Objekbiliothek oder einer Arbeitsmappe, auf die VBA Bezug nimmt."
Nun muss ich aber erst einmal die Tabelle erstellen, damit er sie auch benutzten kann.

Wie mache ich denn das jetzt?
Und noch eine Frage: Wie kann ich eine Tabelle trotz geöffnetem Userform noch bearbeiten?

Würde mich sehr über Hilfe freuen!
Vielen Dank und Grüße,
Jacka
 
Nenn die Tabelle doch einfach mal zum Testen anders, beispielsweise "Farbauswahltabelle".

Damit der Benutzer noch auf die Tabelle zugreifen kann, währen eine Userform angezeigt ist, musst du die Userform "modeless" aufrufen:
Code:
UserForm1.Show vbModeless
 
Hi!

Danke für deine Antwort!

Weiß jetzt warum er die Fehlermeldung macht.
Wenn ich das Macro bei der gleichen Arbeitsmappe noch einmal starte hat er bereits die Tabelle und hat auch schon darauf zugegriffen!
Kann man das vorher abfragen? z.B. mit einer if-Abfrage?`

Grüße,
Jacka
 

Neue Beiträge

Zurück