Thema Datum  Von Nutzer Rating
Antwort
19.03.2021 20:54:38 Neuer Nutzer
NotSolved
19.03.2021 21:33:35 Gast29164
NotSolved
20.03.2021 09:24:54 volti
NotSolved
Blau Quelltextoptimierung
20.03.2021 11:39:52 Neuer Nutzer
NotSolved
20.03.2021 12:08:31 volti
NotSolved

Ansicht des Beitrags:
Von:
Neuer Nutzer
Datum:
20.03.2021 11:39:52
Views:
519
Rating: Antwort:
  Ja
Thema:
Quelltextoptimierung

Moin Karl-Heinz,

vielen Dank für die Antwort.

Ich muss dazu sagen, dass ich noch relativ neu bin was VBA angeht, daher musste ich mir den Quelltext erst mehrfach anschauen um zu verstehen was genau gemacht wird.

Ich verstehe den Quelltext folgendermaßen.

Zuerst werden die String Aray sBer1 und sBer2 dekrlariert (vermutlich bedeutet das Ber "Bereich")

Anschließend die beiden Long Werte für die Quellzeile und die Zielzeile sowie die Integer I für die spätere Schleife.

Bei der nächsten Zeile stocke ich ein wenig.

IZIZ = Range("Zielzeile").Row (Muss ich da nicht einen Bereich bzw. die Zelladresse/Bereich als String angeben bei Range ? Hier ist aber der Begriff "Zielzeile"

Das selbe mit der IZIQ Variable.

Nun kommt der Teil, den ich nicht zu 100 Prozent nachvollziehen kann.

sBer1 = Split(Replace("A2:B2 D2:F2 H2 J2", "2", IZIZ))

Wenn ich IZIZ nun mit einem Bereich definiert habe, dann ist dieser doch auch wieder fest hinterlegt, und wenn ich dann eine Zeile oberhalb der Tabelle einrichte änddert sich dies doch in der Tabelle, aber nicht im Code...

Die Zeile an Sich kann ich nachvollziehen, sBer1 Müsste dann der Buchstabe und überall wo 2 wäre durch den Wert IZIZ ausgetauscht werden.

Ich habe hier nochmal das komplette Makro, damit man sich ein besseres Bild machen kann.

Sub Auszahlen()

    Worksheets("Offen").Select
    Range("Tabelle1").Sort _
    Key1:=Range("A8"), _
    Order1:=xlAscending, _
    Header:=xlYes


    If Range("A8") = "Ausgezahlt" Then
    
    
    Worksheets("Ausgezahlt").Rows("2:2").Insert _
    Shift:=xlDown, _
    CopyOrigin:=xlFormatFromRightOrBelow
    
 
    Worksheets("Offen").Range("E8:F8").Copy
    Worksheets("Ausgezahlt").Range("A2:B2").PasteSpecial Paste:=xlPasteValues

    Worksheets("Offen").Range("G8:I8").Copy
    Worksheets("Ausgezahlt").Range("D2:F2").PasteSpecial Paste:=xlPasteValues

    Worksheets("Offen").Range("C8").Copy
    Worksheets("Ausgezahlt").Range("H2").PasteSpecial Paste:=xlPasteValues

    Worksheets("Offen").Range("K8").Copy
    Worksheets("Ausgezahlt").Range("J2").PasteSpecial Paste:=xlPasteValues
    
    Worksheets("Ausgezahlt").Select
    Range("Tabelle8").Sort _
    Key1:=Range("I2"), _
    Order1:=xlAscending, _
    Header:=xlYes
    
    Range("A1").Select
    
    Worksheets("Offen").Rows("8:8").Delete
    
    Worksheets("Offen").Select
    Range("Tabelle1").Sort _
    Key1:=Range("B8"), _
    Order1:=xlAscending, _
    Header:=xlYes
    
    Range("A1").Select
    Worksheets("Ausgezahlt").Select
    MsgBox "Die Daten wurden erfolgreich verschoben. Bitte noch Abteilung und Auszahlung angeben."
    
    Else
    Range("Tabelle1").Sort _
    Key1:=Range("B8"), _
    Order1:=xlAscending, _
    Header:=xlYes
    
    MsgBox "Bitte vorher den ausgezahlten Kunden auf Status ausgezahlt stellen."
     End If
End Sub


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
19.03.2021 20:54:38 Neuer Nutzer
NotSolved
19.03.2021 21:33:35 Gast29164
NotSolved
20.03.2021 09:24:54 volti
NotSolved
Blau Quelltextoptimierung
20.03.2021 11:39:52 Neuer Nutzer
NotSolved
20.03.2021 12:08:31 volti
NotSolved