Registriert seit: 08.10.2016
Version(en): 2010
Hallo an alle Nutzer dieses Forums,
ich bin neu hier und hoffe, dass der eine oder andere mir bei meinem Problem helfen kann.
Ich muss ellenlange ( ca. 3800 Zeichen ), stark verschachtelte WENN-Abfragen in "normalen" Computer-Code konvertieren.
Einen Teil habe ich bereits manuell umgesetzt, das dauert aber endlos.
Meine Frage ist nun : Gibt es irgendeine Möglichkeit die Umsetzung mit einer Excel- oder VBA-Funktion oder mit einem sonstigen Tool zu realisieren ?
Die Syntax des generierten Codes muß nicht unbedingt korrekt sein, es geht nur um die Logig, dass jedes IF sein Endif bekommt.
Hier der Anfang in Excel :
=WENN(ODER(VMS!N27=4;VMS!N27=5);"Text-01-"&WENN(B10="XYZ";"Modulen";"Elementen")&", bestehend aus "&'A_V-D Support'!I2&" "&'A_V-D Support'!AU2&" mit je "&WENN('A_V-D Support'!V2="0";"";'A_V-D Support'!V2&WENN('A_V-D Support'!V2=1;" Text2-"&WENN(B10="XYZ";"Modul";"Element");" Text3t-"&WENN(B10="XYZ";"Modulen";"Elementen"))&WENN(UND('A_V-D Support'!AB2="0";'A_V-D Support'!AH2="0");"";WENN(ODER('A_V-D Support'!AB2="0";'A_V-D Support'!AH2="0");" und ";", "))) ..... ca. 3800 Zeichen
Das Ergebnis sollte dann ungefähr so aussehen :
IF VMS!N27 = 4 .or. VMS!N27 = 5 Then
Text = "Text-01
elseif B10 = "XYZ" Then
.....
end If
Vorab schon einmal vielen Dank
Rolf
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi Rolf,
Zitat:Ich muss ellenlange ( ca. 3800 Zeichen ), stark verschachtelte WENN-Abfragen in "normalen" Computer-Code konvertieren.
da behaupte ich jetzt ganz einfach: da ist per se schon einiges falsch gelaufen. :32: Wenn du uns zeigst, was du mit diesem Monster erreichen willst, können wir sicherlich mit anderen Funktionen dein Vorhaben auf ein erträgliches Formelmaß runterschrauben. Oder unsere VBA-Spezialisten (wenn es denn unbedingt eine Makrolösung sein muss) schustern dir ein vernünftiges Makro zum Erreichen deines Ziels.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Rolf,
ein Tool für so was gibt es meines Wissens nicht
Deine Logik hat auch einen Fehler. Du verbindest WENN-Ergebnisse u.a. mit & Da müsste der Anfang so aussehen:
Code:
IF Sheets("VMS").Range("N27").Value = 4 OR Sheets("VMS").Range("N27").Value = 5 Then
strText = "Text-01
End If
If Range("B10").Value = "XYZ" Then
strText = strText & ";"Modul"
Else
strText = strText & ";"Element"
End If
strText = strText & "en, bestehend aus " & Sheets("A_V-D Support").Range("I2").Value & ...
'usw...
Text alleine als Variablenname solltest Du nicht nehmen, da das auch in VBA Bestandteil der Syntax ist.
Das mit dem fehlenden "en" bei Modul und Element ist eine kleine codeoptimierung
Ich habe das en dann weiter unten nur 1x programmiert.
Wenn Du viel auf einem Blatt zu tun hast, kannst Du das auch mit With abkürzen:
Code:
With Sheets("A_V-D Support")
strText = strText & "en, bestehend aus " & .Range("I2").Value & ...
'weitere Anweisungen ...
End With
Wichtig ist dann vor der Bereichsangabe der Punkt: .Range ...
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 08.10.2016
Version(en): 2010
Hallo,
erst einmal vielen Dank für die schnellen Antworten.
Ich glaube aber, dass ich meine Anftrage etwas zu kompliziert gestellt habe und die Beispielformel eher verwirrt hat.
Darum versuche ich es noch einmal einfach:
=WENN(D2=1;"Zeige 1";"Zeige 2")
Ergebnis :
if D2 = 1
MeineZelle = "Zeige 1"
elseif
MeineZelle = "Zeige 2"
end if
Es geht nur um die Logig der Abfrage.
Ich muss mehrere sehr lange und tief verschachtelte WENN-Abfragen aus einer vorgegebenen Tabelle in "normalen" Computer-Code umzusetzen.
Aber macht Euch bitte keine weiteren Gedanken. Es scheint ja nun einmal keine einfache Lösung zu geben. Ich habe mich daher entschlossen, selber eine Funktion zu programmieren, die dieses Problem löst.
Rolf
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Rolf
Bei diesem einfachen Beispiel reicht Else.
Bei der Funktion zum Umwandeln musst du auch schauen, ob ein & Bestandteil des Textes ist oder zur Verkettung dient, ebenso das Ausrufezeichen. Eventuell hast Du auch noch andere Funktionen drin als Wenn und &...
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 13.04.2014
Version(en): 365
10.10.2016, 08:28
(Dieser Beitrag wurde zuletzt bearbeitet: 10.10.2016, 08:29 von BoskoBiati.)
Hallo,
Zitat:Ich muss ellenlange ( ca. 3800 Zeichen ), stark verschachtelte WENN-Abfragen
Da kann ich WillWissen nur beipflichten! Wer solche Formeln hat, hat sich weder Gedanken über das, was er will, gemacht, noch Excel nur ansatzweise verstanden! Ich habe schon einmal einem Ingenieur eine Formel von mehr als 8000 Zeichen auf 2500 gekürzt, einfach unter Anwendung der vorhandenen Excel-Funktionen! Allein aus dem vorgestellten Schnipsel sehe ich, dass man hier mit SVERWEIS oder WAHL einiges an Zeichen sparen könnte!
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(10.10.2016, 08:28)BoskoBiati schrieb: Allein aus dem vorgestellten Schnipsel sehe ich, dass man hier mit SVERWEIS oder WAHL einiges an Zeichen sparen könnte!
oder als VBA-Code mit "Select Case"