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

if abfrage monster verkürzen

if abfrage monster verkürzen
27.04.2017 08:53:52
Daniel
Hallo zusammen,
mir missfällt mir die riesen "If"-Abfrage und ich bin mir sicher Ihr habt da eine wesentlich elegantere Lösung.

If Me.Material = "10346" Then
arr_no = 0
End If
If Me.Material = "10415" Then
arr_no = 1
End If
If Me.Material = "10618" Then
arr_no = 2
End If
If Me.Material = "11921" Then
arr_no = 3
End If
If Me.Material = "11988" Then
arr_no = 4
End If
If Me.Material = "12391" Then
arr_no = 5
End If
If Me.Material = "12568" Then
arr_no = 6
End If
If Me.Material = "12755" Then
arr_no = 7
End If
If Me.Material = "12758" Then
arr_no = 8
End If
If Me.Material = "13421" Then
arr_no = 9
End If
If Me.Material = "13565" Then
arr_no = 10
End If
If Me.Material = "13779" Then
arr_no = 11
End If
If Me.Material = "13915" Then
arr_no = 12
End If

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: if abfrage monster verkürzen
27.04.2017 08:54:27
Daniel
vielen Dank im Vorraus ;)
AW: if abfrage monster verkürzen
27.04.2017 09:04:36
UweD
Hallo
ungetestet...
arr_no = WorksheetFunction.Match(Me.material, Array(10346, 10415, 10618, 11921, 11988, 12391, 12568,usw), 0) - 1

LG UweD
AW: if abfrage monster verkürzen
27.04.2017 09:28:46
Daniel
Hi
da gibt's natürlich verschiedene Varianten.
Wenn nur die Zahlenfolge 0-x oder 1-x zugeordnet werden soll, dann mit Worksheetfunction.Match wie von Uwe gezeigt.
Wenn auch andere Werte zugeordnet werden sollen, dann:
etwas eleganter mit Select Case:
Select Case Me.Material
Case "10346": arr_no = 0
Case "10415": arr_no = 1
Case "13915": arr_no = 12
Case else: arr_no = 999
End Select

Generell würde ich solle Daten in einer HilfsTabelle hinterlegen:
A____ | B
10346 | 0
10415 | 1
...
13915 | 12
und dann die Werte zuordnen mit:
arr_no = Worksheetfunction.VLookUp(Me.Material, Sheets("Tabelle1").Range("A:B"),2 ,0)

oder
arr_no = Sheets("Tabelle1").Columns(1).Find(what:=Me.Material, lookat:=xlwhole).Offset(0, 1).value
das hätte den Vorteil, dass du weitere Materialnummern ergänzen und löschen kannst, ohne in den Code eingreifen zu müssen.
Gruß Daniel
Anzeige
AW: if abfrage monster verkürzen
28.04.2017 07:32:19
Daniel
vielen Dank im Vorraus ;)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige