Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1288to1292
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

Laufzeitfehler '424'

Laufzeitfehler '424'
07.12.2012 11:31:43
fly
hallo Leute,
ich bin Anfänger und habe ein Makro eines Kollegen für meine Bedrüfnisse angepasst.
Hierbei ist es störend, dass ich - bei einer Schleife von Kopieren etc. - zu sehen, was genau passiert.
Ich wollte dann mit dem Befehl "Application.EnableEvents = False" die Aktualisierung des Bildschirms ausstellen, aber das Makro wird nicht ausgeführt sondern füht zu einem Laufzeitfehler '424 Objekt erforderlich?
Da ich ein Anfänger bin, kann ich mit der Hilfebeschreibung nichts anfangen, vielleicht kann mir jemand helfen!
Danke + Grüße

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler '424'
07.12.2012 11:33:57
fly
Ich meinte den Befehl: Application.ScreenUpdating = False

AW: Laufzeitfehler '424'
07.12.2012 11:40:39
fly
Application.ScreenUpdating = False meinte ich!

AW: Laufzeitfehler '424'
07.12.2012 11:45:43
Matze,Matthias
Hallo fly, ( realname bitte)
poste doch mal deinen Code, mit deinen Vermutungen liegst du schon richtig
aber ob du sie richtig einsetzt können wir nicht sehen.
Matze

AW: Laufzeitfehler '424'
07.12.2012 12:09:19
Kathy,
Hallo Matze,
das ist aber ein langer Code:
Sub SpkEinlesenDateiAnlegen()
'Application.EnableEvents = False
'Applicaton.ScreenUpdating = True
'Application.ScreenUpdating = False
'Übertrag der Datenüberschrift für Liquiditätslage
Sheets("Grundsatz").Select
Rows("1:3").Select
Selection.Copy
Sheets("Seite 15b").Select
Range("A34").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Grundsatz").Select
Application.CutCopyMode = False
'Übertrag der Datenüberschrift für Verbindlichkeiten
Sheets("PSt_Einlagen").Select
Rows("1:3").Select
Selection.Copy
Sheets("Seite 29").Select
Range("A50").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Seite 31").Select
Range("A51").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("PSt_Einlagen").Select
Application.CutCopyMode = False
'Übertrag der Datenüberschrift für Kredite
Sheets("PSt_Branchen").Select
Rows("1:2").Select
Selection.Copy
Sheets("Seite 38").Select
Range("A31").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("PSt_Branchen").Select
Application.CutCopyMode = False
Rows("5:8").Select
Selection.Copy
Sheets("Seite 38").Select
Range("A35").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("PSt_Branchen").Select
Application.CutCopyMode = False
'Übertrag der Datenüberschrift für Gewi Durchschnitt
Sheets("Überblick").Select
Rows("1:3").Select
Selection.Copy
Sheets("Durchschnitt").Select
Range("A32").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Dim Name As String
Dim Sparkasse(52) As String
Sparkasse(1) = "2103"
Sparkasse(2) = "2105"
Sparkasse(3) = "2106"
Sparkasse(4) = "2107"
Sparkasse(5) = "2108"
Sparkasse(6) = "2110"
Sparkasse(7) = "2111"
Sparkasse(8) = "2112"
Sparkasse(9) = "2113"
Sparkasse(10) = "2114"
Sparkasse(11) = "2115"
Sparkasse(12) = "2116"
Sparkasse(13) = "2118"
Sparkasse(14) = "2119"
Sparkasse(15) = "2121"
Sparkasse(16) = "2123"
Sparkasse(17) = "2125"
Sparkasse(18) = "2126"
Sparkasse(19) = "2127"
Sparkasse(20) = "2128"
Sparkasse(21) = "2129"
Sparkasse(22) = "2130"
Sparkasse(23) = "2201"
Sparkasse(24) = "2202"
Sparkasse(25) = "2203"
Sparkasse(26) = "2204"
Sparkasse(27) = "2205"
Sparkasse(28) = "2208"
Sparkasse(29) = "2210"
Sparkasse(30) = "2216"
Sparkasse(31) = "2218"
Sparkasse(32) = "2219"
Sparkasse(33) = "2221"
Sparkasse(34) = "2224"
Sparkasse(35) = "2313"
Sparkasse(36) = "2315"
Sparkasse(37) = "2316"
Sparkasse(38) = "2317"
Sparkasse(39) = "2318"
Sparkasse(40) = "2319"
Sparkasse(41) = "2325"
Sparkasse(42) = "2326"
Sparkasse(43) = "2329"
Sparkasse(44) = "2332"
Sparkasse(45) = "2335"
Sparkasse(46) = "2337"
Sparkasse(47) = "2340"
Sparkasse(48) = "2341"
Sparkasse(49) = "2343"
Sparkasse(50) = "2346"
Sparkasse(51) = "2002"
Sparkasse(52) = "2024"
For i = 3 To 4
Name = Sparkasse(i)
'Übertrag der Daten für Verbindlichkeiten (3 Jahre)
Sheets("PSt_Einlagen").Select
Columns("A:A").Select
Selection.Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveCell.Rows("1:3").EntireRow.Select
Selection.Copy
Sheets("Seite 29").Select
Range("A53").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Seite 31").Select
Range("A54").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Übertrag der Daten für Liqiditätslage (13 Monate)
Sheets("Grundsatz").Select
Columns("A:A").Select
Selection.Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveCell.Rows("1:13").EntireRow.Select
Selection.Copy
Sheets("Seite 15b").Select
Range("A38").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Übertrag der Daten für Kredite (2 Jahre)
Sheets("PSt_Branchen").Select
Columns("A:A").Select
Selection.Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveCell.Rows("1:2").EntireRow.Select
Selection.Copy
Sheets("Seite 38").Select
Range("A33").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Übertrag der Daten für Gewi (13 Monate)
Sheets("Überblick").Select
Columns("A:A").Select
Selection.Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveCell.Rows("1:13").EntireRow.Select
Selection.Copy
Sheets("Durchschnitt").Select
Range("A35").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Übertrag der BVNR und Institutsname in Tabellen
Sheets("Spk-Name").Select
Columns("A:A").Select
Selection.Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Zeile = ActiveCell.Row
Range("A" & Zeile, "B" & Zeile).Copy
Sheets("Seite 15b").Select
Range("A38").Select
ActiveSheet.Paste
Sheets("Seite 29").Select
Range("A53:B55").Select
ActiveSheet.Paste
Sheets("Seite 31").Select
Range("A54:B56").Select
ActiveSheet.Paste
Sheets("Seite 38").Select
Range("A33:B34").Select
ActiveSheet.Paste
Sheets("Durchschnitt").Select
Range("A35:B47").Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Spk-Name").Select
Application.CutCopyMode = False
'Datei der jeweiligen Sparkasse wird angelegt
Sheets(Array("Seite 15b", "Seite 29", "Seite 31", "Seite 38", "Durchschnitt")). _
Select
Sheets("Seite 15b").Activate
Sheets(Array("Seite 15b", "Seite 29", "Seite 31", "Seite 38", "Durchschnitt")).Copy
Sheets(Array("Seite 15b", "Seite 29", "Seite 31", "Seite 38", "Durchschnitt")). _
Select
Sheets("Seite 15b").Activate
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F20").Select
Application.CutCopyMode = False
Sheets("Durchschnitt").Select
Rows("30:54").Select
'Selection.ClearContents
Selection.Delete Shift:=xlUp
Range("A1:C1").Select
Sheets("Seite 38").Select
Rows("29:41").Select
'Selection.ClearContents
Selection.Delete Shift:=xlUp
Range("A1:G1").Select
Sheets("Seite 31").Select
Rows("42:81").Select
'Selection.ClearContents
Selection.Delete Shift:=xlUp
Range("A1:G1").Select
Sheets("Seite 29").Select
Rows("49:60").Select
'Selection.ClearContents
Selection.Delete Shift:=xlUp
Range("A1:F1").Select
Sheets("Seite 15b").Select
Rows("34:55").Select
'Selection.ClearContents
Selection.Delete Shift:=xlUp
Range("A1:F1").Select
'Dateiname wird vergeben
ActiveWorkbook.SaveAs Filename:= _
"H:\MIS\OEFFENT\PRUEFSTE\SPK-Dateien\ArbeitsbogenJAP-2011_0" + Name + ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
Sheets("Info").Select
Range("A1").Select
Next i
'Applicaton.ScreenUpdating = True
End Sub

Anzeige
AW: Laufzeitfehler '424'
07.12.2012 12:14:17
Matze,Matthias
Hallo katy,
und soooo viele selects, da werde ich bitten , das die Profis mal drüberschauen,
da ist einiges zu optimieren, mal sehen ob ich den Fehler finde, kann dauern.
Matze

Bitte ein Profi mal drüber schauen,...
07.12.2012 13:02:37
Matze,Matthias
Hallo Zusammen,
habe schon mal die selects alle entfernt, da geht aber immer noch was zu optimieren.
Ich denke auch das die Sparkasse1-52 in ein "verstecktes" Blatt kann und von dort aus die Daten eingelesen werden können. so ist es immer noch ein ellen langer Code.
Einen Laufzeitfehler habe ich nicht endeckt.
Benutze im Code oben als erstes Option Explicite <=wichtig
Option Explicit 'nicht vergessen
<pre>Sub SpkEinlesenDateiAnlegen()
Dim Name As String
Dim Sparkasse(52) As String
Dim i As Double
Dim Zeile As Long
'Application.EnableEvents = False
Application.ScreenUpdating = False
'Übertrag der Datenüberschrift für Liquiditätslage
Sheets("Grundsatz").Rows("1:3").Copy
Sheets("Seite 15b").Range("A34").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'Übertrag der Datenüberschrift für Verbindlichkeiten
Sheets("PSt_Einlagen").Rows("1:3").Copy
Sheets("Seite 29").Range("A50").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Seite 31").Range("A51").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'Übertrag der Datenüberschrift für Kredite
Sheets("PSt_Branchen").Rows("1:2").Copy
Sheets("Seite 38").Range("A31").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Rows("5:8").Copy
Sheets("Seite 38").Range("A35").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'Übertrag der Datenüberschrift für Gewi Durchschnitt
Sheets("Überblick").Rows("1:3").Copy
Sheets("Durchschnitt").Range("A32").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sparkasse(1) = "2103"
Sparkasse(2) = "2105"
Sparkasse(3) = "2106"
Sparkasse(4) = "2107"
Sparkasse(5) = "2108"
Sparkasse(6) = "2110"
Sparkasse(7) = "2111"
Sparkasse(8) = "2112"
Sparkasse(9) = "2113"
Sparkasse(10) = "2114"
Sparkasse(11) = "2115"
Sparkasse(12) = "2116"
Sparkasse(13) = "2118"
Sparkasse(14) = "2119"
Sparkasse(15) = "2121"
Sparkasse(16) = "2123"
Sparkasse(17) = "2125"
Sparkasse(18) = "2126"
Sparkasse(19) = "2127"
Sparkasse(20) = "2128"
Sparkasse(21) = "2129"
Sparkasse(22) = "2130"
Sparkasse(23) = "2201"
Sparkasse(24) = "2202"
Sparkasse(25) = "2203"
Sparkasse(26) = "2204"
Sparkasse(27) = "2205"
Sparkasse(28) = "2208"
Sparkasse(29) = "2210"
Sparkasse(30) = "2216"
Sparkasse(31) = "2218"
Sparkasse(32) = "2219"
Sparkasse(33) = "2221"
Sparkasse(34) = "2224"
Sparkasse(35) = "2313"
Sparkasse(36) = "2315"
Sparkasse(37) = "2316"
Sparkasse(38) = "2317"
Sparkasse(39) = "2318"
Sparkasse(40) = "2319"
Sparkasse(41) = "2325"
Sparkasse(42) = "2326"
Sparkasse(43) = "2329"
Sparkasse(44) = "2332"
Sparkasse(45) = "2335"
Sparkasse(46) = "2337"
Sparkasse(47) = "2340"
Sparkasse(48) = "2341"
Sparkasse(49) = "2343"
Sparkasse(50) = "2346"
Sparkasse(51) = "2002"
Sparkasse(52) = "2024"
For i = 3 To 4
Name = Sparkasse(i)
'Übertrag der Daten für Verbindlichkeiten (3 Jahre)
Sheets("PSt_Einlagen").Columns("A:A").Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveCell.Rows("1:3").EntireRow.Copy
Sheets("Seite 29").Range("A53").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets("Seite 31").Range("A54").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Übertrag der Daten für Liqiditätslage (13 Monate)
Sheets("Grundsatz").Columns("A:A").Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveCell.Rows("1:13").EntireRow.Copy
Sheets("Seite 15b").Range("A38").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Übertrag der Daten für Kredite (2 Jahre)
Sheets("PSt_Branchen").Columns("A:A").Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveCell.Rows("1:2").EntireRow.Copy
Sheets("Seite 38").Range("A33").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Übertrag der Daten für Gewi (13 Monate)
Sheets("Überblick").Columns("A:A").Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
ActiveCell.Rows("1:13").EntireRow.Copy
Sheets("Durchschnitt").Range("A35").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'Übertrag der BVNR und Institutsname in Tabellen
Sheets("Spk-Name").Columns("A:A").Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Zeile = ActiveCell.Row
Range("A" & Zeile, "B" & Zeile).Copy
Sheets("Seite 15b").Range("A38").Paste
Sheets("Seite 29").Range("A53:B55").Paste
Sheets("Seite 31").Range("A54:B56").Paste
Sheets("Seite 38").Range("A33:B34").Paste
Sheets("Durchschnitt").Range("A35:B47").Paste
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Spk-Name").Select
Application.CutCopyMode = False
'Datei der jeweiligen Sparkasse wird angelegt
Sheets(Array("Seite 15b", "Seite 29", "Seite 31", "Seite 38", "Durchschnitt")).Select
Sheets("Seite 15b").Activate
Sheets(Array("Seite 15b", "Seite 29", "Seite 31", "Seite 38", "Durchschnitt")).Copy
Sheets(Array("Seite 15b", "Seite 29", "Seite 31", "Seite 38", "Durchschnitt")).Select
Sheets("Seite 15b").Activate
Cells.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F20").Select
Application.CutCopyMode = False
Sheets("Durchschnitt").Select
Rows("30:54").Delete Shift:=xlUp
Range("A1:C1").Select 'soll das so sein ?
Sheets("Seite 38").Select
Rows("29:41").Delete Shift:=xlUp
Range("A1:G1").Select 'soll das so sein ?
Sheets("Seite 31").Select
Rows("42:81").Delete Shift:=xlUp
Range("A1:G1").Select 'soll das so sein ?
Sheets("Seite 29").Select
Rows("49:60").Delete Shift:=xlUp
Range("A1:F1").Select 'soll das so sein ?
Sheets("Seite 15b").Select
Rows("34:55").Delete Shift:=xlUp
Range("A1:F1").Select 'soll das so sein ?
'Dateiname wird vergeben
ActiveWorkbook.SaveAs Filename:= _
"H:\MIS\OEFFENT\PRUEFSTE\SPK-Dateien\ArbeitsbogenJAP-2011_0" + Name + ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
Sheets("Info").Select
Range("A1").Select
Next i
Application.ScreenUpdating = True
End Sub</pre>
So lasse mal weiter offen für die Profioptimierung
Matze

Anzeige
AW: Bitte ein Profi mal drüber schauen,...
07.12.2012 14:20:05
Kathy,
Hallo Matze,
nun ich als Laie, habe nun leider noch mehr Fragen und nun erhalte ich einen Laufzeitenfehler 13 - Typen unverdräglich und das Makro stopp bei
Sheets("PSt_Einlagen").Columns("A:A").Find(What:=Sparkasse(i), After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate
Ist das Pre vor Sub in diesen ein Code für's Internet oder gehört das zum Makro?
Warum die Option Explicit ?
Kathy

AW: Bitte ein Profi mal drüber schauen,...
07.12.2012 14:30:24
Matze,Matthias
Hallo
Vor Sub das

muss weg
Option Explicite:
Wird auf Modulebene verwendet, um die explizite Deklaration aller Variablen in diesem Modul zu  _
erzwingen.
Was passiert wenn du Option Explicite wegläßt?
Lass offen für die Profis

Anzeige
AW: Bitte ein Profi mal drüber schauen,...
07.12.2012 16:17:17
Hajo_Zi
Hallo Matze,
wenn man Option Explicit nicht schreibt, braucht man Variablen nicht definieren.
Was anderes konnte ich aus Deinem Beitrag nicht entnehmen was offen ist.

AW: Bitte ein Profi mal drüber schauen,...
07.12.2012 16:26:32
schauan
Hallöchen,
das PRE muss weg, sieht man leider nicht in der Antwort :-( Es gehört zur Codeformatierung für die Darstellung im Forum.
Den Laufzeitfehler 13 bekommst du wahrscheinlich, weil nichts gefunden wurde. Um diesen Fehler zu vermeiden, kann man in Deinem Beispiel zuvor mit WorksheetFunction.COUNTIF das Auftreten des Suchbegriffs im Suchbereich prüfen und nur wenn dass mehr als 0 ergibt, dann mit FIND gezielt danach suchen. Bekommst Du das hin? Sonst melde Dich nochmal.
Grüße, André

Anzeige
@Hajo,..es geht doch nicht um mich hier,..
07.12.2012 16:30:17
Matze,Matthias
Hallo Hajo,
....sondern um die Beitragsfrage von Kathy, mein Versuch da was zu optimieren ist fehlgeschlagen,
Die Antwort zu Option Explicite hatt ich doch ihr schon gegeben.
Da ich nun alle selects des Ausgangscodes entfernt habe bekommt Sie eine Andere Fehlermeldung.
Ihr seit die MVP Profis,... daher die bitte von mir Euch mal um den dezent kurzen Code zu kümmern.
Gruß Matze
lasse wieder offen,..da der Code noch nicht funktioniert

Vorschlag, keine Komplettlösung
07.12.2012 22:05:33
Tino
Hallo,
1. versuche im Code ohne Select und Activate auszukommen.
2. arbeite bei ...Find ohne After:=ActivCell (Fehler wenn aktive Zelle nicht im Suchbereich)
Da ich nicht den gesamten Code überarbeiten möchte, hier ein Auszug.
Die Events und die Bildschirmaktualisierung würde ich erst abstellen
wenn der Code Fehlerfrei durchläuft und am Ende das aktivieren nicht vergessen.
Sub SpkEinlesenDateiAnlegen()
Dim rng As Range 'kommt in den Kopf
'Application.EnableEvents = False
'Applicaton.ScreenUpdating = False
'Übertrag der Daten für Verbindlichkeiten (3 Jahre)
With Sheets("PSt_Einlagen")
Set rng = .Columns("A:A").Find(What:=Sparkasse(i), LookIn:=xlFormulas, LookAt:=xlWhole,  _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False)
If Not rng Is Nothing Then
.Range("A53").Value = rng.Value
Sheets("Seite 31").Range("A54").Value = rng.Value
Set rng = Nothing
End If
End With
'Application.EnableEvents = True
'Applicaton.ScreenUpdating = True
End Sub
Gruß Tino

Anzeige
Musterdatei wäre gut,...
08.12.2012 00:49:52
Matze,Matthias
Hallo Kathy,
mach doch mal von der Datei eine Kopie und entferne die Relevanten Datensätze.
Die Überschriften belassen,...ein paar Beispieldaten und ab hier zum FileUpload.
Das ist schon ein wenig komplex,...
Und wie Tino schon schrieb, müßte der Code anders Aufgebaut werden.
Morgen gehts weiter,...
bis dahin LGruß Matze

AW: Musterdatei wäre gut,...
08.12.2012 07:40:29
schauan
Hallo Kathy,
Tinos Hinweis 2. war die Ursache für den Fehler 13. Der Fehler 91 tritt auf, wenn die Zahl nicht vorhanden ist. Wenn Du Sicher sein kannst, dass die Zahl im Suchbereich enthalten ist, dann kann eine Prüfung entfallen. ANsonsten, wie ich schon schrieb, erst if worksheetfunction.countif(...) gt 0 then ... und hinterher end if
Ich hab hier mal einen Ansatz, der ohne rng-Objekt auskommt. Weiterhin ist hier eine Alternative zu den vielen Sparkassen=xxx, zumindest für die ersten davon ;-) Immer schön in Zehnerreihen untereinander, da kann man die betreffende auch leicht auszählen. Bei Dim wird dann nur Sparkasse geschrieben ...
Dim Sparkasse
Sparkasse = Array("2103", "2105", "2106", "2107", "2108", "2110", "2111", "2112", "2113", "2114", _
                  "2115")
For i = 3 To 4
Name = Sparkasse(i)
'Übertrag der Daten für Verbindlichkeiten (3 Jahre) 
With Sheets("Tabelle1").Columns("A:A").Find(What:=Sparkasse(i), After:=[a1], LookIn:= _
  xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
  SearchDirection:=xlNext, MatchCase:=False)
  Sheets("Tabelle2").Rows("53:55") = .Rows("1:3").EntireRow.Value
  Sheets("Tabelle3").Rows("54:56") = .Rows("1:3").EntireRow.Value
End With

Anzeige
AW: Musterdatei wäre gut,...
08.12.2012 08:11:59
schauan
Hallo Kathy,
und in meinem Beispiel musst Du den Hinweis von Tino natürlich auch beachten und den After entfernen :-) Die ActiveCell befindet sich immer auf dem Activesheet, und da Du mit verschiedenen Blättern arbeitest, ohne diese zu aktivieren, ist der Fehler als Folge der bisherigen Optimierung bezüglich der Select "vorprogrammiert" ;-)

OT. LOL
08.12.2012 09:50:40
hary
Hallo schauan
Zitat: "....und den After entfernen"
Korken rein und zu, geht einfacher. ;-))))
gruss hary

Genau, Hary! War auch m.1.Gedanke! ;-) Gruß owT
08.12.2012 20:56:26
Luc:-?
:-?

AW: Genau, Hary! War auch m.1.Gedanke! ;-) Gruß owT
11.12.2012 10:07:56
Kathy,
Liebe Profis,
ihr habt mir super schnell geholfen und dafür möchte ich euch danken.
Da ich wie bereits erwähnt ein Laie bin und das Makro meines Kollegen nur "schnell" überarbeiten wollte, ist alles andere zwar schön zu haben und zu wissen, aber es würde mich Tage oder gar Wochen brauchen um es zu verstehen.
Ich habe nachdem ich den Vorschlag von Matze übernommen und eingearbetet habe und an dem nächsten Laufzeitenfehler hängen geblieben bin, entschlossen einen Teil der Änderung wieder rückgängig zu machen und es hat dann zum Glück funktioniert.
Ich habe jetzt zwar eine vage Vorstellung, dass man manche select entfernen kann, aber eben nicht alle. Das mit dem Acitvate und "Find ohne After:=ActivCell (Fehler wenn aktive Zelle nicht im Suchbereich)entfernen" übersteigt auch meinen Horizont.
Interessant finde ich hingegen die Sache mit dem "Sparkasse = Array("2103", "2105"," das werde ich noch versuchen einzubauen.
Ich danke euch für die schnelle Hilfe!
Liebe Grüße und 1000 Dank!
Kathy
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige