Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1324to1328
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
Inhaltsverzeichnis

Kurze Frage

Kurze Frage
14.08.2013 17:53:43
Max
Guten Abend,
ich arbeite derzeit an einem ziemlich langen Marko, in dem ich immer wieder For-To-Schleifen verwende. Bisher habe ich für jede Schleife eine neue Variable deklariert und nun stellt sich mir die Frage, ob das nötig ist oder ob eine Variable für alle Schleifen genügt.
Bzw. wüsste ich gern wie man "sauber" programmiert, damit ich mir gleich von Anfang an einen guten Stil angewöhne :)
Mfg Max

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
etwas längere Antwort
14.08.2013 18:02:11
Matthias
Hallo Max
nun stellt sich mir die Frage, ob das nötig ist oder ob eine Variable für alle Schleifen genügt.
Das kommt drauf an was Du vorhast
Das Du gleich "sauber" programmieren willst, ist schon ok ..., aber ohne zu sehen wie Du es bisher machst, kann man ja nicht viel zu sagen ;-)
Ich benutze z.B. auch eine Variable mehrfach. In bestimmten Situationen, es ist also generell möglich.
Gruß Matthias

AW: etwas längere Antwort
14.08.2013 18:34:09
Max
Hi Matthias,
hab deine Antwort erst übersehen, wollte aber auch dir gern noch Danken.
Ich hänge mal einen Teil des Codes an, vielleicht habt ihr ja dann ein paar Tipps.
Mfg Max
Private Sub Create()
Application.ScreenUpdating = False
Application.Cursor = xlWait
Application.Calculation = xlCalculationManual
Worksheets("Ladebildschirm").Visible = True
Worksheets("Ladebildschirm").Activate
'1. Import Daten
Worksheets("Debitoren OP-Liste").Cells.Clear
Worksheets("Kreditoren Fälligkeitsübersicht").Cells.Clear
Dim QWB As Workbook, QWB2 As Workbook, ZWB As Workbook
Workbooks.Open "G:\Liquidität\Excel Export Debitoren OP-Liste (aus Anzeige).xlsx"
Workbooks.Open "G:\Liquidität\Excel Export Kreditoren Faelligkeitsuebersicht (aus Anzeige).xlsx"
Set QWB = Workbooks("Excel Export Debitoren OP-Liste (aus Anzeige).xlsx")
Set QWB2 = Workbooks("Excel Export Kreditoren Faelligkeitsuebersicht (aus Anzeige).xlsx")
Set ZWB = ThisWorkbook
Dim QWS As Worksheet, QWS2 As Worksheet, ZWS As Worksheet, ZWS2 As Worksheet
Set QWS = QWB.Worksheets("Debitoren OP-Liste")
Set ZWS = ZWB.Worksheets("Debitoren OP-Liste")
Set QWS2 = QWB2.Worksheets("Kreditoren Fälligkeitsübersicht")
Set ZWS2 = ZWB.Worksheets("Kreditoren Fälligkeitsübersicht")
QWS.Cells.Copy ZWS.Cells(1, 1)
QWS2.Cells.Copy ZWS2.Cells(1, 1)
Workbooks("Excel Export Debitoren OP-Liste (aus Anzeige).xlsx").Close
Workbooks("Excel Export Kreditoren Faelligkeitsuebersicht (aus Anzeige).xlsx").Close
'2. Kurs ausschneiden
Dim i As Long
For i = 2 To 1000
If Worksheets("Debitoren Op-Liste").Cells(i, "Q").Value = "Kurs:" Then
Worksheets("Debitoren Op-Liste").Cells(i, "Q").Cut Destination:=Worksheets("Debitoren Op-Liste").Cells(i, "T")
Worksheets("Debitoren Op-Liste").Cells(i, "O").Clear
End If
Next i
'3. Nullen_löschen
Dim e As Long
For e = 2 To 1000
If Worksheets("Debitoren Op-Liste").Cells(e, "O").Value = 0 Then
Worksheets("Debitoren Op-Liste").Cells(e, "O").Clear
End If
Next e
'4. OPs kopieren
Dim r As Long, n As Long
n = 19
Worksheets("Hilfstabelle").Range("L:L").Clear
For r = 2 To 1000
If Worksheets("Debitoren OP-Liste").Cells(r, "O").Value 0 Then
n = n + 1
Worksheets("Debitoren OP-Liste").Cells(r, "O").Copy Destination:=Worksheets("Hilfstabelle").Cells(n, "L")
End If
Next r
'5. Datum umwandeln
Worksheets("Debitoren OP-Liste").Columns("Q:Q").TextToColumns DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
'6. Mappe neu berechnen
Calculate
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Anzeige
Nicht ganz kurze AW: Also 1 'langer Lulatsch', ...
14.08.2013 18:05:03
Luc:-?
…dein Marko, Max… ;-)
nee, die Laufvariable kann auch immer dieselbe sein. Außerdem gibt's noch For Each-Schleifen, die schneller sind.
„Sauber pgmieren“ heißt u.a. auf unnötige .Select verzichten (der Hauptfehler), Konstanten verwenden, damit für eine ggf später mal erforderliche Änderung nicht das ganze Pgm durchsucht wdn muss und noch so einiges mehr, was du zT auch beim Mitlesen von Forumsbeiträgen erfährst. Der Rest ist genaue Überlegung, Sorgfalt, Erfahrung und je nachdem, worum es geht, auch ein gewisses Maß an Vorstellungskraft und Fantasie.
Basis sollte aber immer Kenntnis der Pgmierungsgrundlagen sein!
Gruß Luc :-?

Anzeige
Nicht ganz kurze AW: Also 1 'langer Lulatsch', ...
14.08.2013 18:19:57
Max
Hi Luc:-?,
danke für die schnelle Antwort. Das man nach Möglichkeit nicht selektieren oder aktivieren soll hab ich schon mit bekommen und somit in meinem MaKRo^^ zu 99,99% vermieden. Das die For-Each-Schleifen schneller sind ist ein guter Tipp.
Und zum Thema Basis: tja was soll ich sagen, Grundlagen der Programmierung kenn ich keine, da ich mir das alles im learing-by-doing Style erarbeite.
Mfg Max

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige