AW: Userform Listbox
26.09.2011 19:27:32
fcs
Hallo Stefan,
es ist weder aufwendig noch aufwändig (Es sind nach der Deutschen Rechtschreibreform wohl beide Schreiben zulässig.)
Im nachfolgende Makro werden alle Zeilen aus Blatt Tabelle1 ins Blatt Daten übertragen. Die Zeilen im Blatt Daten werden dabei über die ID gesucht.
Es werden die kompletten Zeilen kopiert.
Gruß
Franz
Private Sub CommandButton2_Click()
'Re-Import der Daten ins Blatt "Daten"
Dim wksQuelle As Worksheet, Zeile As Long
Dim wksZiel As Worksheet, ZelleID As Range, vID As Variant
Set wksQuelle = Worksheets("Tabelle1")
Set wksZiel = Worksheets("Daten")
If MsgBox("Daten ins Blatt """ & wksZiel.Name & """ übertragen?", _
vbQuestion + vbOKCancel, "Re-Import nach Blatt """ & wksZiel.Name & """") _
= vbNo Then GoTo Beenden
With wksQuelle
For Zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp)
vID = .Cells(Zeile, 1).Value
Set ZelleID = wksZiel.Columns(1).Find(what:=vID, lookat:=xlWhole, LookIn:=xlValues)
If ZelleID Is Nothing Then
MsgBox "Die ID-Nr. """ & vID & """ wurde im Blatt ""Daten "" in Spalte A nicht gefunden" _
, _
vbInformation, "Re-Import nach Blatt ""Daten"""
Else
'Komplette Zeilen kopieren
.Rows(Zeile).Copy Destination:=wksZiel.Rows(ZelleID.Row)
'nur die Spalten P bis R kopieren
' .Range(.Cells(Zeile, 16), .Cells(Zeile, 18)).Copy _
Destination:=wksZiel.Cells(ZelleID.Row, 16)
End If
Next
End With
Beenden:
Set wkszeil = Nothing: Set wksQuelle = Nothing: Set ZelleID = Nothing
End Sub