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

VLookUp auf Tabelle in Modul referenzieren?

VLookUp auf Tabelle in Modul referenzieren?
30.07.2008 20:25:01
Andreas
Hallo Herber Fans,
ich habe eine Frage zum Thema VlookUp in VBA. In letzter Zeit habe ich den VlookUp als Alternative zu mehrfachen IF Prüfungen entdeckt auch schon mit Freude im Einsatz.
Was mir dabei jedoch nicht immer behagt, ist der Umstand, daß die Tabellen auf die VlookUp zugreifen soll auf einem Tabellenblatt hinterlegt sind. Dadurch sind sie anfällig für Änderungen, Umbenennungen, etc. Auch wenn ich das Modul mit einem VlookUp Code exportieren und woanders als „Paket“ importieren möchte, muß ich das Tabellenblatt mitnehmen. Mein Interesse gilt nun der Frage: Kann ich direkt in VBA (!) eine Art Tabelle hinterlegen und VlookUp darauf zugreifen lassen?
https://www.herber.de/bbs/user/54220.xls
Vielen Dank für Eure Anregungen und Ideen auf diesem Neuland?!
Einen schönen restlichen Mittwoch- Abend wünscht Euch,
Andreas Hanisch aus Berlin.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VLookUp auf Tabelle in Modul referenzieren?
30.07.2008 20:45:53
Herbert
Hi,
du kannst ein Array mit den Werten füllen und darauf ganz normal mit dem
VLookup zugreifen.
mfg Herbert

AW: VLookUp auf Tabelle in Modul referenzieren?
30.07.2008 20:51:05
Reinhard
Hi Andreas,
vielleicht so:

Sub SVerweisTest()
Dim SprachVersion As String, strNrSprache, strSprache, S As Integer
strNrSprache = Array("1", "49")
strSprache = Array("Englisch", "Deutsch")
SprachVersion = Application.International(xlCountrySetting)
For S = 0 To UBound(strNrSprache)
If strNrSprache(S) = SprachVersion Then
Debug.Print "Ihr Excel ist folgende Sprachversion: " & strSprache(S)
Exit For
End If
Next S
If S > UBound(strNrSprache) Then Debug.Print "Ihr Excel ist folgende Sprachversion: unbekannt"
End Sub


Gruß
Reinhard

Anzeige
AW: VLookUp auf Tabelle in Modul referenzieren?
30.07.2008 20:52:00
ransi
HAllo Andreas
Die Einstellungen kannst du auch ohne sie irgendwo zwischenzuspeichern auslesen.
Starte die Sub Aufruf() mal in einem leeren Tabellenblatt.
Kannst du das auf deine Verhältnisse anpassen ?
Option Explicit
Dim Arr As Variant
Dim L As Long
Private Declare Function GetSystemDefaultLCID Lib _
    "kernel32" () As Long

Private Declare Function GetLocaleInfo Lib "kernel32" _
    Alias "GetLocaleInfoA" (ByVal Locale As Long, _
    ByVal LCType As Long, ByVal lpLCData As String, _
    ByVal cchData As Long) As Long

Const LOCALE_ILANGUAGE = &H1
Const LOCALE_SLANGUAGE = &H2
Const LOCALE_SENGLANGUAGE = &H1001
Const LOCALE_SABBREVLANGNAME = &H3
Const LOCALE_SNATIVELANGNAME = &H4
Const LOCALE_ICOUNTRY = &H5
Const LOCALE_SCOUNTRY = &H6
Const LOCALE_SENGCOUNTRY = &H1002
Const LOCALE_SABBREVCTRYNAME = &H7
Const LOCALE_SNATIVECTRYNAME = &H8
Const LOCALE_IDEFAULTLANGUAGE = &H9
Const LOCALE_IDEFAULTCOUNTRY = &HA
Const LOCALE_IDEFAULTCODEPAGE = &HB
Const LOCALE_SLIST = &HC
Const LOCALE_IMEASURE = &HD
Const LOCALE_SDECIMAL = &HE
Const LOCALE_STHOUSAND = &HF
Const LOCALE_SGROUPING = &H10
Const LOCALE_IDIGITS = &H11
Const LOCALE_ILZERO = &H12
Const LOCALE_SNATIVEDIGITS = &H13
Const LOCALE_SCURRENCY = &H14
Const LOCALE_SINTLSYMBOL = &H15
Const LOCALE_SMONDECIMALSEP = &H16
Const LOCALE_SMONTHOUSANDSEP = &H17
Const LOCALE_SMONGROUPING = &H18
Const LOCALE_ICURRDIGITS = &H19
Const LOCALE_IINTLCURRDIGITS = &H1A
Const LOCALE_ICURRENCY = &H1B
Const LOCALE_INEGCURR = &H1C
Const LOCALE_SDATE = &H1D
Const LOCALE_STIME = &H1E
Const LOCALE_SSHORTDATE = &H1F
Const LOCALE_SLONGDATE = &H20
Const LOCALE_STIMEFORMAT = &H1003
Const LOCALE_IDATE = &H21
Const LOCALE_ILDATE = &H22
Const LOCALE_ITIME = &H23
Const LOCALE_ICENTURY = &H24
Const LOCALE_ITLZERO = &H25
Const LOCALE_IDAYLZERO = &H26
Const LOCALE_IMONLZERO = &H27
Const LOCALE_S1159 = &H28
Const LOCALE_S2359 = &H29
Const LOCALE_SDAYNAME1 = &H2A
Const LOCALE_SDAYNAME2 = &H2B
Const LOCALE_SDAYNAME3 = &H2C
Const LOCALE_SDAYNAME4 = &H2D
Const LOCALE_SDAYNAME5 = &H2E
Const LOCALE_SDAYNAME6 = &H2F
Const LOCALE_SDAYNAME7 = &H30
Const LOCALE_SABBREVDAYNAME1 = &H31
Const LOCALE_SABBREVDAYNAME2 = &H32
Const LOCALE_SABBREVDAYNAME3 = &H33
Const LOCALE_SABBREVDAYNAME4 = &H34
Const LOCALE_SABBREVDAYNAME5 = &H35
Const LOCALE_SABBREVDAYNAME6 = &H36
Const LOCALE_SABBREVDAYNAME7 = &H37
Const LOCALE_SMONTHNAME1 = &H38
Const LOCALE_SMONTHNAME2 = &H39
Const LOCALE_SMONTHNAME3 = &H3A
Const LOCALE_SMONTHNAME4 = &H3B
Const LOCALE_SMONTHNAME5 = &H3C
Const LOCALE_SMONTHNAME6 = &H3D
Const LOCALE_SMONTHNAME7 = &H3E
Const LOCALE_SMONTHNAME8 = &H3F
Const LOCALE_SMONTHNAME9 = &H40
Const LOCALE_SMONTHNAME10 = &H41
Const LOCALE_SMONTHNAME11 = &H42
Const LOCALE_SMONTHNAME12 = &H43
Const LOCALE_SABBREVMONTHNAME1 = &H44
Const LOCALE_SABBREVMONTHNAME2 = &H45
Const LOCALE_SABBREVMONTHNAME3 = &H46
Const LOCALE_SABBREVMONTHNAME4 = &H47
Const LOCALE_SABBREVMONTHNAME5 = &H48
Const LOCALE_SABBREVMONTHNAME6 = &H49
Const LOCALE_SABBREVMONTHNAME7 = &H4A
Const LOCALE_SABBREVMONTHNAME8 = &H4B
Const LOCALE_SABBREVMONTHNAME9 = &H4C
Const LOCALE_SABBREVMONTHNAME10 = &H4D
Const LOCALE_SABBREVMONTHNAME11 = &H4E
Const LOCALE_SABBREVMONTHNAME12 = &H4F
Const LOCALE_SABBREVMONTHNAME13 = &H100F
Const LOCALE_SPOSITIVESIGN = &H50
Const LOCALE_SNEGATIVESIGN = &H51
Const LOCALE_IPOSSIGNPOSN = &H52
Const LOCALE_INEGSIGNPOSN = &H53
Const LOCALE_IPOSSYMPRECEDES = &H54
Const LOCALE_IPOSSEPBYSPACE = &H55
Const LOCALE_INEGSYMPRECEDES = &H56
Const LOCALE_INEGSEPBYSPACE = &H57
Const LOCALE_USER_DEFAULT = &H400
Const LOCALE_SYSTEM_DEFAULT As Long = &H400



