Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenüberprüfung - Gültigkeitswerte aus Array

Datenüberprüfung - Gültigkeitswerte aus Array
07.04.2017 15:41:31
Franz
Liebe Excel- und VBA-Speziallisten,
über Array in Tabelle schreiben und diese Range (A1:A letzte Zeile) dann in die Datenüberprüfung zu schreiben funktioniert zwar, würde mir aber diesen Umweg gerne ersparen.
Leider führt nachfolgender Testcode aber dazu, dass Dezimalzahlen mit der Join Funktion nicht richtig geteilt werden.
Sub Test()
Dim arrFarbe As Variant
Dim ListeFarben As Variant
arrFarbe = Array("15,11", "18,56", "20,33")
'ListeFarben = Join(arrFarbe, " ")
With ActiveSheet.Cells(1, 1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:= _
Join(arrFarbe, ",")
'.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:= _
Join(arrFarbe, vbCrLf)
'.Add Type:=xlValidateList, Formula1:=Join(arrFarbe, ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

Was mache ich da falsch, für sämtliche Lösungsansätze wäre ich euch sehr dankbar.
LG
Franz

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Punkt "15.11" statt Komma "15,11" (owT)
07.04.2017 15:58:47
EtoPHG

AW: Punkt "15.11" statt Komma "15,11" (owT)
07.04.2017 17:37:20
Franz
Hallo EtoPHG,
danke für deine schnelle Antwort! Leider stehen dann die Zahlen im Dropdownfeld aber auch mit Punkt und nicht mit Komma zur Auswahl. Ich benötige im Ausgabefeld jedoch eine Dezimalzahl ohne umständlich über Replace oder benutzerdefinierte Formatierung den Punkt zu ersetzen.
LG
Albert
15.11 statt "15,11" oder "15.11".....
10.04.2017 08:23:14
EtoPHG
Hallo Franz oder Albert oder wer auch immer...
Wie kann es sein, dass, bei deinen angegebenen Levels, der Unterschied zwischen Wert und Anzeige immer noch unbekannt ist?
1. Warum schreibst du "Strings" in die Werte-Liste, wenn du Zahlen willst?
2. VBA versteht nur (american)-English und da ist der Decimalseparator der Punkt und der Listseparator das Komma.
3. Angezeigt wird der Zahlenwert, mit dem vom Betriebssystem übernommenen Decimalseparator, wenn in den Excel-Optionen nicht explicit was anderes eingstellt ist. Das dürfte in deinem Fall (bei der Regionaleinstellung Deutsch/Deutschland) das Komma sein.
4. Ergo: ...= Array(15.11, 18.56, ...
Gruess Hansueli
Anzeige
AW: 15.11 statt "15,11" oder "15.11".....
10.04.2017 19:40:34
Franz
Hallo Hansueli
Wer macht sich schon selber gerne schlechter als er ist?
zu 1: bisher viele verschiedene Varianten versucht - Strings liefert der Makrorekorder "15.11, 17.25, 19.45"!
Decimalseparator hin und her - auch Array(5.11, 18.56) führt nicht zum gewünschten Erfolg, vermutlich muss ich beim Umweg über die Range bleiben.
Aber vielleicht kannst du ja den nachfolgenden Code auf eine eine funktionierende Lösung ändern.
Sub Test()
Dim arrFarbe
arrFarbe = Array(15.1, 16.2, 17.5)
With ActiveSheet.Cells(1, 1).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:= _
Join(arrFarbe, " ")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Danke und LG
Franz (VN) Albert (NN)
Anzeige
AW: 15.11 statt "15,11" oder "15.11".....
11.04.2017 08:26:56
EtoPHG
Hallo Franz,
Sorry ich bin raus.
Warum du statt
Join(arrFarbe, ",")

jetzt plötzlich
Join(arrFarbe, " ")

codest bleibt mir verborgen. Ebenso nebulös, warum du das Problem nicht mit benanntem, dynamischen Bereich löst, statt VBA einzusetzen.
Gruess Hansueli
AW: 15.11 statt "15,11" oder "15.11".....
11.04.2017 18:47:05
Franz
Hallo HansUeli,
habe es mit verschiedenen Delimiter-Varianten versucht, um vielleicht doch zu einer für die Validierung brauchbaren Zeichenfolge zu kommen, mit Ganzzahlen funktioniert es ja!
Trotzdem vielen Dank für deine Hilfe
LG
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige