Discussion:
Kriterien aus "Gültige Daten" auslesen mit VBA
(zu alt für eine Antwort)
Thomas Mangold
2005-05-19 17:32:25 UTC
Permalink
In einer Zelle werden nur bestimmte Daten zugelassen. (Mit
Daten>Gültigkeit>Zulassen>Liste: Quelle: A;D;F;)

Nun möchte ich per VBA die Quelle auslesen. Es soll also ein Vektor mit
den Daten A;D;F in diesem Bespiel entstehen.

Wei geht das?


Thomas
Stefan Onken
2005-05-19 18:07:12 UTC
Permalink
hallo Thomas,
Post by Thomas Mangold
In einer Zelle werden nur bestimmte Daten zugelassen. (Mit
Daten>Gültigkeit>Zulassen>Liste: Quelle: A;D;F;)
Nun möchte ich per VBA die Quelle auslesen. Es soll also ein
Vektor mit den Daten A;D;F in diesem Bespiel entstehen.
Wei geht das?
Thomas
MsgBox Range("A1").Validation.Formula1

Gruß
stefan
Thomas Mangold
2005-05-19 23:39:28 UTC
Permalink
Hallo Stefan
Post by Stefan Onken
Post by Thomas Mangold
In einer Zelle werden nur bestimmte Daten zugelassen. (Mit
Daten>Gültigkeit>Zulassen>Liste: Quelle: A;D;F;)
Nun möchte ich per VBA die Quelle auslesen. Es soll also ein
Vektor mit den Daten A;D;F in diesem Bespiel entstehen.
MsgBox Range("A1").Validation.Formula1
Danke für den Tipp. Ich weiß jetzt allerdings nicht, wie ich auf ein
Feld zugrifen kann

also z.B. auf das zweite Feld = "D"

Gibt es da eine Möglichkeit?


Gruß
Thomas
Stefan Onken
2005-05-20 05:05:20 UTC
Permalink
hallo Thomas,
Post by Thomas Mangold
Hallo Stefan
Danke für den Tipp. Ich weiß jetzt allerdings nicht, wie ich
auf ein Feld zugrifen kann
also z.B. auf das zweite Feld = "D"
Gibt es da eine Möglichkeit?
ja, zB mit Split (gibt es erst ab XL2000):

liste = Split(Range("A1").Validation.Formula1, ";")
For i = 0 To UBound(liste)
MsgBox liste(i)
Next

Gruß
stefan
Thomas Mangold
2005-05-21 21:34:48 UTC
Permalink
Hallo Stefan,
Post by Stefan Onken
Post by Thomas Mangold
Daten>Gültigkeit>Zulassen>Liste: Quelle: A;D;F
liste = Split(Range("A1").Validation.Formula1, ";")
For i = 0 To UBound(liste)
MsgBox liste(i)
Next
Das funktioniert soweit.

Ich habe mich nicht so ganz klar ausgedrückt, was ich eigentlich will.
Ich möchte den Mausklick nachmachen, wenn ich auf den Pfeil neben der
Zelle A1 und dann z.B. auf das zweite Feld (also D) klicke. D.h. die
Tabelle wird so gefiltert (Autofiler), dass nur die Zeilen mit dem
Eintrag D in Spalte A angezeigt werden. Das möchte ich mir VBA erzeugen.

Kannst du mir da nochmals weiterhelfen?

Gruß
Thomas
Stefan Onken
2005-05-23 18:35:42 UTC
Permalink
hallo Thomas,

Thomas Mangold schrieb in der newsgroup
Post by Thomas Mangold
Ich habe mich nicht so ganz klar ausgedrückt, was ich eigentlich will.
Ich möchte den Mausklick nachmachen, wenn ich auf den Pfeil neben der
Zelle A1 und dann z.B. auf das zweite Feld (also D) klicke. D.h. die
Tabelle wird so gefiltert (Autofiler), dass nur die Zeilen mit dem
Eintrag D in Spalte A angezeigt werden. Das möchte ich mir VBA erzeugen.
Kannst du mir da nochmals weiterhelfen?
liste = Split(Range("A1").Validation.Formula1, ";")
Range("A1") = liste(1)

so würde in A1 das D geschrieben (der Index bei liste ist 0 für den
ersten Wert aus Daten/Gültigkeit, 1 für den zweiten Wert usw).

Anstatt eines festen Wertes bei liste() geht auch eine Variable, die du
per VBA einstellst:

feld
liste = Split(Range("A1").Validation.Formula1, ";")
Range("A1") = liste(feld)

Gruß
stefan



Gruß
Post by Thomas Mangold
Thomas
--
Immer auf dem aktuellen Stand mit den Newsgroups von freenet.de:
http://newsgroups.freenet.de
Alexander Wolff
2005-05-19 18:42:50 UTC
Permalink
Post by Thomas Mangold
In einer Zelle werden nur bestimmte Daten zugelassen. (Mit
Daten>Gültigkeit>Zulassen>Liste: Quelle: A;D;F;)
A:A;D:D;F:F würde dies wohl heißen, aber "Vereinigungen ... dürfen in dem
Kriterium Gültigkeitsprüfung nicht verwendet werden". Bei Vergabe eines
Namens kommt eine ähnliche Fehlermeldung.
--
Gruss Alexander (WinXP Home SP1 - Office 2000 SP3) ---5----6----5----7-2
John Smith
2005-05-19 18:50:57 UTC
Permalink
Ich erhalte wöchentlich umfangreiche Daten mit Ländercodes, z.B.
A B
1 D sollte EU da erscheinen
2 CH auch EU
3 VE sollte LA (für Lateinamerka)
4 AR sollte LA (für Lateinamerka)
5 BR sollte LA (für Lateinamerika)
6 US sollte NA (für Amerika)
7 CDN sollte NA (für Amerika)
... ...

Das erlaubt mir dann eben die andern Daten sinnvoll auch nach Kontinent zu
Filtern.
Hoffe ein Guru von Euch hilft mir schnell mit den Formeln oder Code dafür.

Sehr dankbar im Voraus, Mick
Eberhard Funke
2005-05-21 14:24:24 UTC
Permalink
Post by John Smith
1 D sollte EU da erscheinen
2 CH auch EU
3 VE sollte LA (für Lateinamerka)
4 AR sollte LA (für Lateinamerka)
5 BR sollte LA (für Lateinamerika)
6 US sollte NA (für Amerika)
7 CDN sollte NA (für Amerika)
Hallo John,

Dein Frage hat mit dem Thema des Threads nichts zu tun, daher hast Du
bisher auch keine Antwort erhalten. Bei neuem Thema mußt Du einen eigenen
Thread aufmachen.

Annahme: Die Ländercodes stehn in Spalte B, in Zeile 1 Überschriften.
Dann probier mal diesen Makro:

Sub Ländercodes_zu_Kontinenten()
Dim Ber As Range
Dim Zelle As Range
Dim lastRow As Long

lastRow = Range("B65536").End(xlUp).Row
Set Ber = Range("B2:B" & lastRow)
For Each Zelle In Ber
Select Case Zelle.Value
Case "D", "CH"
Zelle.Value = "EU"
Case "VE", "AR", "BR"
Zelle.Value = "LA"
Case "US", "CDN"
Zelle.Value = "NA"
Case Else
MsgBox "Code für " & Zelle.Value _
& " noch nicht festgelegt"
End Select
Next Zelle
End Sub
--
Gruß Eberhard
XL 2000
Loading...