Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
144to148
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code vereinfachen

Code vereinfachen
03.08.2002 21:18:36
Jens
Einen schönen abend zusammen
Wie kann man den nachfolgenden Code vereinfachen und kürzen?

Private Sub Bearbeiten_Click()
Dim intRow As Integer
If MultiPage1.Value = 0 Then
intRow = ListBox1.ListIndex + 2
With Sheets("Angebotsspeicher")
.Cells(intRow, 1).Copy 'Rechnungs-Nr.
Sheets("Rechnung").Range("E5").PasteSpecial Paste:=xlValues
.Cells(intRow, 2).Copy 'Kunden-Nr.
Sheets("Rechnung").Range("E4").PasteSpecial Paste:=xlValues
.Cells(intRow, 3).Copy 'Kunden-Name
Sheets("Rechnung").Range("B2").PasteSpecial Paste:=xlValues
.Cells(intRow, 4).Copy 'Straße
Sheets("Rechnung").Range("B3").PasteSpecial Paste:=xlValues
.Cells(intRow, 5).Copy 'PLZ & Ort
Sheets("Rechnung").Range("B4").PasteSpecial Paste:=xlValues
.Cells(intRow, 6).Copy 'Datum
Sheets("Rechnung").Range("E6").PasteSpecial Paste:=xlValues
.Cells(intRow, 7).Copy 'Betreff
Sheets("Rechnung").Range("B7").PasteSpecial Paste:=xlValues
.Range(.Cells(intRow, 8), .Cells(intRow, 31)).Copy 'lfd.-Nr.
Sheets("Rechnung").Range("A10").PasteSpecial Paste:=xlValues, Transpose:=True
.Range(.Cells(intRow, 32), .Cells(intRow, 55)).Copy 'Leistungsbeschreibung
Sheets("Rechnung").Range("B10").PasteSpecial Paste:=xlValues, Transpose:=True
.Range(.Cells(intRow, 56), .Cells(intRow, 79)).Copy 'Menge
Sheets("Rechnung").Range("D10").PasteSpecial Paste:=xlValues, Transpose:=True
.Range(.Cells(intRow, 80), .Cells(intRow, 103)).Copy 'E.-Preis
Sheets("Rechnung").Range("C10").PasteSpecial Paste:=xlValues, Transpose:=True
Selection.Rows.AutoFit
End With
End If
If MultiPage1.Value = 1 Then
intRow = ListBox2.ListIndex + 2
With Sheets("Rechnungsspeicher")
.Cells(intRow, 1).Copy 'Rechnungs-Nr.
Sheets("Rechnung").Range("E5").PasteSpecial Paste:=xlValues
.Cells(intRow, 2).Copy 'Kunden-Nr.
Sheets("Rechnung").Range("E4").PasteSpecial Paste:=xlValues
.Cells(intRow, 3).Copy 'Kunden-Name
Sheets("Rechnung").Range("B2").PasteSpecial Paste:=xlValues
.Cells(intRow, 4).Copy 'Straße
Sheets("Rechnung").Range("B3").PasteSpecial Paste:=xlValues
.Cells(intRow, 5).Copy 'PLZ & Ort
Sheets("Rechnung").Range("B4").PasteSpecial Paste:=xlValues
.Cells(intRow, 6).Copy 'Datum
Sheets("Rechnung").Range("E6").PasteSpecial Paste:=xlValues
.Cells(intRow, 7).Copy 'Betreff
Sheets("Rechnung").Range("B7").PasteSpecial Paste:=xlValues
.Range(.Cells(intRow, 8), .Cells(intRow, 31)).Copy 'lfd.-Nr.
Sheets("Rechnung").Range("A10").PasteSpecial Paste:=xlValues, Transpose:=True
.Range(.Cells(intRow, 32), .Cells(intRow, 55)).Copy 'Leistungsbeschreibung
Sheets("Rechnung").Range("B10").PasteSpecial Paste:=xlValues, Transpose:=True
.Range(.Cells(intRow, 56), .Cells(intRow, 79)).Copy 'Menge
Sheets("Rechnung").Range("D10").PasteSpecial Paste:=xlValues, Transpose:=True
.Range(.Cells(intRow, 80), .Cells(intRow, 103)).Copy 'E.-Preis
Sheets("Rechnung").Range("C10").PasteSpecial Paste:=xlValues, Transpose:=True
Selection.Rows.AutoFit
End With
End If
Unload Me
Range("C12").Select
Application.CutCopyMode = False
Rechnungssumme
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Code vereinfachen
03.08.2002 22:20:48
Charlie
Hallo, Jens!

Da eigentlich immer das gleich passiert, nur in einem anderen Blatt (abhängig von der MultiPage1.Value), habe ich die Aktionen in eine Schleife gepackt. Die Blätter werden über eine Variable "strShSource" angesprochen. Außerdem ist das Copy - Paste für die ersten Befehlszeilen, die nur 1 Zelle betreffen unnötig. Außerdem halte ich eine Referenzierung durch Angabe der Spaltenbezeichnung für übersichtlicher als die Cells-Variante, weil es - zumindest für mich - den Code leichter lesbar macht.

Die Optik, dass der Code genau so lang ist wie früher, täuscht. Ich habe die langen Befehlszeilen nur wegen der Anzeige im Forum ungebrochen.

Ich hoffe, Du kannst damit etwas anfangen.

Viel Erfolg,
Charlie

Anzeige
Re: Code vereinfachen
04.08.2002 09:54:37
UDF
Hallo Jens, hallo Charly,

in der 2. With-Anweisung wird Sheets("Rechnung") angesprochen, obwohl in strShDest ja "Rechnung" steht.
Mir leuchtet hier nicht ein, warum nicht direkt die Sheets angesprochen werden sollten.

z.B.:

Gruss
Markus

Ps.: Achja, Charly, ich bin auch immer dafür statt Integer lieber Long-Variablen zu nehmen. Wenn, dann sollte man die aber auch benutzen. ;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige