VBA Laufzeitfehler 1004 Anwendungs-

Liebe VBAler,

kann mir jemand sagen, wo hier der Fehler liegt??

Sub Auswertung2()
Dim wSTAT As Worksheet, wAUSW As Worksheet
Dim aUr, aZiel()
Dim iUr As Long, iZiel As Long

Set wSTAT = Worksheets(„BU-Status“)
Set wAUSW = Worksheets(„BU-Auswertung“)

aUr = wSTAT.Range(„D50:AY1401“).Value
ReDim aZiel(UBound(aUr), 5)
For iUr = 1 To UBound(aUr)
If aUr(iUr, 18) = 1 Then
If aUr(iUr, 47) > 2 Then
If (AY = „AV“) And (AY = „ST“) And (AY = „CH“) And (AY = „DDC“) Then
aZiel(iZiel, 0) = aUr(iUr, 1) 'D
aZiel(iZiel, 1) = aUr(iUr, 9) 'L
aZiel(iZiel, 2) = aUr(iUr, 20) 'W
aZiel(iZiel, 3) = aUr(iUr, 21) 'X
aZiel(iZiel, 4) = aUr(iUr, 47) 'AX
aZiel(iZiel, 5) = aUr(iUr, 48) 'AY
iZiel = iZiel + 1
End If
End If
End If
Next iUr
wAUSW.Range(„A2“).Resize(iZiel, 6) = aZiel
End Sub

Die wAUSW.Range…wird mir über diese Laufzeitfehlermeldung (Laufzeitfehler 1004 - Anwendungs- oder objektdefinierter Fehler) gelb markiert.

Vielen Dank schon mal im Voraus!

LG

kann mir jemand sagen, wo hier der Fehler liegt??

Hallo Melja,

die innere IF-Schleife wird nie durchlaufen, denn

If (AY = „AV“) And (AY = „ST“) And (AY = „CH“) And (AY =„DDC“) Then

wird nie erfüllt, also bleibt iZeile Null und Excel meckert dann hier

wAUSW.Range(„A2“).Resize( iZiel , 6) = aZiel

weil es keine Zeilennummern Null kennt.

Wie wäre es damit:

If InStr("#AV#ST#CH#DDC#", „#“ & AY & „#“) > 0 Then

So oder so, daß iZeile Null bleibt mußt du abfangen.

Gruß
Reinhard

Hallo Reinhard,

vielen vielen Dank für Deinen Support. Ich werde Deinen Vorschlag gleich mal ausprobieren :smile:

Liebe Grüße
Melanie

Hallo Reinhard,

ich bekomme zwar keine Fehlermeldung mehr, aber irgendwie passiert nun gar nichts mehr. Wo ist denn jetzt schon wieder der Fehler?

Sub Auswertung3()
Dim wSTAT As Worksheet, wAUSW As Worksheet
Dim aUr, aZiel()
Dim iUr As Long, iZiel As Long

Set wSTAT = Worksheets(„BU-Status“)
Set wAUSW = Worksheets(„BU-Auswertung“)
aUr = wSTAT.Range(„D50:AY1401“).Value

ReDim aZiel(UBound(aUr), 6)
For iUr = 1 To UBound(aUr)
If aUr(iUr, 18) = 1 Then
If aUr(iUr, 47) > 2 Then
aZiel(iZiel, 0) = aUr(iUr, 1) 'D
aZiel(iZiel, 1) = aUr(iUr, 9) 'L
aZiel(iZiel, 2) = aUr(iUr, 20) 'W
aZiel(iZiel, 3) = aUr(iUr, 21) 'X
aZiel(iZiel, 4) = aUr(iUr, 47) 'AX
aZiel(iZiel, 5) = aUr(iUr, 48) 'AY
iZiel = iZiel + 1
End If
End If
Next
If InStr("#AV#ST#CH#DDC#", „#“ & AY & „#“) > 0 Then
End If
End Sub

Viele Grüße
Melanie

Hallo Melanie,

ich bekomme zwar keine Fehlermeldung mehr, aber irgendwie
passiert nun gar nichts mehr. Wo ist denn jetzt schon wieder
der Fehler?

Wer/was ist „AY“?

Gruß
Reinhard

Hi Reinhard,

kurze Erklärung

D / L / W / X / AX / AY

sind die Spalten, die aus der Tabelle „BU-Status“ ausgewertet sollen (Zeile 50:1401) und in die Tabelle „BU-Auswertung“ übernommen werden müssen, allerdings nur…

…wenn…(mehrere Kriterien müssen erfüllt sein)

Spalte U eine 1 beinhaltet
Spalte AX > 2 Tage
Spalte AY muss folgenden Inhalt, haben entweder CH oder ST oder AV oder DDC

Liebe Grüße
Melanie

D / L / W / X / AX / AY
sind die Spalten, die aus der Tabelle „BU-Status“ ausgewertet
sollen (Zeile 50:1401) und in die Tabelle „BU-Auswertung“
übernommen werden müssen, allerdings nur…
Spalte U eine 1 beinhaltet
Spalte AX > 2 Tage
Spalte AY muss folgenden Inhalt, haben entweder CH oder ST
oder AV oder DDC

Hallo Melanie,

nachfolgender Code ist ungetestet. Lasse ihn mal laufen. Was zeigt die Msgbox an? Wenn sich auf dem Blatt nix tat, nimm unten mal das Hochkomma raus und lass noch mal laufen.

Gruß
Reinhard

Sub Auswertung3()
Dim wSTAT As Worksheet, wAUSW As Worksheet
Dim aUr, aZiel()
Dim iUr As Long, iZiel As Long
Set wSTAT = Worksheets("BU-Status")
Set wAUSW = Worksheets("BU-Auswertung")
aUr = wSTAT.Range("D50:AY1401").Value
ReDim aZiel(UBound(aUr), 6)
For iUr = 1 To UBound(aUr)
 If aUr(iUr, 18) = 1 Then
 If aUr(iUr, 47) \> 2 Then
 If InStr("#AV#ST#CH#DDC#", "#" & aUr(iUr, 48) & "#") \> 0 Then
 aZiel(iZiel, 0) = aUr(iUr, 1) 'D
 aZiel(iZiel, 1) = aUr(iUr, 9) 'L
 aZiel(iZiel, 2) = aUr(iUr, 20) 'W
 aZiel(iZiel, 3) = aUr(iUr, 21) 'X
 aZiel(iZiel, 4) = aUr(iUr, 47) 'AX
 aZiel(iZiel, 5) = aUr(iUr, 48) 'AY
 iZiel = iZiel + 1
 End If
 End If
 End If
Next
MsgBox iZiel
'wSTAT.Range("D50:AY1401") = aZiel
End Sub

Hallo Reinhard,

habe soeben Deine Idee umgesetzt, aber hat auch nicht funktioniert…Erst kam ein kleines Fenster mit 12 (???) als Inhalt…dann eine Skala, als ob er tatsächlich die Daten übernimmt…und zu guter letzt wurde die auszuwertende Tabelle umformatiert (glücklicherweise basteln ich nur an einer Kopie herum :wink:).
Was war denn jetzt hier das Problem? Bin total ratlos…:frowning:

LG
Melanie

Hallo Melanie,

Erst kam ein kleines Fenster mit 12 (???) als
Inhalt…

wieso „???“?, das bedeutet die 3 IFs waren in 12 Fällen alle erfüllt.

dann eine Skala, als ob er tatsächlich die Daten
übernimmt

Was für eine Skala?

…und zu guter letzt wurde die auszuwertende Tabelle
umformatiert

Was genau geschah?

Gruß
Reinhard

D / L / W / X / AX / AY

sind die Spalten, die aus der Tabelle „BU-Status“ ausgewertet
sollen (Zeile 50:1401) und in die Tabelle „BU-Auswertung“
übernommen werden müssen, allerdings nur…

…wenn…(mehrere Kriterien müssen erfüllt sein)

Spalte U eine 1 beinhaltet
Spalte AX > 2 Tage
Spalte AY muss folgenden Inhalt, haben entweder CH oder ST
oder AV oder DDC

Hallo Melanie,

wenn alle 3 bedingungen zutreffen sollen jeweils 6 Werte aus BU-Satatus übernommen werden, okay.
Wohin in BU-Auswertung sollen sie denn geschrieben werden?

Gruß
Reinhard

Hallo Reinhard,

die ausgewerteten Daten aus „BU-Status“ sollen dann in das Register „BU-Auswertung“ kopiert werden, wenn die Bedingungen erfüllt sind. Hierfür habe ich dann die Spalten A - F vorgesehen ab Zeile 2.

Viele Grüße
Melanie

die ausgewerteten Daten aus „BU-Status“ sollen dann in das
Register „BU-Auswertung“ kopiert werden, wenn die Bedingungen
erfüllt sind. Hierfür habe ich dann die Spalten A - F
vorgesehen ab Zeile 2.

Hallo Melanie,

Sub Auswertung3()
Dim wSTAT As Worksheet, wAUSW As Worksheet
Dim aUr, aZiel()
Dim iUr As Long, iZiel As Long
Set wSTAT = Worksheets("BU-Status")
Set wAUSW = Worksheets("BU-Auswertung")
aUr = wSTAT.Range("D50:AY1401").Value
ReDim aZiel(UBound(aUr), 6)
For iUr = 1 To UBound(aUr)
 If aUr(iUr, 18) = 1 Then
 If aUr(iUr, 47) \> 2 Then
 If InStr("#AV#ST#CH#DDC#", "#" & aUr(iUr, 48) & "#") \> 0 Then
 aZiel(iZiel, 0) = aUr(iUr, 1) 'D
 aZiel(iZiel, 1) = aUr(iUr, 9) 'L
 aZiel(iZiel, 2) = aUr(iUr, 20) 'W
 aZiel(iZiel, 3) = aUr(iUr, 21) 'X
 aZiel(iZiel, 4) = aUr(iUr, 47) 'AX
 aZiel(iZiel, 5) = aUr(iUr, 48) 'AY
 iZiel = iZiel + 1
 End If
 End If
 End If
Next
If iZiel \> 0 Then wAUSW.Range("A2:F1352") = aZiel
End Sub

Huhu,…habe es gerade ausprobiert…anscheinend ist da echt der WURM drin…:frowning:
Jetzt gibt es folgende Fehlermeldung:

Laufzeitfehler ‚13‘:
Typen unverträglich

If aUr(iUr, 18) = 1 Then

Grüße
Melanie

Hallo Malanie,

Huhu,…habe es gerade ausprobiert…anscheinend ist da echt
der WURM drin…:frowning:

kriegen wir hin *zur Wurmklatsche greif* :smile:

Laufzeitfehler ‚13‘:
Typen unverträglich

If aUr(iUr, 18) = 1 Then

*hmmh*, Sinn macht diese meldung nur wenn in der Zelle die da verglichen wird und hinter aUr(iUr, 18) steht etwas in sich hat was man mit 1 nicht vergleichen kann.
Der variablentyp von aUr wurde nicht deklariert. iUr ist ein Integer.
Irgendwie seltsam.

Ich glaube wir müssen die Taktik wechseln.

Lade dir mal diese Mappe herunter.
Da funktioniert mein Code.

WEnn du dadurch nicht weiterkommst, mußt du deinerseits eine Mappe hochladen, wo der Code nicht funktioniert.

Gruß
Reinhard

Hallo Reinhard,

habe mir mal gerade Deinen VBA code kopiert und diesen in meine Arbeitsmappe eingefügt. Wieder…keine Fehlermeldung, aber nichts ist passiert :frowning:

Wie kann ich Dir denn etwas verlinken? Damit Du Dir das anschauen kannst?

Liebe Grüße
Melanie

Hallo melanie,

habe mir mal gerade Deinen VBA code kopiert und diesen in
meine Arbeitsmappe eingefügt. Wieder…keine Fehlermeldung,
aber nichts ist passiert :frowning:

eben kam noch ein Fehler, jetzt tut sich nix, was machst du?

Wie kann ich Dir denn etwas verlinken? Damit Du Dir das
anschauen kannst?

Lade eine Mappe hoch mit file-upload o.ä., s. FAQ:2606

Nachfrage, meine Mappe klappt bei dir oder auch nicht?

Gruß
Reinhard

Hallo Reinhard,

aufgrund der Vertraulichkeit der Datei, musste ich Dir mal schnell ein Beispiel „zaubern“. Hoffe, dass Du anhand dieser Tabelle etwas „visuelles“ hast.

http://www.file-upload.net/download-2976724/Beispiel…

Grüße
Melanie

aufgrund der Vertraulichkeit der Datei, musste ich Dir mal
schnell ein Beispiel „zaubern“. Hoffe, dass Du anhand dieser
Tabelle etwas „visuelles“ hast.

http://www.file-upload.net/download-2976724/Beispiel…

Hallo Melanie,

da kann ich nix visuelles haben, da ist kein Code drinnen und noch schlimmer keinerlei Daten :frowning:

Ich hatte eine Mappe hochgeladen wo der Code funktioniert.
Keine Reaktion deinerseits darauf :frowning:

Zum Datenschutz, es geht ja nur um 6 Spalten. Ergo lösche alle anderen. Falls Formeln im Spiel sind, vorher alle 6 Spalten markieren, dann Strg+c, dann Bearbeiten----Inhalte Einfügen—Werte.
Falls jetzt noch in den 6 Spalten wichtige Daten stehen, anonymisiere sie.

Und, ich brauch nicht Zeilen 50-1401, 50-70 reicht.
Dann bau meinen Code ein.

Gruß
Reinhard

Lieber Reinhard,

erst einmal ein big sorry,…
Da ich dieses Thema zwischen meinem alltäglichen Job noch erledigen muss, hatte ich nicht genügend Zeit.
Ist keine böse Absicht von mir gewesen.
Ich werde mich mal morgen früh noch mal „ordentlich“ hinsetzen, wenn ich wieder im Büro bin, um Dir dieses besser (mit den Codes etc.) darzustellen.
Hoffe, dass das für Dich in Ordnung ist. Kann mich nur noch einmal entschuldigen. Leider ist meine Zeit oft knapp…und muss teilweise so etwas nach Feierabend machen.
Viele Grüße & bis morgen…
Melanie

Guten Morgen Reinhard,

wie gestern thematisiert, habe ich jetzt mal eine „ordentliche“ Tabelle erstellt.

http://www.file-upload.net/download-2977636/Beispiel…

Viele Grüße
Melanie