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

if abfrage
Yusuf
Moin,
ich habe ein kleines Problem.
Ich moechte in einer If-Bedingung ueberpruefen, ob der Inhalt (String) einer Zelle eine Zeichenfolge (String ) enthaelt.
Also:
If Zelle("A1") enthaelt "Hallo" then
Msgbox "Hallo enthalten"
end if
Ich weiss nicht, wie ich das "enhaelt" ausdruecken muss.
Bei:
If Zelle("A1") gleich "Hallo" then
Msgbox "Hallö gleich"
end if
Waere das "gleich" ja durch ein "=" ausgedrueckt
Vielen Dank im voraus.
Gruß
Yusuf

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
LIKE
07.12.2010 11:33:26
Erich
Hu Yuyuf,
schau dir mal die VBA-Hilfe zu LIKE an.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: LIKE
07.12.2010 12:11:48
Yusuf
Hallo Erich,
ich glaube Like ist genau das was ich suche, jedoch weiss ich nicht genau, ob ich die Hilfe richtig verstanden habe.
Im folgendem moechte ich gucken, ob der Inhalt der Zelle(j,22) in der Zelle(i,2) enthalten ist, wenn nicht soll dieser ergaenzt werden.
If Not Sheets(DatenBlatt).Cells(j, 22) Like "*" & Sheets(ErgebnisBlatt).Cells(i, 2) & "*" Then
Sheets(ErgebnisBlatt).Cells(i, 2) = Sheets(ErgebnisBlatt).Cells(i, 2) & "|" & Sheets(DatenBlatt).Cells(j, 22)
End If
Ist meine Anweisung richtig?
Vielen Dank fuer deine Hlfe im voraus.
Gruß
Yusuf
Anzeige
AW: LIKE
07.12.2010 13:13:45
Erich
Hi Yusuf,
wenn du prüfen willst, ob der Text in Cells(i,2) den Text von Cells(j,22) nicht enthält,
dann so:
If Not Sheets(DatenBlatt).Cells(i, 2) Like "*" & Sheets(ErgebnisBlatt).Cells(j, 22) & "*" Then
Du kannst dir das so klarmachen:
Der Text von Cells(i, 2) sollte nicht aus Cells(j, 22) und etwas drumherum bestehen.
(Du hattest das gerade umgekehrt.)
Noch ein Tipp:
Weniger schreibaufwändig, übersichtlicher und wartungsfreundlicher ist das
mit With-Block: With Sheets(ErgebnisBlatt) MsgBox .Cells(j, 22) MsgBox .Cells(i, 2) If Not .Cells(i, 2) Like "*" & .Cells(j, 22) & "*" Then .Cells(i, 2) = .Cells(i, 2) & "|" & .Cells(j, 22) End If End With Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: LIKE
07.12.2010 13:30:42
Yusuf
Hallo Erich,
vielen Dank. Der Like-Befehl war genau das was ich gesucht habe.
Und vielen Dank fuer die verstaendliche Erklaerung.
Ich kann es nicht in einen With-Block setzen, da ich die Zelle(j,22) aus DatenBlatt mit der Zelle(i,2) aus ErgebnisBlatt vergleiche.
Ich zumindest wuesste keine Moeglichkeit in einem With-Block zwei verschiedene Blaetter anzusprechen.
Das ganze sieht nun so aus. Geht ganz bestimmt schoener, aber es funktioniert.
Sub Daten_Auswerten_Anzahl(ErgebnisBlatt As String, DatenBlatt As String)
Dim letzte_Zeile_Ergebnisblatt As Long
Dim letzte_Zeile_Datenblatt As Long
Dim i As Long
Dim j As Long
Dim k As Long
letzte_Zeile_Ergebnisblatt = Sheets(ErgebnisBlatt).Range("A65536").End(xlUp).Row
letzte_Zeile_Datenblatt = Sheets(DatenBlatt).Range("A65536").End(xlUp).Row
For i = 4 To letzte_Zeile_Ergebnisblatt
For j = 2 To letzte_Zeile_Datenblatt
If Sheets(ErgebnisBlatt).Cells(i, 1) = Sheets(DatenBlatt).Cells(j, 33) Then
If Not Sheets(ErgebnisBlatt).Cells(i, 2) Like "*" & Sheets(DatenBlatt).Cells(j,  _
22) & "*" Then
Sheets(ErgebnisBlatt).Cells(i, 2) = Sheets(ErgebnisBlatt).Cells(i, 2) & "|"  _
& Sheets(DatenBlatt).Cells(j, 22)
End If
If Not Sheets(ErgebnisBlatt).Cells(i, 4) Like "*" & Sheets(DatenBlatt).Cells(j,  _
6) & "*" Then
Sheets(ErgebnisBlatt).Cells(i, 4) = Sheets(ErgebnisBlatt).Cells(i, 4) & "|"  _
& Sheets(DatenBlatt).Cells(j, 6)
End If
If Not Sheets(ErgebnisBlatt).Cells(i, 5) Like "*" & Sheets(DatenBlatt).Cells(j,  _
17) & "*" Then
Sheets(ErgebnisBlatt).Cells(i, 5) = Sheets(ErgebnisBlatt).Cells(i, 5) & "|"  _
& Sheets(DatenBlatt).Cells(j, 17)
End If
Sheets(ErgebnisBlatt).Cells(i, 3) = Sheets(DatenBlatt).Cells(j, 23)
Sheets(ErgebnisBlatt).Cells(i, 6) = Sheets(ErgebnisBlatt).Cells(i, 6) + Sheets( _
DatenBlatt).Cells(j, 27)
End If
Next
Next
End Sub
Gruß
Yusuf
Anzeige
Danke für Rückmeldung, alles klar! (owT)
07.12.2010 13:43:24
Erich
WENN()
07.12.2010 11:39:27
Matthias
Hallo
String in String finden
ein Beispiel:
Tabelle1

 ABC
1TextSuchbegriffErgebnis
2Hallo UserHallo[Hallo] wurde gefunden

Formeln der Tabelle
ZelleFormel
C2=WENN(FINDEN("Hallo";A2;1)=1;"["&B2&"] wurde gefunden";"nicht gefunden")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthais
Anzeige
AW: WENN()
07.12.2010 12:06:20
Yusuf
Hallo Matthias,
vielen Dank fuer deine Hilfe.
Ich benoetige diese If Abfrage in meinem VBA Code.
Meine Excel/ExcelVBA Kenntnisse sind nicht so gut, dass ich aus deiner Excel Formel die fuer mich benoetigte Excel VBA Anweisung basteln kann.
Gruß
Yusuf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige