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

VBA Fehler -2147417848

VBA Fehler -2147417848
12.12.2016 13:29:30
Grünauer
Hallo Experten, hallo Helfer,
ich komme einfach nicht weiter bei meiner benötigten Datei und bevor ich jetzt ganz verzweifle meine Bitte an Euch eine Blick darauf zu werfen. Ihr habt bestimmt die Lösung dafür.
Beim Schließen der Excel Datei soll in der "Tabelle1aktiv" jeder Datensatz der ein
Datum in der Spalte I hat in die "Tabelle2archiv" verschoben werden.
Das ist ein paarmal beim Schließen gut gegangen und jetzt bekomme ich die Fehlermeldung:
-2147417848 Die Methode Insert für das Objekt Range ist fehlgeschlagen.
Im Debugger wird diese Zeile ausgegeben "ZielWs.Rows(Fz).Insert"
Aufgerufen wird das Modul in "Diese Arbeitsmappe" als Call bei "Private Sub Workbook_BeforeClose"
Ich weiß mein Code ist nicht professionell (hoffentlich auch nicht zu beschämend) - da ich learning by doing betreibe.
Vielen, vielen Dank für eure Hilfe.
Hier mein Code

Sub Verschieben()
Option Explicit
Sub Verschieben()
'markierte Zeilen auf Arbeitsblatt "Archiv - STRAkleidung" verschieben
Dim WB As Workbook
Dim QuellWs As Worksheet
Dim ZielWs As Worksheet
Dim i As Integer 'Schleifenzähler
Dim Spalte As String
Dim Lz As Long    'letzte beschriebene Zeile
Dim Fz As Long    'erste leere Zeile (nach letzter beschriebener Zeile)
Set WB = ThisWorkbook
Set QuellWs = Tabelle1aktiv 'Worksheets("Aktiv - STRAkleidung")
Set ZielWs = Tabelle2archiv 'Worksheets("Archiv - STRAkleidung")
On Error GoTo FehlerExit
Application.ScreenUpdating = False
QuellWs.Activate
If QuellWs.ProtectContents = True Then
QuellWs.Unprotect "Kontrolle"
If QuellWs.FilterMode Then
QuellWs.ShowAllData
End If
End If
ZielWs.Activate
If ZielWs.ProtectContents = True Then
ZielWs.Unprotect "Kontrolle"
If ZielWs.FilterMode Then
ZielWs.ShowAllData
End If
End If
QuellWs.Activate
'Markierte Zeilen
For i = 10 To QuellWs.Cells(Rows.Count, 1).End(xlUp).Row
If QuellWs.Cells(i, 6).Value  "" Or QuellWs.Cells(i, 9).Value  "" Then
QuellWs.Rows(i).Copy
'Arbeitsblatt "ZielWs" letzte verwendete Zeile ermitteln
ZielWs.Activate
Spalte = "A"     'Spalte, in der die letzte Zeile ermittelt werden soll
'ermittelt letzte beschriebene Zeile
Lz = ZielWs.Cells(Rows.Count, Spalte).End(xlUp).Row
'ermittelt letzte beschriebene und danach erste freie Zeile (+1)
Fz = ZielWs.Cells(Rows.Count, Spalte).End(xlUp).Row + 1
'in erste freie Zeile, mit Formatierung einfügen und Inhalt leeren
ZielWs.Rows(Fz).Insert
ZielWs.Range("D" & Fz).FormatConditions.Delete  'Zellfüllung entfernen
If ZielWs.Range("D" & Fz).Value = "" Then
With ZielWs.Range("D" & Fz).Interior
.Pattern = xlUp
.PatternThemeColor = xlThemeColorLight1
.ColorIndex = xlAutomatic
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
ZielWs.Range("E" & Fz).FormatConditions.Delete  'Ampelfunktion entfernen
Application.CutCopyMode = False
QuellWs.Activate
If QuellWs.Cells(i, 9).Value  "" Then
Rows(i).Delete
Else
QuellWs.Cells(i, 6).Copy
QuellWs.Cells(i, 4).PasteSpecial Paste:=xlPasteValues
QuellWs.Cells(i, 6).ClearContents
End If
End If
Next i
FehlerExit:
ZielWs.Protect "Kontrolle", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowDeletingRows:=True _
, AllowSorting:=True, AllowFiltering:=True
QuellWs.Activate
i = 0
Spalte = ""
Lz = 0
Fz = 0
Set WB = Nothing
Set QuellWs = Nothing
Set ZielWs = Nothing
Application.ScreenUpdating = True
'Wenn ein Fehler auftritt - Ausgabe mit Fehlerort, -nummer und Beschreibung
If Err.Number  0 Then MsgBox "Bitte Programmierer informieren mit folgenden Angaben!!!" &  _
vbCrLf & vbCrLf & _
"Fehler im Modul - StraArchiv: " & vbCrLf & "Fehlernummer.: " & Err.Number & vbCrLf & _
"Fehlerbeschreibung: " & Err.Description
End Sub


		

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehler -2147417848
12.12.2016 20:48:18
Matthias
Hallo! Das ist zwar keine Hilfe aber schaue mal, ob in deinem Zielblatt überhaupt noch Zeilen frei sind. Wenn nicht sollte eigentlich Fehler 1004 kommen. Alternativ mal prüfen, ob nicht ausversehen jemand ein anderes Passwort draufgelegt hat. Ein ähnlicher Fehler tritt auf, wenn das Blatt nicht entsperrt ist (ähnlicher Text, andere Nummer). Ansonsten sollte der Code eigentlich laufen, habe es getestet. Im Zweifel setzt mal einen Haltepunkt und gehe den Code bei der betreffenden Datei Schrittweise durch und schaue dir die Werte für die Variablen an. Vllt. liest er ja was falsch aus. VG Matthias
Anzeige
AW: VBA Fehler -2147417848
14.12.2016 21:29:59
Grünauer
Hallo Matthias,
sorry, dass ich mich erst heute melde.
Vielen Dank für Deinen schnellen Eintrag.
Beim Testen war mein Zielblatt ab der 10 Zeile leer und ich habe ungefähr 30 Sätze angelegt als der Fehler auftrat. Das Entsperren funktioniert hervorragend. Das Auslesen der Variablen funktioniert korrekt.
VG B.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige