Herbers Excel-Forum - das Archiv

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
Excel-Beispiele zum Thema "VBA-Code vereinfachen"
Für ein VBE-Projekt mit VBA-Code ein Paßwort festlegen UserForm mit ComboBoxes durch VBA-Code erstellen
ComboBoxes per VBA-Code in Tabellenblatt erzeugen VBA-Code auf Schaltflächen-Klick auskommentieren
VBA-Code als Zellkommentar anzeigen Aktive Arbeitsmappe ohne VBA-Code und Button speichern
Dialog-Datumseingabe vereinfachen und kontrollieren