Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vergleichen und Kopieren

Forumthread: Vergleichen und Kopieren

Vergleichen und Kopieren
23.10.2007 13:29:00
Klaus
Hallo Forum,
ich habe einen 10spaltigen Wertebereich 1 (A1:J141) mit Spaltenüberschriften
und einen zu vergleichenden Bereich 2 (Q2:Z6722) mit den gleichen Überschriften
(Name 1 = StdPlanSpalte, Name 2 = StdPlanAlles).
Es sollen nun zeilenweise die Werte von (Bereich 1.Spalte B) verglichen werden mit den
Werten (Bereich 2.Spalte R). Bei Übereinstimmung sollen die Werte der Zeile aus dem Bereich 1
über die Fundstellen-Zeile von Bereich 2 kopiert werden. Das habe ich mit untenstehendem Makro
bereits gelöst. Jetzt meine Frage:
Wenn KEINE Übereinstimmung gefunden wird, soll die zu kopierende Zeile in die erste freie Zeile
im Bereich 2 kopiert werden. Kann mir da jemand von Euch helfen?
Beispielmappe anbei
https://www.herber.de/bbs/user/47014.xls
Für Antworten Dank im voraus
Klaus

Sub VergleichenKopieren()
Dim rng As Range
Dim iRow As Integer
iRow = 2
Do Until IsEmpty(Cells(iRow, 2))
Set rng = Worksheets("Archiv").Columns(18).Find( _
what:=Cells(iRow, 2), lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
Range(rng.Offset(0, -1), rng.Offset(0, 8)).Value = _
Range(Cells(iRow, 1), Cells(iRow, 11)).Value
End If
***wenn keine Fundstelle, dann Copy in 1. leere Zeile Bereich 2***
iRow = iRow + 1
Loop
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Vergleichen und Kopieren
23.10.2007 14:10:00
Peter
Hallo Klaus,
wenn ich dich richtig verstanden habe, dann so:

Public Sub VergleichenKopieren()
Dim WkSh     As Worksheet
Dim rng      As Range
Dim iRow     As Integer
Dim lLetzte  As Long
Set WkSh = Worksheets("Archiv")
iRow = 2
Do Until IsEmpty(Cells(iRow, 2))
Set rng = WkSh.Columns(18).Find( _
What:=Cells(iRow, 2), Lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
WkSh.Range(rng.Offset(0, -1), rng.Offset(0, 8)).Value = _
WkSh.Range(Cells(iRow, 1), Cells(iRow, 11)).Value
Else
lLetzte = Range("Q65536").End(xlUp).Row + 1
WkSh.Range(Cells(iRow, 1), Cells(iRow, 10)).Copy Destination:= _
WkSh.Cells(lLetzte, 17)
End If
'***wenn keine Fundstelle, dann Copy in 1. leere Zeile Bereich 2***
iRow = iRow + 1
Loop
End Sub


Gruß Peter

Anzeige
AW: Vergleichen und Kopieren
23.10.2007 14:34:00
Klaus
Hallo Peter,
super, vielen Dank! Klappt hervorragend. Eine Frage hätte ich noch:
Wenn ich beim Kopieren nicht die erste freie Zeile von UNTEN
sondern immer von OBEN füllen wollte, wie müßte dann die Variable
lLetzte = Range("Q65536").End(xlUp).Row + 1
definiert sein?
Vielen Dank noch einmal
Klaus
:-)

Anzeige
AW: Vergleichen und Kopieren
23.10.2007 15:11:30
Peter
Hallo Klaus,
dazu fällt mir z. Zt. nur folgendes ein:

Public Sub erstefreie()
Dim lErste  As Long: lErste = 2
Do
If Cells(lErste, 17) = "" Then Exit Do
lErste = lErste + 1
Loop Until Cells(lErste, 17) = ""
MsgBox "die erste freie Zelle ist in Zeile  """ & lErste & """ ", _
64, "   Info für " & Application.UserName
End Sub


Gruß Peter

Anzeige
herzlichen Dank
23.10.2007 15:19:00
Klaus
Herzlichen Dank Peter,
das hilft mir sehr weiter ...
Gruß aus Hamburg
Klaus

AW: herzlichen Dank
23.10.2007 15:20:00
Peter
Hallo Klaus,
auch das geht:
lErste = ActiveSheet.Range("Q2:Q1000").SpecialCells(xlCellTypeBlanks).Row
Gruß Peter

AW: herzlichen Dank
23.10.2007 16:15:00
Klaus
Hallo Peter,
das ist ja noch besser (kürzer). Super.
Einen schönen Tag noch
Klaus
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