Freigeben über

VBA - Suche Wert in Spalte A und gebe Wert in Spalte C aus

Anonym
2021-08-26T07:39:52+00:00

Hallo Liebe Community

Ich habe folgende Situation bei der ich nicht weiter komme und eure Hilfe benötige.

In Spalte A habe ich einige Werte. Auf Grund von Wert "Müller" soll dann ein anderer Wert in Spalte C (gleiche Zeile) ausgegeben werden.

Beispiel:

A B C
Suche "Müller" Setze "Hallo" bei Müller
Müller Hallo
Meier
Huber
Müller Hallo
Meier
Huber
Müller Hallo

Ich habe folgenden Code mal versucht (hat natürlich nicht geklappt)

Sub formel()

Sheets("Tabelle1").Select

With Sheets("Tabelle1")

For Each Z In .Range("A4:A10")

If Z.Value = "Müller" Then

For i = 4 To i 

Cells(i, 3).Value = "Hallo" 

Next i 

Else:

End If

Next Z

End With

End Sub

Hat mir jemand einen Tipp wie ich zu meinen "Hallo" bei den "Müller" komme? Im Voraus besten Dank.

Beste Grüsse

Thom

Microsoft 365 und Office | Excel | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

Antwort, die vom Frageautor angenommen wurde

  1. Anonym
    2021-08-26T09:06:13+00:00

    Hallo Thom,

    wenn es nur 7 Zeilen sind, kannst du es mit einer Schleife über die Zeilen machen:

    Sub Test1() 
    
    Dim Lrow As Long, i As Long 
    
    With Sheets("Tabelle1") 
    
        Lrow = .Cells(.Rows.Count, 1).End(xlUp).Row 
    
        For i = 4 To Lrow 
    
            If .Cells(i, 1) = "Müller" Then .Cells(i, 3) = "Hallo" 
    
        Next 
    
    End With 
    
    End Sub
    

    Wenn es mehr Zeilen sind, mache es besser mit der Find-Methode:

    Sub Test2() 
    
    Dim c As Range 
    
    Dim Firstaddress As String 
    
    With Sheets("Tabelle1") 
    
        Set c = .Range("A4:A1000").Find("Müller") 
    
        If Not c Is Nothing Then 
    
            Firstaddress = c.Address 
    
            Do 
    
                c.Offset(, 2) = "Hallo" 
    
                Set c = .Range("A4:A1000").FindNext(c) 
    
            Loop While c.Address <> Firstaddress 
    
        End If 
    
    End With 
    
    End Sub
    

    Claus

    7 Personen fanden diese Antwort hilfreich.
    0 Kommentare Keine Kommentare

6 zusätzliche Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2021-08-27T06:27:58+00:00

    Wir verwenden einen Übersetzungsdienst, um unsere Benutzer zu unterstützen. Bitte entschuldigen Sie grammatikalische Fehler.

    Hallo Thom55,

    Entschuldigung für die verspätete Antwort.

    Haben Sie Ihr Dokument von Grund auf als XLSM-Datei (Makrofähige Arbeitsmappe) gespeichert? Wenn ja, erlauben Sie mir, Ihnen ein paar Screenshots zu zeigen, die Ihnen helfen können, herauszufinden, wo wir etwas übersehen haben könnten.

    --> zeigt der erste Screenshot die Beispieldaten in einem Dokument, das als xlsm gespeichert ist,

    --> der zweite Screenshot zeigt den VBA-Code und wie ich ihn auslaufe,

    --> Der dritte Screenshot zeigt das ergebnisproduzierte ergebnis in den Beispieldaten.

    0 Kommentare Keine Kommentare
  2. Anonym
    2021-08-26T14:52:11+00:00

    Vielen Dank, aber das habe ich irgendwie nicht hingekriegt...

    Beste Grüsse Thom

    0 Kommentare Keine Kommentare
  3. Anonym
    2021-08-26T14:50:05+00:00

    Hallo Claus

    Vielen Dank für dein Feedback. Ich werde die 2. Variante benötigen ;-)

    Beste Grüsse aus der CH

    Thom

    0 Kommentare Keine Kommentare
  4. Anonym
    2021-08-26T09:14:31+00:00

    Wir verwenden einen Übersetzungsdienst, um unsere Benutzer zu unterstützen. Bitte entschuldigen Sie grammatikalische Fehler.

    Hallo Thom55,

    Wenn Sie nach dem Wort im Bereich suchen, können Sie die Methode "inStr" verwenden. Zum Beispiel: -

    Dim-Zelle als Bereich

    Für jede Zelle im Bereich("A4:A10")

    wenn inStr(cell.value,"Hello")>0 dann

    cell.offset(0,1).value="Hallo"

    Ende, wenn

    Nächste Zelle

    Probieren Sie das aus und lassen Sie mich wissen, wie es läuft.

    Alles Gute.

    0 Kommentare Keine Kommentare