Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Microsoft Microsoft Office

EXCEL IF Bedingung in VBA erstellen

Mitglied: user2k14

user2k14 (Level 1) - Jetzt verbinden

12.01.2015 um 13:28 Uhr, 1447 Aufrufe, 8 Kommentare

Hallo Zusammen,

Wie kann ich mehrere If Bedingungen in VBA abbilden und diese dann durch einen Button in Excel ausführen?

Ich habe eine IF Bedingungen in Excel erstellt, aber ich verliere die Übersicht, ich würde es gerne in VBA abbilden.

Könnt ihr mir bitte helfen? Das u.a. ist nur ein Beispiel.

=IF(ISNUMBER(FIND("SCBV",EZ2)),"Montag",IF(ISNUMBER(FIND("TRBV",EZ2)),"Dienstag",IF(ISNUMBER(FIND("TWBV",EZ2)),"Mittwoch",IF(ISNUMBER(FIND("TTBV",EZ2)),"Donnerstag",IF(ISNUMBER(FIND("TVBV",EZ2)),"MORGEN",IF(ISNUMBER(FIND("VZBV",EZ2)),"FRÜH",IF(ISNUMBER(FIND("VZBT",EZ2)),"NACHMITTAG",IF(ISNUMBER(FIND("PUBV",EZ2)),"MITTAG",IF(ISNUMBER(FIND("VYBV",EZ2)),"NEU",IF(ISNUMBER(FIND("VZAV",EZ2)),"HAUS",IF(ISNUMBER(FIND("RCBV",EZ2)),"NACHT",IF(ISNUMBER(FIND("RCBW",EZ2)),"NACHTT",IF(ISNUMBER(FIND("QRBV",EZ2)),"MALE",IF(ISNUMBER(FIND("QRBW",EZ2)),"HUBERT",IF(ISNUMBER(FIND("QTBV",EZ2)),"THOMAS",IF(ISNUMBER(FIND("QVBW",EZ2)),"THOMASa",IF(ISNUMBER(FIND("QVBV",EZ2)),"THOMASaa",IF(ISNUMBER(FIND("ZYVJ",EZ2)),"TD4",IF(ISNUMBER(FIND("HQVH",EZ2)),"THOMASb",IF(ISNUMBER(FIND("HQCH",EZ2)),"neuue",IF(ISNUMBER(FIND("ZYTV",EZ2)),"Bernd",IF(ISNUMBER(FIND("ZZTV",EZ2)),"Melanie",IF(ISNUMBER(FIND("IUTV",EZ2)),"Melanie",IF(ISNUMBER(FIND("HSCH",EZ2)),"Gregor",IF(ISNUMBER(FIND("HSVH",EZ2)),"MAX",IF(ISNUMBER(FIND("JCMJ",EZ2)),"Schuster",IF(ISNUMBER(FIND("JCDJ",EZ2)),"Mario",IF(ISNUMBER(FIND("JCCJ",EZ2)),"Nexu",IF(ISNUMBER(FIND("JCZJ",EZ2)),"Conny",IF(ISNUMBER(FIND("JCXJ",EZ2)),"Boris",IF(ISNUMBER(FIND("JCPJ",EZ2)),"Rain",IF(ISNUMBER(FIND("JCHJ",EZ2)),"Meld",IF(ISNUMBER(FIND("JCWJ",EZ2)),"NIX",IF(ISNUMBER(FIND("ZYAJ",EZ2)),"NEUOYY",IF(ISNUMBER(FIND("PUBT",EZ2)),"SIsss4",IF(ISNUMBER(FIND("JCYJ",EZ2)),"MEIEE",IF(ISNUMBER(FIND("VYBT",EZ2)),"SF4",IF(ISNUMBER(FIND("VZAT",EZ2)),"NEUTOO",IF(ISNUMBER(FIND("SQVH",EZ2)),"NEUEEEE",IF(ISNUMBER(FIND("IUVJ",EZ2)),"MONDEE",IF(ISNUMBER(FIND("TSVH",EZ2)),"NISCCH",IF(ISNUMBER(FIND("JCEJ",EZ2)),"NEUEUEEE",IF(ISNUMBER(FIND("JCBJ",EZ2)),"MONSSD",IF(ISNUMBER(FIND("OLVH",EZ2)),"NEBDEE",IF(ISNUMBER(FIND("HSCH",EZ2)),"NEUNDE")))))))))))))))))))))))))))))))))))))))))))))

Vielen Dank!!
Mitglied: Meierjo
12.01.2015, aktualisiert um 15:47 Uhr
Hallo

Warum löst du das nicht mit SVerweis??

In einer Tabelle könntest du die Variabeln definieren, und zB eine Spalte weiter die Namen dazu.
Beispiel
A B
SCBV Montag
TRBV Dienstag
TWBV Mittwoch
TTBV Donnerstag

Und dann kannst du per SVerweis die Daten aus dieser Tabelle in eine andere Tabelle übertragen
http://www.excellernen.de/excel-sverweis/


siehe http://www.file-upload.net/download-10134725/Mappe1.xlsx.html

In Tabelle 1 A1 kannst du deine 4 Buchstaben eingeben
In Tabelle 2 stehen die Referenzen dazu (nicht vollständig)

Gruss Urs
Bitte warten ..
Mitglied: user2k14
12.01.2015 um 15:53 Uhr
Hi danke für die Antwort, aber das hilft mir leider nicht...da das Wort z.Bsp. SCBV in einer Zelle steht mit anderen Wörtern....ich muss überrprüfen, ob SCBV dort drinnen steht, wenn ja dann soll er mir in einer anderen Zelle "Montag" hinschreiben...das funktioniert bisher mit der langen formel, aber das ist auch begrenzt...mit VBA gebe es da keine Grenze....

Lg

Dani
Bitte warten ..
Mitglied: colinardo
12.01.2015, aktualisiert um 17:19 Uhr
Hallo user2k14,
auch wenn ich hier eine Matrix-Formel vorziehen würde (siehe Biber), hier trotzdem der Vollständigkeit halber noch eine Demo mit einer Worksheet-VBA-Funktion:
demo_multipleif_test_259593.xlsm

01.
Function findValue(rngSearch As Range) 
02.
    Dim dic As Object, keys As Variant, f As Range 
03.
    Set dic = CreateObject("Scripting.Dictionary") 
04.
    'Werte und deren Entsprechung hinzufügen 
05.
    dic.Add "SCBV", "Montag" 
06.
    dic.Add "TRBV", "Dienstag" 
07.
    'usw. ..... 
08.
 
09.
    keys = dic.keys 
10.
    For i = 0 To dic.Count - 1 
11.
        'Suche Key in der Suchzelle 
12.
        Set f = rngSearch.Find(keys(i), LookIn:=xlValues, LookAt:=xlPart) 
13.
        'Wenn Wert gefunden wurde geben den entsprechenden Wert aus dem Dictionary zurück 
14.
        If Not f Is Nothing Then 
15.
            findValue = dic.Item(keys(i)) 
16.
        End If 
17.
    Next 
18.
    Set dic = Nothing 
19.
End Function
Grüße Uwe
Bitte warten ..
Mitglied: Biber
12.01.2015, aktualisiert um 16:42 Uhr
Moin user2k14,

Kollege Meierjo hat durchaus Recht mit seinem Lösungsansatz - es reicht eine reine Formellösung mit Index()/Vergleich oder alternativ SVerweis().

Beispiel:
Angenommen du würdest auf einem neuen Blatt - nennen wir es mal "Sheet2" in den zwei Spalten A und B deine Mappingwerte eintragen wie oben vorgeturnt.
Und ebenfalls angenommen, in der ersten Zeile stehen die Überschriften "Key" und "Value" oder wie immer sie bei dir heissen.
Und drittens angenommen, du hättest 65 Mäppingwerte, also der gefüllte Datenbereich ginge von Sheet2!$A$2:$B$66.


Dann kannst du in das Feld, in dem heute dein Bandwurm-IF-Gestrunkele steht schreiben (in EZ2 steht wie in deinem Ansatz der Suchstring)
=INDEX(Sheet2!$B$2:$B$66;VERGLEICH(1; --ISTZAHL(FINDEN(Sheet2!$A$2:$A$66;EZ2));0);1)
Dat Janze mit Ctrl-Shift-Enter abschliessen, weil wegen is' sich Matrixformel.

Falls dein Excel ein Outlandishes ist, dann lautet die Formel sinngemäß
=INDEX(Sheet2!$B$2:$B$66;MATCH(1; --ISNUMBER(FIND(Sheet2!$A$2:$A$66;EZ2));0);1)
..und wird mit Ctrl-Shift-Enter abgeschlossen, weil is' auch dann Matrixformel.

Kannst auch dem Bereich Sheet2!$A$2:$A$A66 den Namen "Keys" und dem Bereich Sheet2!$B$2:$B$66 den Namen "Values" geben und schreiben:
=INDEX(Values;MATCH(1; --ISNUMBER(FIND(Keys;EZ2));0);1)
Aber trotzdem mit Ctrl-Shift-Enter... ach, den Rest ahnst du schon.

Grüße
Biber

[Edit] @colinardo:
Warum denn mit Kanonen auf Spätzle werfen??
[/Edit]
Bitte warten ..
Mitglied: colinardo
12.01.2015, aktualisiert um 16:49 Uhr
Zitat von Biber:
[Edit] @colinardo:
Warum denn mit Kanonen auf Spätzle werfen??
[/Edit]
Naja wenn er es unbedingt in VBA haben will ich hab's aufgegeben die User mit Formeln zu bewerfen die sie nicht verstehen ...Und die Frage bezog sich ja auf VBA (siehe Titel)
Bitte warten ..
Mitglied: Biber
12.01.2015, aktualisiert um 16:59 Uhr
Moin colinardo,

wo hat er denn was davon geschrieben, dass er es verstehen will?
Er "verliert die Übersicht", was ich ja nachvollziehen kann. Von "Verstehen-wollen" lese ich nix.

Okay, dass es VBA sein soll, das hat er geschrieben... weil die Formel zu lang wird für eine Excel-Zelle *gg.

Aber anyhow -deine Variante ist doch nicht praxiskompatibel... jedes Mal, wenn ein ver###ter Mappingwert dazu kommt oder sich ändert, dann müssen Zeilen in einem VBA-Quellcode angepasst werden ???? *lach*

Erklär das mal in einer Durchschnitts-Kneipe auf einem Durchschnittsplaneten dieser Galaxie irgendwelchen zufällig anwesenden Lebensformen.
Überraschtes Glucksen und hochgezogene Augenbrauen (oder entsprechende Körperteile) werden die Antwort sein.

Nee, immer wortwörtlich nur auf genau die gestellte Frage einzugehen ist nicht immer zielführend. Auch wenn der Usr sich dann bedankt und es als "Gelöst" markiert.

Grüße
Biber
Bitte warten ..
Mitglied: colinardo
12.01.2015, aktualisiert um 17:25 Uhr
Ist ja egal so hat nun jeder was vom Thread die VBA- und die Formelfraktion

Nee, immer wortwörtlich nur auf genau die gestellte Frage einzugehen ist nicht immer zielführend. Auch wenn der Usr sich dann bedankt und es als "Gelöst" markiert.
Das ist ja auch nicht mein Ziel, aber ich habe es schon zu oft hier erlebt das User einfach nicht davon abzubringen waren. Und wenn ein anderer User hier im Forum nach einer solchen Lösung mit VBA sucht (steht ja im Titel) dann soll er auch was mit VBA finden . Dafür sind wir ja eine Community bei der jeder etwas beisteuert. Der User hat dann die Wahl und kann dann die Lösung wählen, welche zu seinem Projekt passt.

Grüße Uwe
Bitte warten ..
Mitglied: Meierjo
12.01.2015 um 17:01 Uhr
Hallo

....ich muss überrprüfen, ob SCBV dort drinnen steht, wenn ja dann soll er mir in einer anderen Zelle
"Montag" hinschreiben

Und was soll passieren, wenn du mehrere "Uebereinstimmungen hast?? Soll er dann Montag, Dienstag, in die Zelle schreiben, oder nur die Erste Uebereinstimmung, oder nur die Letzte??

Gruss Urs
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
IF Bedingungen in EXCEL (VBA) erstellen
gelöst Frage von user2k14Microsoft Office9 Kommentare

Hallo Leute, ich möchte gerne in einer Spalte alle Zellen überprüfen, ob ein bestimmter Text dort enthalten ist, wenn ...

Microsoft Office
Excel 2010 VBA Schleife mit Bedingungen
gelöst Frage von yonko22147Microsoft Office3 Kommentare

Hallo, Sorry ich stehe sowas von auf dem Schlauch das mir die einfachsten Sachen nicht mehr einfallen. Ich habe ...

Microsoft Office
Excel: Zählenwenn mit mehreren Bedingungen
Frage von VancouveronaMicrosoft Office1 Kommentar

Hi, ich bräuchte eine Zählenwenn Funktion, die mehrere Bedingungen auswertet. Geht das inzwischen mit Office 2012/2013? Oder muß ich ...

Microsoft Office
Zellen mit vba verketten bis Bedingung eintritt
gelöst Frage von hellasMicrosoft Office2 Kommentare

Hallo, ich habe folgende Excel Tabelle und komme da nicht mehr weiter. Spalte ASpalte BSpalte C 1234A-Text1 A-Text2 A-Text3 ...

Neue Wissensbeiträge
CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 2 StundenCPU, RAM, Mainboards1 Kommentar

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 16 StundenRouter & Routing3 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 22 StundenDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 1 TagMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement25 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
Frage von Forseti2003Windows Server17 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör14 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...