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

Typenunverträglichkeit - Verständnisfrage!?

Typenunverträglichkeit - Verständnisfrage!?
12.04.2019 13:18:01
Marco
Hallo Zusammen,
ich habe ein Problem bei einem kleinen Tool, dass ich mir gerade baue.
Hier bekomme ich eine Fehlermeldung wenn ich einen Wert aus einer Variable übergeben will. Was bei Interior.PatternColorIndex funktioniert löst bei Interior.Pattern einen Fehler der Typenunverträglichkeit aus.
Klar kann ich anstelle des setzen der Variable in der If-Abfrage auch den ganzen Befehl setzen, jedoch würde ich zum Verständnis gerne wissen was genau das Problem des Fehlers verursacht und was die Lösung beim jetzigen Vorgehen wäre.
Danke für Eure Hilfe - Beispieldatei inkl. User-Form anbei.
VG
Marco
Private Sub GoPattern_Click()
Dim Patternstyle As Variant
Dim patterncolor As String
Dim Zeile As Range, ZeilenNr As Integer
If Pat1.Value = True Then Patternstyle = "xlPatternChecker"
If Pat2.Value = True Then Patternstyle = "xlPatternCrissCross"
If Pat3.Value = True Then Patternstyle = "xlPatternDown "
If Pat4.Value = True Then Patternstyle = "xlPatternGray16"
If Pat5.Value = True Then Patternstyle = "xlPatternGray25"
If Pat6.Value = True Then Patternstyle = "xlPatternGray50"
If Pat7.Value = True Then Patternstyle = "xlPatternGray75"
If Pat8.Value = True Then Patternstyle = "xlPatternGray8"
If Pat9.Value = True Then Patternstyle = "xlPatternGrid"
If Pat10.Value = True Then Patternstyle = "xlPatternHorizontal"
If Pat11.Value = True Then Patternstyle = "xlPatternLightDown"
If Pat12.Value = True Then Patternstyle = "xlPatternLightVertical"
If Pat13.Value = True Then Patternstyle = "xlPatternSemiGray75"
If Pat14.Value = True Then Patternstyle = "xlPatternUp"
If Pat15.Value = True Then Patternstyle = "xlPatternVertical"
If Pat16.Value = True Then Patternstyle = "xlPatternNone"
If Col1.Value = True Then patterncolor = "1"
If Col2.Value = True Then patterncolor = "2"
If Col3.Value = True Then patterncolor = "3"
If Col4.Value = True Then patterncolor = "4"
If Col5.Value = True Then patterncolor = "5"
If Col6.Value = True Then patterncolor = "6"
If Col7.Value = True Then patterncolor = "7"
If Col8.Value = True Then patterncolor = "8"
For Each Zeile In Selection.Rows
'Zeile.Interior.Pattern = xlPatternGray16 

https://www.herber.de/bbs/user/129109.xlsm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Typenunverträglichkeit - Verständnisfrage!?
12.04.2019 13:21:27
PeterK
Hallo
Du ordnest Patternstyle eine String zu! Lass die "" weg (auch bei Patterncolor)
AW: Typenunverträglichkeit - Verständnisfrage!?
12.04.2019 13:28:07
Daniel
Kleiner Zusatz: patterncolor müsstest du dann auch als Zahl deklarieren (Long / Integer / Double).
Gruß
Daniel
AW: Typenunverträglichkeit - Verständnisfrage!?
12.04.2019 13:29:30
Marco
Hallo Daniel,
danke - ja, hatte es schon als integer deklariert.
VG
Marco
AW: Typenunverträglichkeit - Verständnisfrage!?
12.04.2019 13:28:36
Marco
Hallo Peter,
vielen Dank für die schnelle Antwort. Jetzt klappt alles!
Ich wünsche Dir ein schönes Wochenende.
VG
Marco
Ganz einfach, ...
12.04.2019 13:30:24
Luc:-?
…Marco,
du hast zwar patterncolor unnötigerweise als TextZahl angegeben, aber das kann von VBA automatisch in die benötigte Integer- bzw Long-Zahl umgewandelt wdn. Patternstyle hast du ebenfalls unnötigerweise einen Enumerationswert als Text übergeben und der kann von VBA nicht automatisch in den zugehörigen Long-Wert umgewandelt wdn.
Fazit: Übergib die Werte als Konstanten bzw Zahlen, nicht als Texte an die beiden Variablen!
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: Ganz einfach, ...
12.04.2019 13:44:59
Marco
Hallo Luc,
danke Dir - Ja habe das Problem schon behoben und auch verstanden.
Schönes Wochenende!
VG
Marco
AW: Typenunverträglichkeit - Verständnisfrage!?
12.04.2019 13:30:42
Nepumuk
Hallo Marco,
sowohl Pattern als auch PatternColorIndex sind Eigenschaften vom Type Variant Untertype Long. Also:
Patternstyle = xlPatternChecker
patterncolor = 1
Du versuchst einen String zu übergeben, das funktioniert zur Not beim PatternColorIndex da VBA da den String in eine Zahl umwandeln kann. Aber beim Pattern funktioniert das nicht mehr da VBA den Namen der Konstanten nicht in eine Zahl umwandeln kann.
Gruß
Nepumuk
AW: Typenunverträglichkeit - Verständnisfrage!?
12.04.2019 13:45:56
Marco
Hallo Nepumuk,
danke Dir - Ja habe das Problem schon behoben und auch verstanden.
Schönes Wochenende!
VG
Marco
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige