Thema Datum  Von Nutzer Rating
Antwort
12.10.2020 14:22:37 Peter
NotSolved
12.10.2020 15:02:44 Gast73050
NotSolved
12.10.2020 15:04:26 volti
NotSolved
13.10.2020 07:43:10 Peter
NotSolved
13.10.2020 09:15:55 Gast81562
*****
NotSolved
13.10.2020 09:22:20 Peter
NotSolved
15.10.2020 13:49:45 Peter
NotSolved
15.10.2020 14:12:42 Gast34231
NotSolved
15.10.2020 14:18:00 Peter
NotSolved
Blau Prüfen von Werten innerhalb einer Zeile
15.10.2020 15:26:48 Gast27006
*****
NotSolved
15.10.2020 15:55:24 Gast27006
NotSolved
15.10.2020 15:56:34 Gast24777
NotSolved
15.10.2020 16:06:35 Gast88477
NotSolved
15.10.2020 16:18:28 Gast7846
NotSolved
15.10.2020 17:52:13 Gast27006
NotSolved
16.10.2020 09:24:34 Peter
NotSolved
15.10.2020 14:16:51 Peter
NotSolved
19.10.2020 09:52:24 Peter
NotSolved

Ansicht des Beitrags:
Von:
Gast27006
Datum:
15.10.2020 15:26:48
Views:
851
Rating: Antwort:
  Ja
Thema:
Prüfen von Werten innerhalb einer Zeile
A D C
Apfel Birne Melone Kirsche Birne Ananas Melone Ananas Birne
Melone Kirsche Apfel Ananas Melone Apfel Ananas Birne Apfel
Ananas Apfel Birne Ananas Apfel Kirsche Birne Kirsche Melone

Das Makro von volti hergenommen und abgehändert:

Option Explicit
Option Compare Text

Sub Ersetze2()
    
    Dim iZeile As Long, iSpalte As Long, iCheck As Integer
    Dim sSuch1 As String, sSuch2 As String, sErsetz As String
    Dim rngBereich As Excel.Range
    Dim rngZelle As Excel.Range
    
    sSuch1 = "apfel"
    sSuch2 = "Birne"
    sErsetz = "Apfelkuchen"
    
    Set rngZelle = Range("A1")
    
    Do While rngZelle.MergeCells
      
      'Bereich referenzieren
      ' in der Spalte von rngZelle, nach der letzter Zelle mit Inhalt suchen
      ' (von unten nach oben)
      Set rngBereich = rngZelle.MergeArea.Resize(Cells(Rows.Count, rngZelle.Column).End(xlUp).Row - rngZelle.Row + 1)
      
      '2 = erste DATENzeile / erste Zeile ist jeweils der verbundene Bereich ('A' / 'D' / 'C')
      For iZeile = 2 To rngBereich.Rows.Count
          
          iCheck = 0
          For iSpalte = 1 To rngBereich.Columns.Count
            'Hier wird nach 'Apfel' in 'Ein Apfel ist super-lecker. Birnen sind auch ok.' gesucht
            ' würde allerdings auch auf 'Ein Apfelkuchen ist super-lecker. Ein Birnenkuchen tut es aber auch.'
            ' passen!!
            If rngBereich(iZeile, iSpalte).Value Like ("*" & sSuch1 & "*") Then iCheck = (iCheck Or 1)
            If rngBereich(iZeile, iSpalte).Value Like ("*" & sSuch2 & "*") Then iCheck = (iCheck Or 2)
            'Sobald wir wissen das sSuch1 + sSuch2 einmal vorhanden sind,
            ' können wir die Suche hier beenden
            If iCheck = 3 Then Exit For
          Next
          
          If iCheck = 3 Then
              'ACHTUNG: (siehe oben)
              '       'Apfel' -| 'Apfel' := 'Apfelkuchen' |-> 'Apfelkuchen'
              ' 'Apfelkuchen' -| 'Apfel' := 'Apfelkuchen' |-> 'Apfelkuchenkuchen'
              rngBereich.Rows(iZeile).Replace _
                  What:=sSuch1, _
                  Replacement:=sErsetz, _
                  LookAt:=xlPart, _
                  SearchOrder:=xlByRows, _
                  MatchCase:=False
          End If
          
      Next
      
      'da rngZelle ein verbundener Bereich ist,
      'springen wir hier nicht nur eine (1) Zelle nach rechts,
      'sondern um die Anzahl von 1 * rngZelle.MergeArea.Columns.Count
      Set rngZelle = rngZelle.Offset(0, 1)
    Loop
  
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
12.10.2020 14:22:37 Peter
NotSolved
12.10.2020 15:02:44 Gast73050
NotSolved
12.10.2020 15:04:26 volti
NotSolved
13.10.2020 07:43:10 Peter
NotSolved
13.10.2020 09:15:55 Gast81562
*****
NotSolved
13.10.2020 09:22:20 Peter
NotSolved
15.10.2020 13:49:45 Peter
NotSolved
15.10.2020 14:12:42 Gast34231
NotSolved
15.10.2020 14:18:00 Peter
NotSolved
Blau Prüfen von Werten innerhalb einer Zeile
15.10.2020 15:26:48 Gast27006
*****
NotSolved
15.10.2020 15:55:24 Gast27006
NotSolved
15.10.2020 15:56:34 Gast24777
NotSolved
15.10.2020 16:06:35 Gast88477
NotSolved
15.10.2020 16:18:28 Gast7846
NotSolved
15.10.2020 17:52:13 Gast27006
NotSolved
16.10.2020 09:24:34 Peter
NotSolved
15.10.2020 14:16:51 Peter
NotSolved
19.10.2020 09:52:24 Peter
NotSolved