VBA-Code vereinfachen

Bild

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>

Bild


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!


Bild


Betrifft: AW: VBA-Code vereinfachen von: Fred
Geschrieben am: 15.02.2005 11:59:30

Vielen Dank Josef, funktioniert ausgezeichnet. Danke.


 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA-Code vereinfachen"