Herbers Excel-Forum - das Archiv
VBA-Code vereinfachen
Betrifft: VBA-Code vereinfachen
von: Fred
Geschrieben am: 15.02.2005 10:12:12
Hallo, liebes Excel-Forum.
Ich bräuchte mal ein bisschen Hilfe um dieses Makro zu vereinfachen, denn da man ja fast immer das gleiche ausführt(außer das es verschiedene Tabellen sind), müsste es doch bestimmt einfacher gehen.
Wäre nett wenn ihr einem Anfänger ein bisschen helfen könntet.
Schonmal vielen Dank im vorraus.
<pre>
Sub Zusammenfügen()
'
Sheets("Liste").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
'Tabelle303
Sheets("303").Select
Columns("A:M").Select
Selection.Copy
Sheets("Liste").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
, Transpose:=False
'Tabelle304
Range("A249").Select
Sheets("304").Select
Range("A2:M99").Select
Selection.Copy
Sheets("Liste").Select
ActiveSheet.Paste
Range("A249").Select
'Tabelle305
Range("A350").Select
Sheets("305").Select
Range("A2:M300").Select
Selection.Copy
Sheets("Liste").Select
ActiveSheet.Paste
Range("A350").Select
'Tabelle306
Range("A650").Select
Sheets("306").Select
Range("A2:M250").Select
Selection.Copy
Sheets("Liste").Select
ActiveSheet.Paste
Range("A650").Select
'Tabelle307
Range("A900").Select
Sheets("307").Select
Range("A2:M250").Select
Selection.Copy
Sheets("Liste").Select
ActiveSheet.Paste
Range("A900").Select
'Leerzeilen löschen
Dim Liste As Worksheet
Dim i%, lZeile%
Set Liste = Worksheets(1)
lZeile = Liste.Cells(Rows.Count, 1).End(xlUp).Row
For i = lZeile To 1 Step -1
If IsEmpty(Liste.Cells(i, 1)) Or _
Liste.Cells(i, 1) = "" Then
Rows(i).Delete
End If
Next i
End Sub</pre>
Betrifft: AW: VBA-Code vereinfachen
von: Josef Ehrensberger
Geschrieben am: 15.02.2005 11:02:26
Hallo Fred!
Ungetestet.
Sub Zusammenfügen()
Dim Liste As Worksheet
Dim i As Long, lZeile As Long
On Error GoTo ERRORHANDLER
Set Liste = Sheets("Liste")
Application.ScreenUpdating = False
With Liste
.Cells.ClearContents
'Tabelle303
Sheets("303").Columns("A:M").Copy .Range("A1")
'Tabelle304
Sheets("304").Range("A2:M99").Copy .Cells(.Cells(65536, 1).End(xlUp).Row + 1, 1)
'Tabelle305
Sheets("305").Range("A2:M300").Copy .Cells(.Cells(65536, 1).End(xlUp).Row + 1, 1)
'Tabelle306
Sheets("306").Range("A2:M250").Copy .Cells(.Cells(65536, 1).End(xlUp).Row + 1, 1)
'Tabelle307
Sheets("307").Range("A2:M250").Copy .Cells(.Cells(65536, 1).End(xlUp).Row + 1, 1)
'Leerzeilen löschen
lZeile = .Cells(65536, 1).End(xlUp).Row
For i = lZeile To 1 Step -1
If IsEmpty(.Cells(i, 1)) Or .Cells(i, 1) = "" Then
Rows(i).Delete
End If
Next i
End With
ERRORHANDLER:
Application.ScreenUpdating = True
End Sub
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Betrifft: AW: VBA-Code vereinfachen
von: Fred
Geschrieben am: 15.02.2005 11:59:30
Vielen Dank Josef, funktioniert ausgezeichnet. Danke.