Ohh Jeh
06.02.2012 21:14:44
Dirk
Hallo Mario,
Ich denke mal der Code geht schöner, kürzer und mit weniger Selectionen aber er Funktioniert.
Vieleicht hat ein anderer ja ne Idee wie man den noch kürzen kann
Sub test()
Dim i As Integer, art(1 To 5) As String, lnr As String
Dim lfnr As Range
If Sheets("tabelle1").Select Then
Do While ActiveCell.Column 1
ActiveCell.Offset(0, -1).Range("A1").Select
Loop
else
Msgbox("Unzulässiges Blatt")
end
End If
For i = 1 To 5
art(i) = ActiveCell
ActiveCell.Offset(0, 1).Range("A1").Select
Next i
Sheets("Tabelle2").Select
Range("a6").Select
LZ
ezlinks
For i = 1 To UBound(art) 'eigendlich Quatsch weil ubound(art) immer 5 ist
ActiveCell = art(i)
ActiveCell.Offset(0, 1).Range("A1").Select
Next i
lnr = Sheets("tabelle2").Range("f2")
With ThisWorkbook.Sheets("tabelle3").Range("a1:a2000")
Set lfnr = .Find(what:=lnr, after:=.Range("A1"), LookIn:=xlValues, _
lookat:=xlWhole, searchdirection:=xlPrevious)
End With
Sheets("tabelle3").Select
Range("a1").Select
If lfnr Is Nothing Then
LZ
ActiveCell = lnr
ActiveCell(1, 3).Range("A1") = Date 'wieso hier jetzt (1,6) versteh ich gerade auch nicht
End If
LZ
ezlinks
For i = 1 To UBound(art)
ActiveCell = art(i)
ActiveCell.Offset(0, 1).Range("A1").Select
Next i
Sheets("tabelle1").Select
ezlinks
End Sub
Private Sub LZ()
Do While ActiveCell ""
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
End Sub
Private Sub ezlinks()
Do While ActiveCell.Column 1
ActiveCell.Offset(0, -1).Range("A1").Select
Loop
End Sub
Ach und Räum mal deine Macros auf ist ja grauenhaft wieviel müll du da hast :-D
überflüssige Module kann man mit rechtsklick wieder entfernen.
Wieso deine Macros nicht liefen:
1. Problem verbundene Zellen.
bei Past (einfügen) von Daten in eine solche Zelle meckert Excel die Zellenformatierung an ( ungleiche Breiten oder so)
2. With
With heißt so viel wie mit
da kommt es dann genau auf die Schreibweise an.
hier ein Beispiel
du befindest dich in Sheets("Tabelle1")
with Sheets("tabelle2")
.Range("A1").copy
Range("A1").paste
end With
macht auf den ersten blick keinen sinn, da er die Zelle A1 kopiert und in Zelle A1 einfügt aber der . macht den unterschied
. =With
Er kopiert die Daten aus Sheets("tabelle2").Range("A1") und fügt diese in Range("A1") ein.
Gruß
Dirk