Private Sub Aufruf()
L = 0
Redim Arr(L)
GLI LOCALE_SLIST, "Listentrennzeichen"
GLI LOCALE_IMEASURE, "0=metrisch, 1=US"
GLI LOCALE_SDECIMAL, "Dezimaltrennzeichen"
GLI LOCALE_STHOUSAND, "Tausendertrennzeichen"
GLI LOCALE_SGROUPING, "Gruppierung links vom Komma"
GLI LOCALE_IDIGITS, "Zahlen hinter dem Komma"
GLI LOCALE_ILZERO, "führende Nullen"
GLI LOCALE_SCURRENCY, "Währungsymbol"
GLI LOCALE_SINTLSYMBOL, "Währung nach ISO 4217"
GLI LOCALE_SMONDECIMALSEP, "Währungstrennzeichen"
GLI LOCALE_SMONTHOUSANDSEP, "Währungstausendertrennzeichen"
GLI LOCALE_SMONGROUPING, "Währungsgruppierung"
GLI LOCALE_ICURRDIGITS, "Zahlen hinter dem Komma (Pf)"
GLI LOCALE_ICURRENCY, "Anzeige des Währungssymbols"
GLI LOCALE_INEGCURR, "Negatives Währungsvorzeichen"
GLI LOCALE_SDATE, "Datumstrennzeichen"
GLI LOCALE_STIME, "Zeittrennzeichen"
GLI LOCALE_SSHORTDATE, "Kurzes Datumsformat"
GLI LOCALE_SLONGDATE, "Langes Datumsformat"
GLI LOCALE_STIMEFORMAT, "Zeitformat"
GLI LOCALE_ITIME, "12/24 Stunden"
GLI LOCALE_S1159, "AM-Zeichen"
GLI LOCALE_S2359, "PM-Zeichen"
GLI LOCALE_SPOSITIVESIGN, "Positives Vorz."
GLI LOCALE_SNEGATIVESIGN, "Negatives Vorz."
GLI LOCALE_ILANGUAGE, "Sprach ID"
GLI LOCALE_SLANGUAGE, "Lokalisierter Sprachname"
GLI LOCALE_SENGLANGUAGE, "Engl. Äquivalent"
GLI LOCALE_SABBREVLANGNAME, "Abgekürzt"
GLI LOCALE_SNATIVELANGNAME, "Sprache in Landessprache"
GLI LOCALE_ICOUNTRY, "Ländercode"
GLI LOCALE_SCOUNTRY, "Ländername"
GLI LOCALE_SENGCOUNTRY, "Ländername in Engl."
GLI LOCALE_SABBREVCTRYNAME, "Abgekürzt"
GLI LOCALE_SNATIVECTRYNAME, "Land in Landessprache"
GLI LOCALE_IDEFAULTLANGUAGE, "Standard Sprach-ID"
GLI LOCALE_IDEFAULTCOUNTRY, "Standard Landes-ID"
GLI LOCALE_IDEFAULTCODEPAGE, "Standard Codeseite"
GLI LOCALE_SNATIVEDIGITS, "gebräuchliche Zahlen"
GLI LOCALE_IINTLCURRDIGITS, "Zahlen hinter Komma nach ISO"
GLI LOCALE_IDATE, "Datums Gruppierung"
GLI LOCALE_ILDATE, "Reihenfolge langes Datumsformat"
GLI LOCALE_ICENTURY, "Jahr in 2/4 Ziffern"
GLI LOCALE_ITLZERO, "führende Null für Zeiten"
GLI LOCALE_IDAYLZERO, "führende Null für Tage"
GLI LOCALE_IMONLZERO, "führende Null für Monate"
GLI LOCALE_SDAYNAME1, "Langer Name für Mo"
GLI LOCALE_SDAYNAME2, "Langer Name für Di"
GLI LOCALE_SDAYNAME3, "Langer Name für Mi"
GLI LOCALE_SDAYNAME4, "Langer Name für Do"
GLI LOCALE_SDAYNAME5, "Langer Name für Fr"
GLI LOCALE_SDAYNAME6, "Langer Name für Sa"
GLI LOCALE_SDAYNAME7, "Langer Name für So"
GLI LOCALE_SABBREVDAYNAME1, "Abgk. Name für Mo"
GLI LOCALE_SABBREVDAYNAME2, "Abgk. Name für Di"
GLI LOCALE_SABBREVDAYNAME3, "Abgk. Name für Mi"
GLI LOCALE_SABBREVDAYNAME4, "Abgk. Name für Do"
GLI LOCALE_SABBREVDAYNAME5, "Abgk. Name für Fr"
GLI LOCALE_SABBREVDAYNAME6, "Abgk. Name für Sa"
GLI LOCALE_SABBREVDAYNAME7, "Abgk. Name für So"
GLI LOCALE_SMONTHNAME1, "Langer Name für Jan"
GLI LOCALE_SMONTHNAME2, "Langer Name für Feb"
GLI LOCALE_SMONTHNAME3, "Langer Name für Mae"
GLI LOCALE_SMONTHNAME4, "Langer Name für Mai"
GLI LOCALE_SMONTHNAME5, "Langer Name für Apr"
GLI LOCALE_SMONTHNAME6, "Langer Name für Jun"
GLI LOCALE_SMONTHNAME7, "Langer Name für Jul"
GLI LOCALE_SMONTHNAME8, "Langer Name für Aug"
GLI LOCALE_SMONTHNAME9, "Langer Name für Sep"
GLI LOCALE_SMONTHNAME10, "Langer Name für Okt"
GLI LOCALE_SMONTHNAME11, "Langer Name für Nov"
GLI LOCALE_SMONTHNAME12, "Langer Name für Dez"
GLI LOCALE_SABBREVMONTHNAME1, "Abgk. Name für Jan"
GLI LOCALE_SABBREVMONTHNAME2, "Abgk. Name für Feb"
GLI LOCALE_SABBREVMONTHNAME3, "Abgk. Name für Mae"
GLI LOCALE_SABBREVMONTHNAME4, "Abgk. Name für Apr"
GLI LOCALE_SABBREVMONTHNAME5, "Abgk. Name für Mai"
GLI LOCALE_SABBREVMONTHNAME6, "Abgk. Name für Jun"
GLI LOCALE_SABBREVMONTHNAME7, "Abgk. Name für Jul"
GLI LOCALE_SABBREVMONTHNAME8, "Abgk. Name für Aug"
GLI LOCALE_SABBREVMONTHNAME9, "Abgk. Name für Sep"
GLI LOCALE_SABBREVMONTHNAME10, "Abgk. Name für Okt"
GLI LOCALE_SABBREVMONTHNAME11, "Abgk. Name für Nov"
GLI LOCALE_SABBREVMONTHNAME12, "Abgk. Name für Dez"
GLI LOCALE_IPOSSIGNPOSN, "Format. für pos. Währung"
GLI LOCALE_INEGSIGNPOSN, "Format. für neg. Währung"
GLI LOCALE_IPOSSYMPRECEDES, "Präfix für pos. Währungsvorzeichen"
GLI LOCALE_IPOSSEPBYSPACE, "Trennz. bei pos. Währungsbetrag"
GLI LOCALE_INEGSYMPRECEDES, "Präfix für neg. Währungsvorzeichen"
GLI LOCALE_INEGSEPBYSPACE, "Trennz. bei neg. Währungsbetrag"
Range("a1").Resize(UBound(Arr)) = WorksheetFunction.Transpose(Arr)
End Sub

Private Sub GLI(ID, Txt)
Redim Preserve Arr(L)
Arr(L) = Txt & ": " & GetEntry(ID)
L = L + 1
End Sub

Private Function GetEntry(ByVal ID&) As String
Dim LCID&, Result&, Buffer$, Length&
LCID = GetSystemDefaultLCID()
Length = GetLocaleInfo(LCID, ID, Buffer, 0) - 1
Buffer = Space(Length + 1)
Result = GetLocaleInfo(LCID, ID, Buffer, Length)
GetEntry = Left$(Buffer, Length)
End Function





ransi

Anzeige
AW: VLookUp auf Tabelle in Modul referenzieren?
31.07.2008 00:14:00
Erich
Hi Ransi,
eine kleine Korrektur:
Die letzte Zeile von "Aufruf" sollte sein
Range("a1").Resize(UBound(Arr) + 1) = WorksheetFunction.Transpose(Arr)
Ohne "+1" fehlt der letzte Eintrag von Arr (nullbasiert).
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige