... schrieb am 10.11.2010 10:03:15:
hallo zusammen!
ich hab ein etwas größeres problem. ich habe 2 excel-dateien:
(datei 1: TEST_Eingelesene Belege.xls
datei2: TEST_Prüfbutton.xls)
in datei 1 steht in der zelle A2 eine belegnummer, diese soll in datei 2 in die spalte A kopiert werden. das problem ist, dass zum beispiel A1 und A2 schon belegt sind, dh, der wert aus datei 1 soll automatisch in die nächste freie zeile in spalte A der datei 2 kopiert werden. (prinzip: ein beleg nach dem anderen)
der nächste punkte wäre, dass die belegnummer überhaupt nur dann in datei 2 kopiert werden soll, wenn sie nicht schon bereits irgendwo in spalte A steht. dh ich bräuchte gleichzeitig einen code, der irgendwie alle schon in der spalte A stehenden werte prüft. ist dieser bereits vorhanden soll eine msgbox erscheinen ( MsgBox ("Beleg-Nr. wurde bereits eingelesen!")).
das ganze soll dazu dienen, dass man eine übersicht bekommt, über alle belegnummern, die schon einmal angeschaut wurden, damit man nicht alles doppelt macht.
kann mir da bitte jemand weiterhelfen? wäre wirklich super!! danke!
Code für Datei2:
List alle OFFENEN Dateien ein! Keine Dateien offen lassen, die hier nicht verwertet werden sollen!
Sub Eintrag()
Dim WB As Excel.Workbook
Dim LetzteZeile As Long
Dim SuchBegriff As Variant
Dim Gefunden As Variant
On Error Resume Next
Dim LaufZahl As Long
With ThisWorkbook.ActiveSheet
LetzteZeile = .Cells.Rows.Count
LetzteZeile = .Cells(LetzteZeile, 1).End(xlUp).Row
For Each WB In Workbooks
If WB.Name <> ThisWorkbook.Name Then
SuchBegriff = WB.ActiveSheet.Range("A2")
Gefunden = Application.WorksheetFunction.Match(SuchBegriff, .Range(.Cells(1, 1), .Cells(LetzteZeile, 1)), 0)
If Err.Number <> 0 Then Err.Clear
If IsEmpty(Gefunden) Then
.Cells(LetzteZeile + 1, 1) = SuchBegriff
LetzteZeile = LetzteZeile + 1
Else
MsgBox "Belegnummer " & SuchBegriff & " wurde bereits eingelesen!", vbExclamation, "Hinweis..."
End If
End If
Next
End With
End Sub
Severus |