Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
288to292
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
288to292
288to292
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

If - Abfrage verkürzen

If - Abfrage verkürzen
03.08.2003 09:12:11
Erich M.
Hallo zusammen,
ich habe aus dem Forum ein Makro von ChrisL, das ich auf meine Bedürfnisse anpassen wollte. Es werden Daten in einer Spalte gesucht, die mit den Daten in einer anderen Spalte übereinstimmen.
Dann werden diese übereinstimmenden in eine neue Tabelle kopiert. Soweit kein Problem.
Ich möchte aber erreichen, dass die komplette Zeile der übereinstimmenden Daten kopiert wird.
Derzeit behelfe ich mir, dass ich für jede Spalte die kopiert werden soll eine eigen If-Abfrage erstelle.
Kann man das vereinfachen? Mit iRow, Row oder ähnlichem hatte ich keinen Erfolg:

Sub AA_Kopieren()
Dim WS1 As Worksheet, WS2 As Worksheet, WS3 As Worksheet
Dim iZeile As Long, LetzteZeile As Long, iRow As Long
Dim myName1 As String, myName2 As String, myName3 As String
Dim mySpalte1 As String, mySpalte2 As String
myName1 = InputBox("Ausgangstabelle")
mySpalte1 = InputBox("Spalte Ausgangstabelle")
myName2 = InputBox("Vergleichstabelle")
mySpalte2 = InputBox("Spalte Vergleichstabelle")
Set WS1 = Worksheets(myName1)
Set WS2 = Worksheets(myName2)
Set WS3 = Worksheets("T3")
Sheets("T3").Cells.Clear
LetzteZeile = WS2.Range("A65536").End(xlUp).Row
For iZeile = 2 To WS1.Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(WS2.Range("A2:A" & LetzteZeile), WS1.Cells(iZeile, 1)) _
= 1 Then WS1.Cells(iZeile, 1).Copy WS3.Cells(WS3.Range("a65536").End(xlUp).Row + 1, 1)
If WorksheetFunction.CountIf(WS2.Range("A2:A" & LetzteZeile), WS1.Cells(iZeile, 1)) _
= 1 Then WS1.Cells(iZeile, 2).Copy WS3.Cells(WS3.Range("a65536").End(xlUp).Row, 2)
If WorksheetFunction.CountIf(WS2.Range("A2:A" & LetzteZeile), WS1.Cells(iZeile, 1)) _
= 1 Then WS1.Cells(iZeile, 3).Copy WS3.Cells(WS3.Range("a65536").End(xlUp).Row, 3)
If WorksheetFunction.CountIf(WS2.Range("A2:A" & LetzteZeile), WS1.Cells(iZeile, 1)) _
= 1 Then WS1.Cells(iZeile, 4).Copy WS3.Cells(WS3.Range("a65536").End(xlUp).Row, 4)
Next iZeile
Sheets("T3").Activate
Range("C1").Select
End Sub


Code eingefügt mit: Excel Code Jeanie
Besten Dank für eine Hilfe!
mfg
Erich

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If - Abfrage verkürzen
03.08.2003 10:25:13
heinerv
Hallo Erich,
einen Zellbereich sprichst Du mit folgender Syntax an:
Range(Cells(1, 1), Cells(2, 2)).Activate
Siehe OH zu "Range-Eigenschaft"
Gruß
heinerv

AW: If - Abfrage verkürzen
03.08.2003 10:53:06
Erich M.
Hallo,
kann ich leider nicht mit dem gewünschten Erfolg einbauen?
Trotzdem Danke!
mfg

AW: If - Abfrage verkürzen
03.08.2003 12:08:38
heinerv
Hallo Erich,
ich denke, Deine Zeile müßte wie folgt lauten:
If WorksheetFunction.CountIf(WS2.Range("A2:A" & letzteZeile), ws1.Cells(iZeile, 1)) _
= 1 Then ws1.range(Cells(iZeile, 1),Cells(iZeile,4)).Copy _
WS3.Cells(WS3.Range"a65536").End(xlUp).Row + 1, 1)
Gruß
heinerv

Anzeige
AW: If - Abfrage verkürzen
03.08.2003 14:29:07
Erich M.
Hallo Heiner,
danke, es kommt aber leider der Laufzeitfehler 1004.
mfg
Erich

AW: If - Abfrage verkürzen
03.08.2003 14:53:30
heinerv
Hallo Erich,
kannst Du die Tabelle einstellen?
Heinerv

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige