Fotograf
Hallo zusammen,
ich hoffe ich bin hier im richtigen Forum.
Ich möchte eine in Excel erstellte Datenbank öber eine in VisualBasic geschriebenen Oberfläche aufrufen können. Es funktioniert alles wunderbar bis auf einen Fehler, den ich einfach nicht gelöst bekommen:
Wenn ich in das Feld die Nummer für den Datensatz eingebe, und die Zeile dadurch kurzfrisitig leer ist, dann beendet sich das Programm und ich erhalte einen Laufzeitfehler 13.
Ich vermute, es liegt daran, dass in meinem Dokument definiert ist, dass der Wert der Zeile nicht weniger als eine Stelle haben darf.
Ich hoffe ihr könnt mir weiterhelfen, das wäre echt klasse.
Mit freundlichen Grüßen
Raphael
ich hoffe ich bin hier im richtigen Forum.
Ich möchte eine in Excel erstellte Datenbank öber eine in VisualBasic geschriebenen Oberfläche aufrufen können. Es funktioniert alles wunderbar bis auf einen Fehler, den ich einfach nicht gelöst bekommen:
Wenn ich in das Feld die Nummer für den Datensatz eingebe, und die Zeile dadurch kurzfrisitig leer ist, dann beendet sich das Programm und ich erhalte einen Laufzeitfehler 13.
'________ Global dimentions ______________________
Dim gHeaderRow As Integer ' Inspectios Header Row
Dim gActualRow As Integer
'________ End global dimentions __________________
Private Sub ComAbbruch_Click()
'exCount(gActualRow)
Unload Me
End Sub
Private Sub rDescription_Change()
End Sub
Private Sub RowCounter_AfterUpdate()
'If RowCounter <= gHeaderRow Then
' RowCounter = gHeaderRow
'End If
gActualRow = RowCounter
'exCount (RowCounter)
End Sub
Private Sub RowCounter_Change()
'MsgBox "Counter change"
LoadFelder (RowCounter)
End Sub
Private Sub ScrollBar1_Change()
Dim Nr As Integer
Nr = gActualRow 'imCount 'remember the ContValue befor
'MsgBox "Scroll change " & Nr & ">" & ScrollBar1
If ScrollBar1 < gHeaderRow + 1 Then
ScrollBar1 = gHeaderRow + 1
End If
If ScrollBar1 <> Nr Then
While Worksheets("Inspections").rows(ScrollBar1).Hidden
'MsgBox "Hidden"
If Nr >= ScrollBar1 Then
ScrollBar1 = ScrollBar1 - 1
Else
ScrollBar1 = ScrollBar1 + 1
End If
Wend
End If
gActualRow = ScrollBar1 'exCount (ScrollBar1)
RowCounter = ScrollBar1
'LoadFelder
End Sub
Private Sub UserForm_Activate()
Set s = Worksheets("Inspections")
'__________ global Definitions _____________________________
gHeaderRow = s.Range("rGroup").row ' Inspectios Header Row
gActualRow = Selection.row
If gActualRow <= gHeaderRow Then gActualRow = gHeaderRow + 1
'__________ End global definitions _________________________
Dim rowNr, maxNr, nomNr, minNr As Integer
'Lade Informationen
' finde höchste Nummer
minNr = gHeaderRow '+ 1
maxNr = s.Range("A65536").End(xlUp).Offset(minNr - 1, 0).row - minNr + 1
' lade Main Scrollbar
ScrollBar1.min = minNr
ScrollBar1.Max = maxNr
'gActualRow nomNr = imCount()
If gActualRow > maxNr Then
ScrollBar1.Value = maxNr
Else
ScrollBar1.Value = gActualRow
End If
RowCounter = gActualRow
LoadFelder (RowCounter) 'first time
End Sub
Function imCount() As Integer
imCount = Worksheets("Inspections").Range("rowSelect").Value
End Function
Function exCount(Nr As Integer)
Worksheets("Inspections").Range("rowSelect").Value = Nr
End Function
Sub LoadFelder(rowNr As Integer)
'Dim rowNr As Integer
'gActualRow rowNr = imCount()
'rowNr = gActualRow
' Check rowNr >= gHeaderRow
If IsEmpty(rowNr) Then rowNr = 0
If rowNr < gHeaderRow Then rowNr = gHeaderRow
SelectLine (rowNr)
Set s = Worksheets("Inspections")
RowCounter = rowNr
'While s.rows(rowNr).Hidden 'Then 'rowNr).Hidden Then
'MsgBox "Hidden"
'rowNr = rowNr + 1
'Wend
rGroup.ControlSource = Quelle(rowNr, s.Range("rGroup").Column) 'Spalte
rModul.ControlSource = Quelle(rowNr, s.Range("rModul").Column) 'Spalte
rInspection.ControlSource = Quelle(rowNr, s.Range("rInspection").Column) 'Spalte
rDescription.ControlSource = Quelle(rowNr, s.Range("rDescription").Column) 'Spalte
rConfiguration.ControlSource = Quelle(rowNr, s.Range("rConfiguration").Column) 'Spalte
rConfigFile.ControlSource = Quelle(rowNr, s.Range("rConfigFile").Column) 'Spalte
rName.ControlSource = Quelle(rowNr, s.Range("rrName").Column) 'Spalte
rValue.ControlSource = Quelle(rowNr, s.Range("rrValue").Column) 'Spalte
rUnit.ControlSource = Quelle(rowNr, s.Range("rrUnit").Column) 'Spalte
rName2.ControlSource = Quelle(rowNr, s.Range("rrName2").Column) 'Spalte
rValue2.ControlSource = Quelle(rowNr, s.Range("rrValue2").Column) 'Spalte
rUnit2.ControlSource = Quelle(rowNr, s.Range("rrUnit2").Column) 'Spalte
rName3.ControlSource = Quelle(rowNr, s.Range("rrName3").Column) 'Spalte
rValue3.ControlSource = Quelle(rowNr, s.Range("rrValue3").Column) 'Spalte
rUnit3.ControlSource = Quelle(rowNr, s.Range("rrUnit3").Column) 'Spalte
rName4.ControlSource = Quelle(rowNr, s.Range("rrName4").Column) 'Spalte
rValue4.ControlSource = Quelle(rowNr, s.Range("rrValue4").Column) 'Spalte
rUnit4.ControlSource = Quelle(rowNr, s.Range("rrUnit4").Column) 'Spalte
' End If
'exCount (rowNr)
End Sub
Function Quelle(rw As Integer, cl As Integer) As String
If IsEmpty(rw) Or rw < 1 Then rw = 1
If IsEmpty(cl) Or cl < 1 Then cl = 1
Quelle = Worksheets("Inspections").Cells(rw, cl).Address(RowAbsolute:=False, ColumnAbsolute:=False)
End Function
Sub SelectLine(rw As Integer)
If IsEmpty(rw) Or rw < 1 Then rw = 1
Set s = Worksheets("Inspections")
s.Cells(rw, 2).Select
End Sub
Ich vermute, es liegt daran, dass in meinem Dokument definiert ist, dass der Wert der Zeile nicht weniger als eine Stelle haben darf.
Ich hoffe ihr könnt mir weiterhelfen, das wäre echt klasse.
Mit freundlichen Grüßen
Raphael