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

Funktion erstellen

Funktion erstellen
Udo
Hallo @ all!
Mal wieder eine Frage die ich so "noch" nicht lösen konnte.
Ich möchte für eine häufig gebrauchte Berechnung eine Funktion erstellen.
Dabei soll folgendes passieren: Wenn in Zelle A1 eine 1 Steht, dann schreibe bitte ein A, steht da eine 2, dann schreibe ein B, steht da eine 3, dann schreibe ein C usw...... es sollen ca 50 - 60 Werte abgetragt werden und dann der jeweilige Buchstabe zugeordnet (ausgegeben) werden.
Alle Werte müssen auf A, B oder C geprüft werden.
Oder gibt es noch eine andere Lösung?
Schon einmal danke für die Überlegungen und Hilfestellungen.
Gruß Udo
VBA oder z.B. mit Wahl() ...
23.02.2011 19:05:59
Matthias
Hallo Udo
zum Einen könnte man das so versuchen allerdings mit Limit 29 Werte (XL2000)
in 2010 weiß ich das nicht!
Tabelle1

 AB
124X
212L
319S

Formeln der Tabelle
ZelleFormel
B1=WAHL(A1;"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"K";"L";"M";"N";"O";"P";"Q";"R";"S";"T";"U";"V";"W";"X";"Y";"Z";"Ä";"Ö";"Ü")
B2=WAHL(A2;"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"K";"L";"M";"N";"O";"P";"Q";"R";"S";"T";"U";"V";"W";"X";"Y";"Z";"Ä";"Ö";"Ü")
B3=WAHL(A3;"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"K";"L";"M";"N";"O";"P";"Q";"R";"S";"T";"U";"V";"W";"X";"Y";"Z";"Ä";"Ö";"Ü")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
evtl mit Oder() verbinden um mehr als 29 Argumente/Werte zu benutzen
Zum Zweiten mit einer Select Case Anweisung als VBA-Code
Gruß Matthias
Anzeige
2-3 Bytes kürzer :-))
23.02.2011 19:11:25
Reinhard
Hallo Matthias,
A3: =ZEICHEN(64+A3)
GRuß
Reinhard
=";-"&WIEDERHOLEN(")";2) oT
23.02.2011 19:20:14
Matthias
AW: VBA oder z.B. mit Wahl() ...
23.02.2011 19:38:37
Udo
Hallo Matthias
erst einmal vielen Dank für die mal wieder schnelle Hilfe.
Ich habe mit Select versucht
Public Function ANR(AG As Double) As Double Select Case AG Case AG Is 11 = 2 Case AG Is 12 = 2 Case AG Is 21 = 3 Case AG Is 34 = 1 Case AG Is 41 = 2 Case AG Is 55 = 3 End Select End Function Aber er funktioniert nicht. Nimm mir doch bitte mal das Brett weg :-).
Gruß Udo
AW: VBA oder z.B. mit Wahl() ...
23.02.2011 19:43:26
Reinhard
Hallo Udo,
wo sind da A,B,C?
Ich fühl mich veräppelt :-(
Gruß
Reinhard
AW: VBA oder z.B. mit Wahl() ...
23.02.2011 19:47:38
Udo
Jou jou jou....
das kommt davon wenn man sich unverständlich ausdrückt (ich). Aber trozdem vielen Dank für die Hilfe.
Also es sind ca. 60 Werte denen dann entweder A, B oder C zugeordnet werden soll. Es kann auch 1, 2 oder 3 sein, das ist egal.
Der Ansatz mit Select Case scheint mir am einfachsten zu sein, weil innerhalb der Funktion auch wieder einfach umgestellt werden kann falls sich etwas ändert.
Gruß Udo
Anzeige
Case AG Is 11 = 2 bedeutet für AG, dass es...
24.02.2011 00:50:05
Luc:-?
…den Wert von AG haben muss, der außerdem gleich dem Wahrheitswert sein muss, der sich beim Vgl von 11 mit 12 ergibt, was im Prinzip aber völlig egal ist, weil ohnehin nichts davon ausgelöst wdn soll, Udo…?!!!
Kapiert? Klartext: Du hast syntaktisch akzeptablen Code-Müll produziert! Scheinst wohl nicht zu den Leuten zu gehören, die Gebrauchsanweisungen lesen?! Denn in der VBEditor-Hilfe wird die Syntax dieses Konstrukts erläutert. Warum sollen wir das hier wiederholen?! Die Zuweisung des Ergebnisses an die Fkt fehlt auch → also „zurück auf Anfang“…!
Gruß Luc :-?
Anzeige
VBA gut ist ja der Kracher...! :-)) ohne Worte
24.02.2011 00:52:06
Luc:-?
:-?
AW: VBA gut ist ja der Kracher...! :-)) ohne Worte
24.02.2011 06:51:04
Udo
Guten Morgen Luc !
Auch wenn der Betreff stimmt, wirklich weiter geholfen hat mir das nicht.
Es gibt eben keine dummen Fragen, sondern nur dumme Antworten. Wenn Dich so etwas stört, dann solltes Du hier besser nicht die Fragen lesen und schon gar nicht antworten. Man könnte ja flasche Schlüsse daraus ziehen.
Den guten Willen zum helfen hattest Du ja wenigstens also noch einmal vielen Dank für die "versuchte" Hlfe.
Gruß Udo
Mein lieber Udo,...
24.02.2011 13:40:58
Luc:-?
…jegliche Form von „beleidigter Leberwurst“ nutzt dir gar nichts, denn hier wird auch ein eigener Beitrag von dir erwartet und der besteht lt.Forumsregeln nun mal in der Benutzung der Archiv-Recherche und anderer zugängl Hilfsmittel wie VBE-Hilfe, xlHilfe usf bevor du hier 'ne Frage stellst…
Es scheint unter euch „Jungspunden“ allmählich Mode zu wdn, die Regeln nicht lesen und a la Karl-Theo möglichst wenig Eigenarbeit investieren zu wollen. Hier ist aber nicht Hausaufgaben.de o.ä.!
Außerdem dient die Level-Angabe nicht der Befriedigung persönl Eitelkeit (ist ja auch kein akademischer Titel! ;->), sondern uns zur (relativ groben) Orientierung, wie viel wir an Wissen beim Frager voraussetzen können. Folglich ist auch das mit den „dummen Fragen“ äußerst relativ, denn die sind nur Anfängern gestattet, die das auch mitteilen, nicht aber (Möchtegern-)Profis! Und solche Strukturen wie Select Case gehören nun mal zu den Basiskenntnissen in jeder Pgmiersprache, oder was hast du gedacht, dass VBA ist…?!
Unter diesen Umständen konnte ich nur hoffen, dass du meine Erläuterung dessen, was VBA deinem Code entnimmt, verstehst und dir das dann auch zu( bessere)r Einsicht verhilft.
Fazit: Hier besser keine „dicke Lippe“ riskieren, denn du willst ja was wissen und (hoffentl) lernen, nicht wir, obwohl wir hier Letzteres natürl auch tun, oft allerdings nur etwas über allzu menschliche Befindlichkeiten… :->
Gruß Luc :-?
Anzeige
AW: VBA gut ist ja der Kracher...! :-)) ohne Worte
24.02.2011 06:51:19
Udo
Guten Morgen Luc !
Auch wenn der Betreff stimmt, wirklich weiter geholfen hat mir das nicht.
Es gibt eben keine dummen Fragen, sondern nur dumme Antworten. Wenn Dich so etwas stört, dann solltes Du hier besser nicht die Fragen lesen und schon gar nicht antworten. Man könnte ja flasche Schlüsse daraus ziehen.
Den guten Willen zum helfen hattest Du ja wenigstens also noch einmal vielen Dank für die "versuchte" Hlfe.
Gruß Udo
AW: select Case
24.02.2011 06:24:53
hary
Hallo Udo
so?

Public Function ANR(AG As Range)
Select Case AG.Value
Case 11, 12, 41: ANR = 2
Case 21, 55: ANR = 3
Case 34: ANR = 1
End Select
End Function

Tabelle1
 AB
1112
2122
3213
4341
5412
6553

verwendete Formeln
Zelle Formel Bereich
B1 =ANR(A1) 
B2 =ANR(A2) 
B3 =ANR(A3) 
B4 =ANR(A4) 
B5 =ANR(A5) 
B6 =ANR(A6) 

Tabellendarstellung in Foren Version 5.30


gruss hary
Anzeige
AW: select Case
24.02.2011 06:44:23
Udo
Hallo Hary!
Vielen Dank, ja, dass könnte so klappen. Jedenfalls bin ich der Lösung einen großen Schritt näher gekommen.
Gruß Udo
AW: select Case
24.02.2011 06:57:05
hary
Hallo Udo
kleine einbesserung.

Public Function ANR(AG As Range)
Select Case AG.Value
Case 11, 12, 41: ANR = 2
Case 21, 55: ANR = 3
Case 34: ANR = 1
Case Else: ANR = "" 'wenn Fall nicht zutrifft eintrag nix, sonst steht da eine 0
End Select
End Function

gruss hary
AW: select Case
24.02.2011 07:03:12
Udo
Hallo Hary,
ich hab's ausprobiert und es hat geklappt. Der Fall 0 kann nicht eintreten wenn ich sauber programiere, denn für alle Möglichkteiten die eingegeben werden können (Prüfung über Gültigkeit) muss ich ja 1, 2 oder 3 als Ergebnis vorgeben.
Nochmals Danke und Gruß in den frühen Morgen.
Nur der frühe Vogel fängt den Wurm oder ?
Anzeige
AW: select Case
24.02.2011 07:06:17
hary
Moin Udo
Bei dem frost kommt man nicht an die Wuermer ;-)
schoen das es passt
gruss hary
AW: Funktion erstellen
23.02.2011 19:08:31
Reinhard
Hallo Udo,
"Alle Werte müssen auf A, B oder C geprüft werden."
?, ich dachte auf 1,2,3 ?
A1; =WENN(ODER(A1=1;A1=2;A1=3);WAHL(A1;"A";"B";"C");"X")
A1: =((A2=1)+(A2=2)+(A2=3))*A2
Gruß
Reinhard
per VBA
23.02.2011 19:14:39
CitizenX
Hallo Udo,
wenn nur Text umgewandelt werden soll dann vlt so:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" And Not IsNumeric(Target) Then
    Application.EnableEvents = False
    Target = Asc(UCase(Target)) - 64
    Application.EnableEvents = True
End If
End Sub
Grüße
Steffen
Anzeige
AW: Funktion erstellen
23.02.2011 19:18:28
jowe
Hallo Udo,
kann so gemacht werden:
Formel in B1: =Zeichen(64+A1)
Soll heißen: Das Zeichen mit der Ordnungsziffer 64 der ASCII-Tabelle ist das '@', danach fängt das Alphabet mit den Großbuchstaben an. Ergo Zeichen 64+1, die 1 aus A1, ergibt Zeichen 65 also 'A'.
Die Formel kannst Du runterkopieren.
Jochen
=sverweis()
23.02.2011 20:37:27
ransi
HAllo MAttias
Das ist aber doch der klassische Fall für =sverweis()
Leicht zu pflegen und einfach zu handlen.
ransi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige