Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Teil der Zelleninhalte auslesen

Teil der Zelleninhalte auslesen
15.06.2008 19:54:53
Thierry
Hallo
In Spalte D habe ich ca. 1500 Zelleinträge: Buchstaben, tlw. mit Zahlen/Sonderzeichen gemischt. Die Einträge sind 2 bis ca. 15 Zeichen lang.
Jeder dieser Einträge beinhaltet eine bestimmte Zeichenkombination von 2 bis ca. 7 Zeichen.
Die verschiedenen Zeichenkombinationen, ca. 40 Stück, sind in Spalte A aufgelistet, sortiert nach Anzahl Zeichen.
Ich möchte in den Einträgen in Spalte D die Zeichenkombinationen aus Spalte A suchen und die gefundenen in die Spalte E eintragen.
Eine der 40 Zeichenkombinationen in A heisst z.B.: erde/gl
In Spalte D sind mehrere Einträge (z.B. in D6, D12,..., die erde/gl enthalten, z.B. tzerde/gloo
Diese Einträge sind zu suchen und in die rechts nebenliegende Zelle einzutragen (E6, E12, ...)
Dann sollten die Einträge in Spalte D gelöscht oder mit aaaaa überschrieben werden, um vorzubeugen, dass eine Zeichenkombination wie rde nochmals auf dieselbe Zelle zugreifen kann.
Kleine Beispieldatei unter https://www.herber.de/bbs/user/53108.xls
Kann mir bitte jemand mit einem Makro behilflich sein?
Viele Grüsse
Thierry

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teil der Zelleninhalte auslesen
15.06.2008 20:11:46
Josef
Hallo Thierry,
Sub vergleich()
Dim varStrings As Variant, varText As Variant, varTemp() As Variant
Dim lngIndex As Long, lngC As Long

varStrings = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1))
varText = Range(Cells(1, 4), Cells(Cells(Rows.Count, 4).End(xlUp).Row, 4))
Redim varTemp(1 To UBound(varText, 1), 1 To 1)

For lngIndex = 1 To UBound(varStrings, 1)
    For lngC = 1 To UBound(varText, 1)
        If InStr(1, varText(lngC, 1), varStrings(lngIndex, 1)) > 0 Then
            varTemp(lngC, 1) = varStrings(lngIndex, 1)
            varText(lngC, 1) = "aaaaa"
        End If
    Next
Next

Range(Cells(1, 4), Cells(UBound(varText, 1), 4)) = varText
Range(Cells(1, 5), Cells(UBound(varTemp, 1), 5)) = varTemp

End Sub


Gruß Sepp



Anzeige
AW: Teil der Zelleninhalte auslesen
15.06.2008 23:00:00
Thierry
Hallo Sepp
Vielen Dank für dein Makro. Es funktioniert einwandfrei. Super.
Leider verstehe ich beim Grossteil des Makros nur Bahnhof, möchte aber gerne verstehen, was ab Zeile
"Redim varTemp(1 To UBound(varText, 1), 1 To 1)"
passiert. Könntest du mir bitte das etwas kommentieren? Ich wäre dir sehr dankbar dafür.
Gruss
Thierry

Anzeige
AW: Teil der Zelleninhalte auslesen
15.06.2008 23:32:00
Josef
Hallo Thierry,
Sub vergleich()
Dim varStrings As Variant, varText As Variant, varTemp() As Variant
Dim lngIndex As Long, lngC As Long

varStrings = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)) 'Textteile in ein Array einlesen
varText = Range(Cells(1, 4), Cells(Cells(Rows.Count, 4).End(xlUp).Row, 4)) 'Wörter in ein Array einlesen
Redim varTemp(1 To UBound(varText, 1), 1 To 1) 'Hilfsarray auf die Größe von varText dimensionieren

For lngIndex = 1 To UBound(varStrings, 1) 'Array mit den Textteilen durchlaufen
    For lngC = 1 To UBound(varText, 1) 'Array mit den Wörtern durchlaufen
        If InStr(1, varText(lngC, 1), varStrings(lngIndex, 1)) > 0 Then 'Textteile im Wortarray suchen
            'Wenn Übereinstimmung dann
            varTemp(lngC, 1) = varStrings(lngIndex, 1) 'Hilfsarray mit dem Textteil füllen
            varText(lngC, 1) = "aaaaa" 'Wort in Wortarray überschreiben
        End If
    Next
Next

Range(Cells(1, 4), Cells(UBound(varText, 1), 4)) = varText 'Wortarray in die Tabelle zurückschreiben
Range(Cells(1, 5), Cells(UBound(varTemp, 1), 5)) = varTemp 'Hilfsarray in die Tabelle schreiben

End Sub


Gruß Sepp



Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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