Antworten auf deine Fragen:
Neues Thema erstellen

Visual Basic

AlienSites

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.

'________ 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
 

pepexx

Moderator im Nutellawahn

Teammitglied
PSD Beta Team
AW: Visual Basic

Quick and dirty:
"on error resume next" am Anfang des Moduls hilft evtl.
 

pepexx

Moderator im Nutellawahn

Teammitglied
PSD Beta Team
AW: Visual Basic

gern doch - sollte man aber vorsichtig mit umgehen, da dieser Befehl alle Fehler ignoriert
und einfach im Programm weiter macht.

Daher nur bei kleinen Modulen ratsam, bzw. wenn man weiß, an welcher Stelle das greift, dahinter eine andere Fehlerroutine einbauen. Und sei es nur die Anzeige einer MsgBox, damit die alte dann außer Kraft ist :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben