Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

IF Bedingungen in EXCEL (VBA) erstellen

Frage Microsoft Microsoft Office

Mitglied: user2k14

user2k14 (Level 1) - Jetzt verbinden

24.03.2014, aktualisiert 25.03.2014, 13454 Aufrufe, 9 Kommentare

Hallo Leute,

ich möchte gerne in einer Spalte alle Zellen überprüfen, ob ein bestimmter Text dort enthalten ist, wenn ja dann soll er mir in der Spalte daneben das Wort hinschreiben, aber nur die ersten 6 Buchstaben

ich schaffe nur eine IF Bedingung, aber ich möchte sie gerne verschachteln...es sollten 5 if Bedingungen am Ende dann dastehen

hier meine IF Bedingung => =IF(ISNUMBER(SEARCH("Mount Everest",CB3)),LEFT(CB3,6)), es funktioniert, aber wie kann ich mehrere IF Bedingungen dort einbauen, geht wahrscheinlich mit VBA oder? wie würde das dann aussehen?

thanks
Mitglied: Pjordorf
24.03.2014 um 13:15 Uhr
Hallo,

Zitat von user2k14:
aber wie kann ich mehrere IF Bedingungen dort einbauen, geht wahrscheinlich mit VBA oder? wie würde das dann aussehen?
In VBA mit einer oder mehrerer If...Then...Else-Anweisung(en) oder in dein (deutsches?) Excel in einer Zelle mit =Wenn(Prüfung;[Dann_Wert;[Sonst_Wert]) und du dir eben in einen Dann oder Sonst Feld dir weitere Wenn(Prüfung; [Dann];[Sonst]) aufbaust. Das verschachteln von wenn ... dann bedingungen hat aber seine Grenzen.

F1 in Excel hilft dir dabei.

Gruß,
Peter
Bitte warten ..
Mitglied: user2k14
24.03.2014 um 13:23 Uhr
Hi Peter,

ich habe schon in F1 Hilfe nachgesehen, aber werde dort nicht schlauer...

so würde ich es gerne aufbauen, aber weiß nicht wie ich es in VBA reinschreiben kann

wenn zelle 1 die Buchstaben "HEUTE", dann kürze diese Zelle um 3 Buchstabe von links weg,

wenn aber zelle 1 die Buchstaben "Morgen" enthält, dann kürze diese Zelle um 2 Buchstabe von links weg,

wenn aber zelle 1 die Buchstaben "Übermorgen" enthält, dann kürze diese Zelle um 6 Buchstabe von links weg,

wenn aber zelle 1 die Buchstaben "Jahr" enthält, dann kürze diese Zelle um 4 Buchstabe von links weg,

sonst lasse die Zelle 1 wie sie ist

danke

Lg

Dani
Bitte warten ..
Mitglied: it-frosch
24.03.2014, aktualisiert um 13:43 Uhr
Hallo Dani,

du solltest dazu die CASE Select Funktion nehmen.
Wie du sieh verwendest, ist hier: http://www.office-loesung.de/ftopic177172_0_0_asc.php schön beschrieben.


ich möchte gerne in einer Spalte alle Zellen überprüfen, ob ein bestimmter Text dort enthalten ist, wenn ja dann soll er mir in der Spalte daneben das Wort
hinschreiben, aber nur die ersten 6 Buchstaben
Eigentlich brauchst du dazu kein VBA.
Einfach Tabelle nach der Spalte sortieren, die auf den bestimmten Text geprüft werden soll.
Anschließend hast du alle Zeilen mit deinen Suchkriterien untereinander und brauchst nur noch über Excel Funktion RECHTS das rausschneiden was du haben willst.

Sollte eine Sache von max. 10 min sein.

grüße vom it-frosch
Bitte warten ..
Mitglied: Snowman25
LÖSUNG 24.03.2014, aktualisiert 25.03.2014
Hallo Dani,

Hier ist eine Formel, die deinen Ansprüchen gerecht werden könnte:
01.
=WENN(A1="HEUTE";TEIL(B1;4;LÄNGE(B1)-3);WENN(A1="Morgen";TEIL(B1;3;LÄNGE(B1)-2);WENN(A1="Übermorgen";TEIL(B1;7;LÄNGE(B1)-6);WENN(A1="JAHR";TEIL(B1;5;LÄNGE(B1)-4);B1))))
Gruß,
Snowman25

€dit:
Jetzt auch mit RECHTS() anstelle von TEIL()
01.
=WENN(A1="HEUTE";RECHTS(B1;LÄNGE(B1)-3);WENN(A1="Morgen";RECHTS(B1;LÄNGE(B1)-2);WENN(A1="Übermorgen";RECHTS(B1;LÄNGE(B1)-6);WENN(A1="JAHR";RECHTS(B1;LÄNGE(B1)-4);B1))))
Bitte warten ..
Mitglied: colinardo
LÖSUNG 24.03.2014, aktualisiert 25.03.2014
Hi user2k14,
und wenn's VBA sein soll:
Für das Beispiel werden hier die Zellen "A1:A100" auf dem ersten Worksheet überprüft, und dann die Werte in die Zelle daneben geschrieben.
01.
Sub stripChars() 
02.
    Set ws = Worksheets(1) 
03.
    For Each cell In ws.Range("A1:A100") 
04.
        Set nachbarzelle = cell.Offset(0, 1) 
05.
        If InStr(1, cell.Value, "Heute", 1) Then 
06.
            nachbarzelle.Value = Mid(cell.Value, 4) 
07.
        ElseIf InStr(1, cell.Value, "Übermorgen", 1) Then 
08.
            nachbarzelle.Value = Mid(cell.Value, 7) 
09.
        ElseIf InStr(1, cell.Value, "Morgen", 1) Then 
10.
            nachbarzelle.Value = Mid(cell.Value, 3) 
11.
        ElseIf InStr(1, cell.Value, "Jahr", 1) Then 
12.
            nachbarzelle.Value = Mid(cell.Value, 5) 
13.
        Else 
14.
            nachbarzelle.Value = cell.Value 
15.
        End If 
16.
    Next 
17.
End Sub
Grüße Uwe

-edit- Reihenfolge korrigiert. Merci @Biber, da hat das Fieber von heute doch Konsequenzen gehabt
Bitte warten ..
Mitglied: Biber
24.03.2014, aktualisiert um 17:47 Uhr
[OT]
Moin Snowman25 und colinardo,

ich nehme es seit Jahrzehnten schon stillschweigend hin, dass andere Mitmenschen mit Montagen weniger Probleme haben als ich.
Und das den meisten montags nicht ganz so viele Denkfehler passieren wie mir.

Aber wie ihr beide mit eurer Prüf-Reihenfolge jemals den String "Übermorgen" finden könnt - das ist nicht spielerische Leichtigkeit, das ist Zauberei.

Ich würde besser die Reihenfolge der WENNs bzw IFs abändern und zuerst auf "übermorgen" und erst danach auf "morgen" prüfen.

...weil wegen.... kleiner Tipp ... dieses proof-of-concept hier ,liefert die Anzahl der im Text "ein Test für übermorgen" gefundenen 4 Worte in der Array-Klammer.

Bitte als Matrixformel eingeben mit Ctrl-Shift-Enter
01.
=SUMME(--ISTZAHL(SUCHEN({"heute"."morgen"."übermorgen"."Jahr"};"ein Test für übermorgen")))
-> Ergebnis 2 Treffer in dem String.

Da die WENN/IF-Strukturen aber nur einen Treffer anzeigen, nämlich den zuerst geprüften.....

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: Snowman25
24.03.2014 um 18:33 Uhr
Hey Biber,

naja, wenn man den kompletten Zelleninhalt vergleicht, ist das MATCH einzigartig und die Reihenfolge damit vernachlässigbar.
Ausserdem haben wir strikt nach Vorgabe gearbeitet. Die Aufgabenstellung war bloß falsch .

Gruß,
Snowman25
Bitte warten ..
Mitglied: Biber
24.03.2014, aktualisiert um 19:05 Uhr
Moin Snowman25,

ja nee... wenn du den kompletten Zellenunhalt vergleichst, dann machst du das in deinem Beispiel in Spalte A und bildest einen Teilstring der Nachbarzelle in Spalte B.

Ich habe aber den TO so verstanden, dass er, falls ein bestimmter Text in Spalte A, Zeile x vorhanden ist, einen Teilstring dieser Zelle Ax in eine andere Zelle schreiben will.


Sollte deine Interpretation mit dem Komplett-Match stimmen, dann können wir auch mit Index()/Vergleich arbeiten.

Grüße
Biber
Bitte warten ..
Mitglied: user2k14
25.03.2014 um 10:15 Uhr
hey Leute, danke für euren Einsatz, habs nun dank eurer Hilfe geschafft !

die letzten Nachrichten waren für mich dann aber nicht mehr zum Verstehen:P,trotzdem thanks!
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

VB for Applications
gelöst Mehrere Charts per VBA erstellen lassen, Titel wird nicht angezeigt

Frage von Aximand zum Thema VB for Applications ...

Microsoft Office
Excel VBA: Tranferieren von Werten aus Quelldatei in die Masterdatei mit SVERWEIS (3)

Frage von peter.schroeder zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...