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

Makro

Makro
Günter
Guten Tag,
hätte eine Bitte zu folgendem Makro:
Das Makro aus der Vorgabe Tabelle 3 (Spalte A) in der Tabelle 1 (Spalte A)
nach Begriffen und markiert mir diese in Tabelle 1 in gelb.
Gleichzeit schreibt mir das Makro die gefundenen Begriffe in Tabelle 2, aber leider
nur den Inhalt aus Spalte A und B von Tabelle 1.
Meine Bitte: Wie kann man dies Umschreiben, damit nicht nur der Inhalt Spalte A und B
aus Tabelle 1, sondern die ganzen Spalten (bis Spalte Z) aus Tabelle 1 in Tabelle 2 rein geschrieben
werden.
Schönen Gruß
PS: Wollte Beispieldatei hochladen. Ist scheinbar zu groß 1.7 mb, obwohl ganz wendige Daten drin sind.
Sub SuchenMarkieren_ganze_Wörter()
Dim col As New Collection
Dim iRowS As Long, iRow As Long, iRowT As Long
Dim arrG
Dim arrL
Dim Zaehler As Integer
Dim Zeile As Integer
col.Add Worksheets("Tabelle1")
col.Add Worksheets("Tabelle2")
col.Add Worksheets("Tabelle3")
iRow = 1
Do Until IsEmpty(col(3).Cells(iRow, 1))
iRowS = 1
Do Until IsEmpty(col(1).Cells(iRowS, 1))
If InStr(col(1).Cells(iRowS, 1).Value, col(3).Cells(iRow, 1).Value) Then
' If InStr(LCase(col(1).Cells(iRowS, 1).Value), LCase(col(3).Cells(iRow, 1).Value))  _
Then
iRowT = iRowT + 1
col(2).Range(col(2).Cells(iRowT, 1), col(2).Cells(iRowT, 2)).Value = _
col(1).Range(col(1).Cells(iRowS, 1), col(1).Cells(iRowS, 2)).Value
col(1).Cells(iRowS, 1).Interior.ColorIndex = 6
End If
iRowS = iRowS + 1
Loop
iRow = iRow + 1
Loop
Columns("A:A").Select
Selection.NumberFormat = "General"
Range("A1").Select
Columns("B:B").Select
Selection.NumberFormat = "0"
Range("B1").Select
'Sortieren
Columns("A:B").Select
Range("B1").Activate
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
MsgBox "Fertig!!"
End Sub

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

Betreff
Benutzer
Anzeige
Spalten 1 bis 26 übertragen
17.09.2009 12:04:52
Erich
Hi Günter,
probier mal (ungetestet):

Sub SuchenMarkieren_ganze_Wörter()
Dim col As New Collection
Dim iRowS As Long, iRow As Long, iRowT As Long
col.Add Worksheets("Tabelle1")
col.Add Worksheets("Tabelle2")
col.Add Worksheets("Tabelle3")
iRow = 1
Do Until IsEmpty(col(3).Cells(iRow, 1))
iRowS = 1
Do Until IsEmpty(col(1).Cells(iRowS, 1))
If InStr(col(1).Cells(iRowS, 1).Value, col(3).Cells(iRow, 1).Value) Then
' If InStr(LCase(col(1).Cells(iRowS, 1).Value), _
LCase(col(3).Cells(iRow, 1).Value)) Then
iRowT = iRowT + 1
col(2).Range(col(2).Cells(iRowT, 1), col(2).Cells(iRowT, 26)).Value = _
col(1).Range(col(1).Cells(iRowS, 1), col(1).Cells(iRowS, 26)).Value
col(1).Cells(iRowS, 1).Interior.ColorIndex = 6
End If
iRowS = iRowS + 1
Loop
iRow = iRow + 1
Loop
Columns("A:A").Select
Selection.NumberFormat = "General"
Range("A1").Select
Columns("B:B").Select
Selection.NumberFormat = "0"
Range("B1").Select
'Sortieren
'   Columns("A:B").Select
'   Range("B1").Activate
Columns("A:B").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
MsgBox "Fertig!!"
End Sub
Wesentlich ist die 26 anstelle der 2.
Sollen am Ende nur die Spalten A und B sortiert werden?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Spalten 1 bis 26 übertragen
17.09.2009 12:12:26
Günter
Hallo Erich,
klappt auf Anhieb.
Vielen Dank und schönen Gruß aus FFM...
Günter
AW: Spalten 1 bis 26 übertragen
17.09.2009 12:31:39
Günter
Hallo Erich,
hatte Deinen Zusatz nicht gelesen.
Der Sort habe ich jetzt herausgenommen.
Wird nicht mehr benötigt.
Vielleicht eine kleine Zusatzfrage:
Wenn die Einträge in Tabelle 2 (von Tabelle 1) eingefügt werden,
ginge das auch, dass anstatt Einfügen diese Einträge aus Tabelle ausgeschnitten
werden?
Schönen Gruß
Günter
AW: Spalten 1 bis 26 übertragen
17.09.2009 12:39:50
Erich
Hi Günter,
was genau meinst du mit "ausgeschnitten"? Ich hab das mal mit als ClearContents aufgefasst,
möglich wären aber auch Delete oder Clear.
Bei den Formaten am Ende hab ich noch ein paar überflüssige Selects rausgenommen:

Sub SuchenMarkieren_ganze_Wörter()
Dim col As New Collection
Dim iRowS As Long, iRow As Long, iRowT As Long
col.Add Worksheets("Tabelle1")
col.Add Worksheets("Tabelle2")
col.Add Worksheets("Tabelle3")
iRow = 1
Do Until IsEmpty(col(3).Cells(iRow, 1))
iRowS = 1
Do Until IsEmpty(col(1).Cells(iRowS, 1))
If InStr(col(1).Cells(iRowS, 1).Value, col(3).Cells(iRow, 1).Value) Then
iRowT = iRowT + 1
With col(1).Cells(iRowS, 1).Resize(, 26)
col(2).Cells(iRowT, 1).Resize(, 26).Value = .Value
.ClearContents
.Cells(1, 1).Interior.ColorIndex = 6
End With
End If
iRowS = iRowS + 1
Loop
iRow = iRow + 1
Loop
Columns(1).NumberFormat = "General"
Columns(2).NumberFormat = "0"
Range("A1").Select
MsgBox "Fertig!!"
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Spalten 1 bis 26 übertragen
17.09.2009 12:54:09
Günter
Hallo Erich,
dachte so, dass alle gefundenen (also gelb markierten) aus dem Bestand Tabelle 1,
welche in Tabelle 2 reinlaufen im Anschluß aus Tabelle 1 gelöscht werden.
Gruß
AW: Spalten 1 bis 26 übertragen
17.09.2009 13:36:50
Günter
Hallo Erich,
wünsch noch einen schönen Tag.
Gruß
Günter
Danke für Rückmeldung, ...
17.09.2009 12:31:39
Erich
Hi Günter,
... und noch ein Tipp:
Die Zuweisung kannst du kürzer schreiben mit

col(2).Cells(iRowT, 1).Resize(, 26) = _
col(1).Cells(iRowS, 1).Resize(, 26).Value
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige