Thema Datum  Von Nutzer Rating
Antwort
Rot Fehler 424 - Objekt erforderlich
03.07.2018 14:32:47 Burgl
Solved
03.07.2018 14:37:17 Mackie
NotSolved
03.07.2018 21:08:30 Gast93305
NotSolved
03.07.2018 21:13:41 Mackie
NotSolved
04.07.2018 10:01:49 Gast60185
NotSolved

Ansicht des Beitrags:
Von:
Burgl
Datum:
03.07.2018 14:32:47
Views:
820
Rating: Antwort:
 Nein
Thema:
Fehler 424 - Objekt erforderlich
Hi, bin gerade dabei ein VBA auf Office 2013 zum Laufen zu bringen. Leider bin ich Anfängerin und es gestaltet sich mehr als schwierig. Konkret geht es um folgenden Code: Public Function Targetnummer_holen(tg As String) As String y = 2 'erste Zeile finden Do While IsEmpty(wb1.Sheets("Trackingfile_Legende").Cells(y, 1).Value) = False If Trim(wb1.Sheets("Trackingfile_Legende").Cells(y, 1).Value) = Trim(tg) Then Targetnummer_holen = wb1.Sheets("Trackingfile_Legende").Cells(y, 3).Value Exit Function End If y = y + 1 Loop Targetnummer_holen = "Kein Satz gefunden!" End Function Schon in der ersten Zeile Do While IsEmpty ... gibt er mir den Fehler zurück. Wär super wenn mir jemand helfen könnte. Der ganze Code: Public Sub Imp_Dat() 'Definition Dim fd As FileDialog Dim ordner_import As Variant Dim fs, f, f1, fc wb1 = Application.ActiveWorkbook.Name ws1 = ActiveSheet.Name 'Importordner auswählen Set fd = Application.FileDialog(msoFileDialogFolderPicker) With fd If .Show = -1 Then For Each sel In .SelectedItems ordner_import = sel + "\" Next sel Else End If End With Set fd = Nothing Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(ordner_import) Set fc = f.Files ' 'Protokollfile erstellen Set wb2 = Workbooks.Add 'instead of Workbooks.Add without return value capture wb2.Activate 'Workbooks.Add 'wb2 = ActiveWorkbook.Name Set newWks1 = wb2.Sheets.Add newWks1.Name = "Fehler" Set newwks = wb2.Sheets.Add newwks.Name = "Erfolg" newwks.Cells(1, 1).Value = "Name" newwks.Cells(1, 2).Value = "Beginn" newwks.Cells(1, 3).Value = "Ende" newwks.Cells(1, 4).Value = "Bezug" newwks.Cells(1, 5).Value = "IP - Wert" newwks.Cells(1, 6).Value = "Überstunden" newwks.Cells(1, 7).Value = "Prämie" newwks.Cells(1, 8).Value = "Kommentar" newwks.Cells(1, 9).Value = "Bemerkung" newwks.Cells(1, 10).Value = "Targetnummer" newWks1.Cells(1, 1).Value = "Name" newWks1.Cells(1, 2).Value = "Beginn" newWks1.Cells(1, 3).Value = "Ende" newWks1.Cells(1, 4).Value = "Bezug" newWks1.Cells(1, 5).Value = "IP - Wert" newWks1.Cells(1, 6).Value = "Überstunden" newWks1.Cells(1, 7).Value = "Prämie" newWks1.Cells(1, 8).Value = "Kommentar" newWks1.Cells(1, 9).Value = "Bemerkung" newWks1.Cells(1, 10).Value = "Targetnummer" Application.DisplayAlerts = False wb2.Worksheets("Tabelle1").Delete Application.DisplayAlerts = True 'Hauptschleife für den Import von Dateien For Each f1 In fc 'Nur Excel-Files verwenden If InStr(1, f1.Name, "xlsx") > 0 Then 'Öffne File für Import Workbooks.Open Filename:=ordner_import + f1.Name, UpdateLinks:=False, ReadOnly:=True, Password:="12345" wb3 = ActiveWorkbook.Name x = 6 Do While ActiveWorkbook.Sheets(1).Cells(x, 1).Value <> "" abg_nam = ActiveWorkbook.Sheets(1).Cells(x, 1).Value abg_beg = ActiveWorkbook.Sheets(1).Cells(x, 9).Value abg_end = ActiveWorkbook.Sheets(1).Cells(x, 10).Value abg_sap = ActiveWorkbook.Sheets(1).Cells(x, 13).Value imp_ip = ActiveWorkbook.Sheets(1).Cells(x, 17).Value imp_ue = ActiveWorkbook.Sheets(1).Cells(x, 18).Value imp_pr = ActiveWorkbook.Sheets(1).Cells(x, 19).Value imp_ko = ActiveWorkbook.Sheets(1).Cells(x, 22).Value abg_tg = Replace(ActiveWorkbook.Sheets(1).Cells(1, 1).Value, "Budget 2016 -", "") 'Daten schreiben Z = 3 geschrieben = 0 Do While IsEmpty(Application.ActiveWorkbook.ActiveSheet.Cells(Z, 1).Value) = False If abg_nam = Application.ActiveWorkbook.ActiveSheet.Cells(Z, 2).Value And _ abg_beg = Application.ActiveWorkbook.ActiveSheet.Cells(Z, 12).Value And _ abg_end = Application.ActiveWorkbook.ActiveSheet.Cells(Z, 13).Value And _ abg_sap = Application.ActiveWorkbook.ActiveSheet.Cells(Z, 24).Value Then If Application.ActiveWorkbook.ActiveSheet.Cells(Z, 36).Value <> imp_ip Or _ Application.ActiveWorkbook.ActiveSheet.Cells(Z, 32).Value <> imp_ue Or _ Application.ActiveWorkbook.ActiveSheet.Cells(Z, 35).Value <> imp_pr Or _ Application.ActiveWorkbook.ActiveSheet.Cells(Z, 4).Value <> imp_ko Then a = Protokoll_schreiben((wb2), _ 1, _ wb1.Sheets(ws1).Cells(Z, 2).Value, _ wb1.Sheets(ws1).Cells(Z, 12).Value, _ wb1.Sheets(ws1).Cells(Z, 13).Value, _ wb1.Sheets(ws1).Cells(Z, 24).Value, _ wb1.Sheets(ws1).Cells(Z, 36).Value, _ wb1.Sheets(ws1).Cells(Z, 32).Value, _ wb1.Sheets(ws1).Cells(Z, 35).Value, _ wb1.Sheets(ws1).Cells(Z, 4).Value, _ "ALT", _ wb1.Sheets(ws1).Cells(Z, 5).Value) a = Protokoll_schreiben((wb2), _ 1, _ (abg_nam), _ (abg_beg), _ (abg_end), _ (abg_sap), _ (imp_ip), _ (imp_ue), _ (imp_pr), _ (imp_ko), _ "NEU", _ Targetnummer_holen((abg_tg))) wb1.Sheets(ws1).Cells(Z, 36).Value = imp_ip wb1.Sheets(ws1).Cells(Z, 32).Value = imp_ue wb1.Sheets(ws1).Cells(Z, 35).Value = imp_pr wb1.Sheets(ws1).Cells(Z, 4).Value = imp_ko geschrieben = 2 Exit Do Else geschrieben = 1 End If End If Z = Z + 1 Loop 'Fehlermeldung ins Protokoll schreiben If geschrieben = 0 Then a = Protokoll_schreiben((wb2), _ 2, _ (abg_nam), _ (abg_beg), _ (abg_end), _ (abg_sap), _ (imp_ip), _ (imp_ue), _ (imp_pr), _ (imp_ko), _ "FEHLER", _ Targetnummer_holen((abg_tg))) End If x = x + 1 Loop Workbooks(wb3).Close SaveChanges:=False End If Next MsgBox "fertig!" End Sub Public Function Protokoll_schreiben(da As String, erfolg As Integer, na As String, be As Date, en As Date, bz As Variant, ip As Single, ue As Single, pr As Single, ko As String, tx As String, tg As String) As Boolean y = 1 'erste Zeile finden Do While IsEmpty(da.Sheets(erfolg).Cells(y, 1).Value) = False y = y + 1 Loop da.Sheets(erfolg).Cells(y, 1).Value = na da.Sheets(erfolg).Cells(y, 2).Value = be da.Sheets(erfolg).Cells(y, 3).Value = en da.Sheets(erfolg).Cells(y, 4).Value = bz da.Sheets(erfolg).Cells(y, 5).Value = ip da.Sheets(erfolg).Cells(y, 6).Value = ue da.Sheets(erfolg).Cells(y, 7).Value = pr da.Sheets(erfolg).Cells(y, 8).Value = ko da.Sheets(erfolg).Cells(y, 9).Value = tx da.Sheets(erfolg).Cells(y, 10).Value = tg Protokoll_schreiben = True

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
Rot Fehler 424 - Objekt erforderlich
03.07.2018 14:32:47 Burgl
Solved
03.07.2018 14:37:17 Mackie
NotSolved
03.07.2018 21:08:30 Gast93305
NotSolved
03.07.2018 21:13:41 Mackie
NotSolved
04.07.2018 10:01:49 Gast60185
NotSolved