Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1608to1612
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

If Schleife bei Fehler 13 worksheet in MsgBox

If Schleife bei Fehler 13 worksheet in MsgBox
15.02.2018 12:58:07
Okan
Guten Tag,
ich habe folgendes Problem.
Ich nutze zurzeit einen Code unter Dieses Arbeitsblatt, dass ein Makro zum Datenimport nutzen soll. Dabei sehen die Codes wie folgt aus
'Diese Arbeitsmappe
Private Sub Workbook_Open()
Call Startseite_Übersicht
Call Import_Data(Sheets("Entnahme"))
End Sub
'Datenimport
Public Sub Import_Data(wks As Worksheet)
Dim objFileSearch As clsFileSearch
Dim lngIndex As Long, lngCount As Long
Dim varOutput As Variant
Dim strPath As String, strFormula As String
Const cstrTabname As String = "Report" 'Tabellenname
With wks
If .Range("C7") = "" Or .Range("C8") = "" Then
MsgBox ("Bitte Cellen C7 & C8 mit Daten füllen.")
Else
strPath = _
"I:\Partikelfallen\" & .Cells(7, 3).Value & "\" & .Cells(8, 3).Value & "\"  ' _
Startverzeichnis
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
.Range("B17:C36").ClearContents
Set objFileSearch = New clsFileSearch
With objFileSearch
.NewSearch = True
.CaseSenstiv = False
.Extension = "*.xlsx*"
.FolderPath = strPath
.SearchLike = "*Partikelfallenanalyse_" & wks.Name & "_*"
.SubFolders = False
If .Execute(Sort_by_Date_Create, Sort_Order_Descending) > 0 Then
ReDim varOutput(1 To 20, 1 To 10)
lngCount = 1
For lngIndex = 1 To .FileCount
If lngCount > 20 Then Exit For
strFormula = "='" & .Files(lngIndex).FI_FolderPath
strFormula = strFormula & "[" & .Files(lngIndex).FI_FileName & "]"
strFormula = strFormula & cstrTabname & "'!"
varOutput(lngCount, 1) = strFormula & "U50"
varOutput(lngCount, 2) = strFormula & "I19"
varOutput(lngCount, 3) = strFormula & "I20"
varOutput(lngCount, 4) = strFormula & "I21"
varOutput(lngCount, 5) = strFormula & "I22"
varOutput(lngCount, 6) = strFormula & "I23"
varOutput(lngCount, 7) = strFormula & "I24"
varOutput(lngCount, 8) = strFormula & "I25"
varOutput(lngCount, 9) = strFormula & "I26"
varOutput(lngCount, 10) = strFormula & "U46"
lngCount = lngCount + 1
Next
End If
End With
With .Range("B17").Resize(UBound(varOutput, 1), 10)
.Formula = varOutput
.Value = .Value
End With
Set objFileSearch = Nothing
End If
End With
End Sub
Mein Grundgedanke ist, bei einem Fehler des Types 13 eine MsgBox die wks.Name wiedergibt, damit die Fehlersuche erleichtert wird.
Kann mir da jemand hefen?
VG
Okan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Schleife bei Fehler 13 worksheet in MsgBox
15.02.2018 13:05:23
{Boris}
Hi,
Prinzip:
Option Explicit
Sub test()
On Error GoTo ERR_HANDLER
Dim l As Long
l = "a"
Exit Sub
ERR_HANDLER:
MsgBox Err.Number 'Hier kannst Du Deinen MsgBox-Text gestalten
On Error GoTo 0
End Sub
VG, Boris
AW: If Schleife bei Fehler 13 worksheet in MsgBox
15.02.2018 13:50:12
Okan
Hi Boris,
danke für die schnelle Rückmeldung.
Wo müsste der Code eingetragen werden?
Kann ich für MsgBox folgendes schreiben:
MsgBox Err.Number "Fehler in Station" & wks.name
VG
Okan
AW: If Schleife bei Fehler 13 worksheet in MsgBox
15.02.2018 19:22:37
{Boris}
Hi,
es geht doch nur um die On-Error-Anweisung.
Zu Beginn Deines Codes steht die Zeile:
On Error Goto ERR_HANDLER
Und am Ende:
'...bis hierhin Dein normaler Code - und dann:
Exit Sub
ERR_HANDLER:
MsgBox "Fehler in Station" & wks.name
End Sub
Wichtig ist halt nur, dass dabei nicht die Variable wks die Fehlerursache ist.
VG, Boris
Anzeige
AW: If Schleife bei Fehler 13 worksheet in MsgBox
20.02.2018 09:24:35
Okan
Hi Boris,
danke für die schnelle Rückmeldung. Konnte den Code bis eben nicht ausprobieren.
Leider funktioniert der Code nicht wie ich es gerne hätte.
Ich versuche es mal zu erklären mit den Codes
Private Sub Workbook_Open()
On Error GoTo ERR_HANDLER
Call Startseite_Übersicht
Call Import_Data(Sheets("Entnahme"))
Call Import_Data(Sheets("Feeder_2_S13A"))
Call Import_Data(Sheets("Feeder_2_S13B"))
Call Import_Data(Sheets("Feeder_2_S13C"))
Call Import_Data(Sheets("Kontrolle_100"))
Call Import_Data(Sheets("LV_140221"))
Call Import_Data(Sheets("LV_140231"))
Call Import_Data(Sheets("LV_140241"))
Call Import_Data(Sheets("LV_140311"))
Call Import_Data(Sheets("LV_140331"))
Call Import_Data(Sheets("LV_140341"))
Call Import_Data(Sheets("LV_160410"))
Call Import_Data(Sheets("LV_160411"))
Call Import_Data(Sheets("LV_160413"))
Call Import_Data(Sheets("LV_210311"))
Call Import_Data(Sheets("LV_210611"))
Call Import_Data(Sheets("LV_210621"))
Call Import_Data(Sheets("LV_211021"))
Call Import_Data(Sheets("LV_211411"))
Call Import_Data(Sheets("LV_211421"))
Call Import_Data(Sheets("LV_214511"))
Call Import_Data(Sheets("LV_214521"))
Call Import_Data(Sheets("LV_214611"))
Call Import_Data(Sheets("LV_214711"))
Call Import_Data(Sheets("LV_214811"))
Call Import_Data(Sheets("LV_214911"))
Call Import_Data(Sheets("LV_215211"))
Call Import_Data(Sheets("LV_215311"))
Call Import_Data(Sheets("LV_330111"))
Call Import_Data(Sheets("LV_330312"))
Call Import_Data(Sheets("LV_330511"))
Call Import_Data(Sheets("LV_330922"))
Call Import_Data(Sheets("LV_335131"))
Call Import_Data(Sheets("LV_335133"))
Call Import_Data(Sheets("LV_335211"))
Call Import_Data(Sheets("Reparatur"))
Exit Sub
ERR_HANDLER:
MsgBox "Fehler in Station" & wks.Name
End Sub

Public Sub Import_Data(wks As Worksheet)
Dim objFileSearch As clsFileSearch
Dim lngIndex As Long, lngCount As Long
Dim varOutput As Variant
Dim strPath As String, strFormula As String
Const cstrTabname As String = "Report" 'Tabellenname
With wks
If .Range("C7") = "" Or .Range("C8") = "" Then
MsgBox ("Bitte Cellen C7 & C8 mit Daten füllen.")
Else
strPath = _
"I:\WDE_Quality\12_Lab\Partikelfallenanalyse\Analyse\" & .Cells(7, 3).Value & "\" & . _
Cells(8, 3).Value & "\"  ' _
Startverzeichnis
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
.Range("B17:C36").ClearContents
Set objFileSearch = New clsFileSearch
With objFileSearch
.NewSearch = True
.CaseSenstiv = False
.Extension = "*.xlsx*"
.FolderPath = strPath
.SearchLike = "*Partikelfallenanalyse_CAR_" & wks.Name & "_*"
.SubFolders = False
If .Execute(Sort_by_Name, Sort_Order_Descending) > 0 Then
ReDim varOutput(1 To 20, 1 To 10)
lngCount = 1
For lngIndex = 1 To .FileCount
If lngCount > 20 Then Exit For
strFormula = "='" & .Files(lngIndex).FI_FolderPath
strFormula = strFormula & "[" & .Files(lngIndex).FI_FileName & "]"
strFormula = strFormula & cstrTabname & "'!"
varOutput(lngCount, 1) = strFormula & "U50"
varOutput(lngCount, 2) = strFormula & "I19"
varOutput(lngCount, 3) = strFormula & "I20"
varOutput(lngCount, 4) = strFormula & "I21"
varOutput(lngCount, 5) = strFormula & "I22"
varOutput(lngCount, 6) = strFormula & "I23"
varOutput(lngCount, 7) = strFormula & "I24"
varOutput(lngCount, 8) = strFormula & "I25"
varOutput(lngCount, 9) = strFormula & "I26"
varOutput(lngCount, 10) = strFormula & "U46"
lngCount = lngCount + 1
Next
End If
End With
With .Range("B17").Resize(UBound(varOutput, 1), 10)
.Formula = varOutput
.Value = .Value
End With
Set objFileSearch = Nothing
End If
End With
End Sub
Die Importierten Datein müssen einen bestimmten Namen haben, in definierten Zellen müssen Angaben enthalten sein und die Namen der Sheets müssen Korrekt sein um diesen Code verwenden zu können.
Nun füge ich einen Fehler in der Namensgebung des Dokumentes Reparatur ein.
Ich würde gerne bei einem Fehler zumindest erkennen können wollen, unter welcher Stationsbezeichnung = Sheet ich die Namen Prüfen muss.
VG
Okan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige