Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Code komprimieren?
#1
Hallo zusammen,

nachfolgendes Makro benutze ich um aus Tabelle Depot eine Zeile ausschneide und in Tabelle Depotkonto an erster freier Zeile wieder einfügen. Da das Makro lange läuft, wäre meine Frage, ob man das Ganze etwas entschlacken kann und somit schneller macht. Hier mein Code:
Sub verkaufen()
Dim startzeile As Integer

On Error GoTo Fehler

startzeile = InputBox("Wählen Sie die Zeilen-Nr. ihrer Aktie (Startzeile 4 bis Endzeile 33)")

Application.ScreenUpdating = False
With Worksheets("Depot")
If .Cells(startzeile, 4).Value = "" Or Not wksExits(.Cells(startzeile, 4).Value) Then
MsgBox "Fehler, bitte den zu löschenden Aktienwert markieren", vbExclamation
Exit Sub
End If
End With

Sheets("Depot").Select
Range(Cells(startzeile, 1), Cells(startzeile, 13)).Copy
Sheets("Depotkonto").Cells(Sheets("Depotkonto").Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("Depot").Select
Range(Cells(startzeile, 1), Cells(startzeile, 13)).Delete
Range("N4").Select
Selection.AutoFill Destination:=Range("N4:N33"), Type:=xlFillDefault
Range("N4:N33").Select

Call zeile_einfügen
Application.ScreenUpdating = True

Exit Sub
Fehler:
MsgBox "Ein Fehler ist aufgetreten, da die Angaben falsch waren! Bitte starten Sie die Abfrage neu!"

End Sub

Sub zeile_einfügen()
Sheets("Depot").Range("A32:N32").Select
Selection.AutoFill Destination:=Range("A32:N33"), Type:=xlFillDefault
Range("A32:N33").Select
Range("A3").Select
End Sub




VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel


Code erstellt und getestet in Office 14

Danke schon mal im Voraus!!!
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top
#2
Hallo Bernie,

nimm mal bitte kein Tool für die codedarstellung - die haben ein Zeilenende, was für die extra-Leerzeilen sorgt ... Es reicht, wenn Du den code nach dem Einfügen markierst und auf das # drückst ...

Ansonsten würde ich erst mal empfehlen, dass Du versuchst, die Zeilen mit Range ... Select mit der nächsten zu vereinigen.

Bei den Blättern mit .Select würde ich mal nachschauen, ob Du nicht eventuell schon auf dem jeweiligen Blatt bist. Dazu den code am besten schrittweise durchgehen.
Falls Du beim Makrostart definitiv auf dem Blatt Depot bist, kannst Du Dir da auch noch etwas sparen beim With ... und auch danach.

und bei diesen beiden Anweisungen unmittelbar nacheinander brauch ich doch nichts zu sagen, oder? :21:
Range("A32:N33").Select
Range("A3").Select
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallo André,

Danke für deine Vorschläge. Mit den Recorder-Aufzeichnungen und anschließender Bearbeitung habe ich das eine oder andere mal noch Probleme.
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste