Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: InStr mit If kombinieren

InStr mit If kombinieren
03.05.2019 10:35:26
Jean-Pierre
Hallo Zusammen
Leider stosse ich wieder einmal an meine Grenzen. Ich habe eine Liste mit 6 Spalten und zirka 500 Zeilen. Jetzt möchte ich, dass der Inhalt von einer Zelle der Spalte E nach Spalte F kopiert wird, wenn der Text in Spalte B "L2" (Teil eines Wortes) beinhaltet. Dies soll in allen 500 Zeilen geschehen. Wenn in der Spalte B der Text "L2" nicht vorkommt, soll nichts passieren.
Untenstehend könnt ihr meinen Code sehen. wenn ich diesen auslöse, passiert gar nichts. Es passiert nichts in meinem File und es erscheint auch keine Fehlermeldung.
Ich bin euch für eure Hilfe enorm Dankbar!
Gruss Jean-Pierre
___________________________________________

Sub test2()
Dim Zelle As Long
Dim Zellneu As Long
Dim MeineSuche As String
Dim b As Long
With Sheets("Liste")
For b = 600 To 7
Zelle = Cells(b, 2).Value
Zellneu = Cells(Zelle, 4).Value
MeineSuche = "L2"
If InStr(Zelle, MeineSuche, vbTextCompare) = 0 Then
Cells(Zelle, 3).Cut (Zellneu)
End If
Next b
End With
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
For b = 600 To 7 step -1 owT
03.05.2019 10:46:35
Matthias
AW: InStr mit If kombinieren
03.05.2019 10:51:08
PeterK
Hallo

Sub test2()
Dim MeineSuche As String
Dim b As Long
With Sheets("Liste")
MeineSuche = "L2"
For b = 600 To 7 step -1
If InStr(.cells(b,2).value, MeineSuche, vbTextCompare)  0 Then
Cells(b,5).value = .Cells(b,4).value
End If
Next b
End With
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

InStr mit If kombinieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle in Spalte F basierend auf einer Bedingung in Spalte B zu kopieren, kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft, ob der Text "L2" in einer Zelle der Spalte B vorhanden ist und kopiert dann den Inhalt von Spalte E nach Spalte F.

  1. Öffne deinen Excel-Arbeitsmappe und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle im Projekt-Explorer das entsprechende Arbeitsblatt aus.
  3. Füge den folgenden Code in das Modul ein:
Sub test2()
    Dim b As Long
    Dim MeineSuche As String
    MeineSuche = "L2"

    With Sheets("Liste")
        For b = 600 To 7 Step -1
            If InStr(.Cells(b, 2).Value, MeineSuche, vbTextCompare) > 0 Then
                .Cells(b, 6).Value = .Cells(b, 5).Value
            End If
        Next b
    End With
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die Änderungen vorzunehmen.

Häufige Fehler und Lösungen

  • Fehler: Es passiert nichts beim Ausführen des Codes.

    • Lösung: Stelle sicher, dass der Tabellenname "Liste" korrekt ist und dass der Bereich, den du durchläufst (von 600 bis 7), tatsächlich die erwarteten Daten enthält.
  • Fehler: Der Inhalt wird nicht in die richtige Zelle kopiert.

    • Lösung: Überprüfe die Indizes in Cells(b, 6) und Cells(b, 5), um sicherzustellen, dass du die richtigen Spalten verwendest.

Alternative Methoden

Eine alternative Methode, um die gleiche Aufgabe zu erledigen, ist die Verwendung von Excel If Instr in einer Formel direkt in Excel:

=IF(ISNUMBER(SEARCH("L2", B1)), E1, "")

Diese Formel prüft, ob "L2" in Zelle B1 enthalten ist und gibt den Wert von E1 zurück, wenn dies zutrifft. Andernfalls bleibt die Zelle leer.


Praktische Beispiele

Angenommen, du hast folgende Daten in Spalte B und E:

B E
Text1 Wert1
L2abc Wert2
Text3 Wert3
L2xyz Wert4

Nach Ausführen des VBA-Codes wird das Ergebnis in Spalte F sein:

B E F
Text1 Wert1
L2abc Wert2 Wert2
Text3 Wert3
L2xyz Wert4 Wert4

Tipps für Profis

  • Verwende VBA If Not InStr: Wenn du die Logik umkehren möchtest, also etwas kopieren, wenn "L2" nicht vorhanden ist, kannst du If Not InStr(.Cells(b, 2).Value, MeineSuche) > 0 Then verwenden.
  • Kombiniere If-Anweisungen: Du kannst auch Excel VBA If And Or kombinieren, um komplexere Bedingungen zu prüfen.

FAQ: Häufige Fragen

1. Frage: Was ist InStr in VBA?
Antwort: InStr ist eine Funktion in VBA, die verwendet wird, um die Position eines Teilstrings in einem String zu finden. Sie gibt die Position zurück, an der der Teilstring gefunden wurde oder 0, wenn er nicht vorhanden ist.

2. Frage: Wie kann ich InStrRev verwenden?
Antwort: InStrRev funktioniert ähnlich wie InStr, sucht jedoch von hinten nach vorne. Dies ist nützlich, wenn du den letzten Vorkommen eines Teilstrings finden möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige