Microsoft Excel

Herbers Excel/VBA-Archiv

Makro wird nur teilweise ausgeführt


Betrifft: Makro wird nur teilweise ausgeführt von: Florian
Geschrieben am: 28.03.2018 09:21:10

Hallo Liebe Forengemeinde,

ich habe ein Problem mit einem Excel Makro. Das Makro soll aus einer Tabelle (verschiedene Kategorien in den Zeilen und eine Zeitreihe über die Spalten) Zahlen auslesen und in einer untereinander darstellen (Datum/Kategorie/Wert...). Das Funktioniert soweit auch sehr gut nur hätte ich jetzt gerne pro Spalte noch ein Kommentarfeld hinzugefügt (eines Pro Monat).

Mein Problem ist nun, dass beim ausführen des Makros zwar das Kommentar genommen wird, aber der darauf folgende Befehl wird nicht mehr durchgeführt:

Next l
With WB2
.Sheets(1).Range("B:X").Delete
.Save
.Close


Hat jemand eine Idee was ich hier übersehe?

Der gesamte Code:

WB1.Activate
k = 0
For l = 4 To 15
    i = 5
    r = 37
    j = 4

    Do Until WB1.Sheets(l).Cells(4, j).Value = ""
        i = 5
        Do Until WB1.Sheets(l).Cells(i, 1).Value = ""
            If WB1.Sheets(l).Cells(i, j).Value = "" Or WB1.Sheets(l).Cells(i, j).Value = 0 Then
                i = i + 1
            Else
                k = k + 1
                WB2.Sheets(1).Cells(k, 1).Value = Format(WB1.Sheets(l).Cells(4, j).Value, " _
yyyymmdd")
                WB2.Sheets(1).Cells(k, 2).Value = Round(WB1.Sheets(l).Cells(i, j).Value, 0)
                WB2.Sheets(1).Cells(k, 3).Value = WB1.Sheets(l).Cells(2, 3).Value
                WB2.Sheets(1).Cells(k, 4).Value = WB1.Sheets(l).Cells(i, 1).Value
                WB2.Sheets(1).Cells(k, 5).Value = WB1.Sheets(l).Cells(r, j).Value
                WB2.Sheets(1).Cells(k, 1).Value = WB2.Sheets(1).Cells(k, 1).Value & ";" & WB2.   _
 _
 _
_
_
Sheets(1).Cells(k, 2).Value & ";" & WB2.Sheets(1).Cells(k, 3).Value & ";" & _
                WB2.Sheets(1).Cells(k, 4).Value & ";" & ";" & WB2.Sheets(1).Cells(k, 5).Value
                
                i = i + 1
            End If
        Loop
        j = j + 1
    Loop
    j = 4
    Do Until WB1.Sheets(l).Cells(4, j).Value = ""
        i = 19
        Do Until WB1.Sheets(l).Cells(i, 1).Value = ""
            If WB1.Sheets(l).Cells(i, j).Value = "" Or WB1.Sheets(l).Cells(i, j).Value = 0 Then
                i = i + 1
            Else
                k = k + 1
                WB2.Sheets(1).Cells(k, 1).Value = Format(WB1.Sheets(l).Cells(4, j).Value, " _
yyyymmdd")
                WB2.Sheets(1).Cells(k, 2).Value = Round(WB1.Sheets(l).Cells(i, j).Value, 0)
                WB2.Sheets(1).Cells(k, 3).Value = WB1.Sheets(l).Cells(2, 3).Value
                WB2.Sheets(1).Cells(k, 4).Value = WB1.Sheets(l).Cells(i, 1).Value
                WB2.Sheets(1).Cells(k, 5).Value = WB1.Sheets(l).Cells(r, j).Value
                WB2.Sheets(1).Cells(k, 1).Value = WB2.Sheets(1).Cells(k, 1).Value & ";" & WB2.   _
 _
 _
_
_
Sheets(1).Cells(k, 2).Value & ";" & WB2.Sheets(1).Cells(k, 3).Value & ";" & _
                WB2.Sheets(1).Cells(k, 4).Value & ";" & ";" & WB2.Sheets(1).Cells(k, 5).Value
                
                i = i + 1
            End If
        Loop
        j = j + 1
    Loop
Next l
With WB2
    .Sheets(1).Range("B:X").Delete
    .Save
    .Close
End With

  

Betrifft: AW: Makro wird nur teilweise ausgeführt von: Oberschlumpf
Geschrieben am: 01.04.2018 08:26:48

Hi Florian,

eine Bsp-Datei per Upload, die die erforderlichen Bsp-Daten und den VBA-Code enthält, wäre schön.
Gestalte die Datei so, dass dein Problem nachvollziehbar ist.

Ciao
Thorsten


Beiträge aus dem Excel-Forum zum Thema "Makro wird nur teilweise ausgeführt"