Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
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

Excel stürzt nach klick in ListBox ab

Excel stürzt nach klick in ListBox ab
19.12.2016 18:18:43
Fabio
Hallo an alle,
habe folgendes Problem:
In meinem Programm, welches automatisch TextBox einträge aus der userform in excel tabellen schreibt und auch andersrum lesen kann, befindet sich eine listbox, die alle einträge anzeigt.
das programm läuft beim ersten start und speichern von daten. danach hängt es quasi und funktioniert erst wieder richtig wenn man eine andere tabelle anklickt (excel lässt sich auch nicht schließen). was allerdings eher ein kleines problem darstellt.
speichert man seine änderungen und startet das programm neu, stürzt excell bei einem klick in die listbox der userform ab und beendet sich.
es liegt meiner meinung nach auf jeden fall an der listbox und dem klick ereignis, da man den schieberegler der listbox problemlos nutzen kann und auch alle anderen elemente der userform anklickbar sind ohne das fehler auftreten.
da die daten mit denen ich arbeite vertraulich sind, hoffe ich es reicht wenn ich hier nur den code des click-ereignisses der listbox poste.
wenn noch was unklar ist gerne fragen und vielen dank schonmal

Private Sub ListBox1_Click()
Dim lZeile As Long
'löschen aller bisherigen TextBoxen-Inhalte
Dim TxtBox As Control
For Each TxtBox In UserForm1.Controls
If TypeName(TxtBox) = "TextBox" Then
TxtBox.Value = ""
End If
Next TxtBox
OptionButton1.Value = False
OptionButton2.Value = False
'Nur wenn ein Eintrag selektiert/markiert ist
If ListBox1.ListIndex >= 0 Then
lZeile = 4 'Start in Zeile 3
Do While Trim(CStr(Tabelle1.Cells(lZeile, 2).Value))  ""
If Mid(ListBox1.Text, 4) = Trim(CStr(Tabelle1.Cells(lZeile, 2).Value)) Or _
Mid(ListBox1.Text, 5) = Trim(CStr(Tabelle1.Cells(lZeile, 2).Value)) Or _
Mid(ListBox1.Text, 6) = Trim(CStr(Tabelle1.Cells(lZeile, 2).Value)) Then
'hier musste ich 3 methoden anwenden, da in der listbox nummeriert wird, in der
'tabellenzelle aber nicht und die nummerierung 1-3 stellen lang sein kann
'TextBoxen füllen
TextBox1 = Trim(CStr(Tabelle1.Cells(lZeile, 2).Value))
TextBox2 = Tabelle1.Cells(lZeile, 3).Value
TextBox3 = Tabelle1.Cells(lZeile, 4).Value
TextBox4 = Tabelle1.Cells(lZeile, 5).Value
TextBox5 = Tabelle1.Cells(lZeile, 6).Value
'Schalteranzahl auslesen
If Tabelle6.Cells((lZeile - 3) * 4 + 3, 9).Value = 4 Or Not Tabelle7.Cells(( _
lZeile - 3) * 6 + 3, 9).Value = "" Then
ComboBox1.Value = 4
ElseIf Tabelle6.Cells((lZeile - 3) * 4 + 2, 9).Value = 3 Or Not Tabelle7. _
Cells((lZeile - 3) * 6 + 2, 9).Value = "" Then
ComboBox1.Value = 3
ElseIf Tabelle6.Cells((lZeile - 3) * 4 + 1, 9).Value = 2 Or Not Tabelle7. _
Cells((lZeile - 3) * 6 + 1, 9).Value = "" Then
ComboBox1.Value = 2
ElseIf Tabelle6.Cells((lZeile - 3) * 4, 9).Value = 1 Or Not Tabelle7.Cells((   _
_
_
lZeile - 3) * 6, 9).Value = "" Then
ComboBox1.Value = 1
Else: ComboBox1.Value = ""
End If
TextBox6 = Tabelle4.Cells((lZeile - 3) * 4, 14).Value
TextBox7 = Tabelle4.Cells((lZeile - 3) * 4 + 1, 14).Value
TextBox8 = Tabelle4.Cells((lZeile - 3) * 4 + 2, 14).Value
TextBox9 = Tabelle4.Cells((lZeile - 3) * 4, 10).Value
TextBox10 = Tabelle4.Cells((lZeile - 3) * 4 + 1, 10).Value
TextBox11 = Tabelle4.Cells((lZeile - 3) * 4 + 2, 10).Value
TextBox12 = Tabelle3.Cells((lZeile - 3) * 4, 10).Value
TextBox13 = Tabelle3.Cells((lZeile - 3) * 4 + 1, 10).Value
TextBox14 = Tabelle3.Cells((lZeile - 3) * 4 + 2, 10).Value
TextBox15 = Tabelle3.Cells((lZeile - 3) * 4, 14).Value
TextBox16 = Tabelle3.Cells((lZeile - 3) * 4 + 1, 14).Value
TextBox17 = Tabelle5.Cells((lZeile - 3) * 4, 10).Value
TextBox18 = Tabelle5.Cells((lZeile - 3) * 4 + 1, 10).Value
TextBox19 = Tabelle5.Cells((lZeile - 3) * 4 + 2, 10).Value
TextBox20 = Tabelle2.Cells((lZeile - 3) * 4, 10).Value
TextBox21 = Tabelle2.Cells((lZeile - 3) * 4, 12).Value
TextBox22 = Tabelle2.Cells((lZeile - 3) * 4, 14).Value
TextBox23 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 10).Value
TextBox24 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 12).Value
TextBox25 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 14).Value
TextBox26 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 10).Value
TextBox27 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 12).Value
TextBox28 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 14).Value
TextBox29 = Tabelle2.Cells((lZeile - 3) * 4, 9).Value
TextBox30 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 9).Value
TextBox31 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 9).Value
If TextBox29.Value = "6,8" Then OptionButton1.Value = True
If TextBox29.Value = "13,9" Then OptionButton2.Value = True
ComboBox18 = Tabelle2.Cells((lZeile - 3) * 4, 11).Value
ComboBox21 = Tabelle2.Cells((lZeile - 3) * 4, 13).Value
ComboBox24 = Tabelle2.Cells((lZeile - 3) * 4, 15).Value
ComboBox19 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 11).Value
ComboBox22 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 13).Value
ComboBox25 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 15).Value
ComboBox20 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 11).Value
ComboBox23 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 13).Value
ComboBox26 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 15).Value
TextBox41 = Tabelle2.Cells((lZeile - 3) * 4, 18).Value
TextBox42 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 18).Value
TextBox43 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 18).Value
'Einträge Tabelle 6 Schalter 1
If Len(Tabelle6.Cells((lZeile - 3) * 4, 10)) > 3 Then
TextBox44 = Mid(Tabelle6.Cells((lZeile - 3) * 4, 10).Value, 4)
End If
TextBox45 = Tabelle6.Cells((lZeile - 3) * 4, 12).Value
TextBox46 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 12).Value
TextBox47 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 12).Value
TextBox48 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 12).Value
TextBox49 = Tabelle6.Cells((lZeile - 3) * 4, 13).Value
TextBox50 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 13).Value
TextBox51 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 13).Value
TextBox52 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 13).Value
TextBox53 = Tabelle6.Cells((lZeile - 3) * 4, 14).Value
TextBox54 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 14).Value
TextBox55 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 14).Value
TextBox56 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 14).Value
ComboBox2 = Tabelle6.Cells((lZeile - 3) * 4, 15).Value
ComboBox3 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 15).Value
ComboBox4 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 15).Value
ComboBox5 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 15).Value
TextBox57 = Tabelle6.Cells((lZeile - 3) * 4, 16).Value
TextBox58 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 16).Value
TextBox59 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 16).Value
TextBox60 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 16).Value
TextBox61 = Tabelle6.Cells((lZeile - 3) * 4, 17).Value
TextBox62 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 17).Value
TextBox63 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 17).Value
TextBox64 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 17).Value
'Einträge Tabelle 6 Schalter 2
If Len(Tabelle6.Cells((lZeile - 3) * 4, 19)) > 3 Then
TextBox66 = Mid(Tabelle6.Cells((lZeile - 3) * 4, 19).Value, 4)
End If
TextBox67 = Tabelle6.Cells((lZeile - 3) * 4, 21).Value
TextBox68 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 21).Value
TextBox69 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 21).Value
TextBox70 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 21).Value
TextBox71 = Tabelle6.Cells((lZeile - 3) * 4, 22).Value
TextBox72 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 22).Value
TextBox73 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 22).Value
TextBox74 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 22).Value
TextBox75 = Tabelle6.Cells((lZeile - 3) * 4, 23).Value
TextBox76 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 23).Value
TextBox77 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 23).Value
TextBox78 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 23).Value
ComboBox6 = Tabelle6.Cells((lZeile - 3) * 4, 24).Value
ComboBox7 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 24).Value
ComboBox8 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 24).Value
ComboBox9 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 24).Value
TextBox79 = Tabelle6.Cells((lZeile - 3) * 4, 25).Value
TextBox80 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 25).Value
TextBox81 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 25).Value
TextBox82 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 25).Value
TextBox83 = Tabelle6.Cells((lZeile - 3) * 4, 26).Value
TextBox84 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 26).Value
TextBox85 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 26).Value
TextBox86 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 26).Value
'Einträge Tabelle 6 Schalter 3
If Len(Tabelle6.Cells((lZeile - 3) * 4, 28)) > 3 Then
TextBox88 = Mid(Tabelle6.Cells((lZeile - 3) * 4, 28).Value, 4)
End If
TextBox89 = Tabelle6.Cells((lZeile - 3) * 4, 30).Value
TextBox90 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 30).Value
TextBox91 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 30).Value
TextBox92 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 30).Value
TextBox93 = Tabelle6.Cells((lZeile - 3) * 4, 31).Value
TextBox94 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 31).Value
TextBox95 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 31).Value
TextBox96 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 31).Value
TextBox97 = Tabelle6.Cells((lZeile - 3) * 4, 32).Value
TextBox98 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 32).Value
TextBox99 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 32).Value
TextBox100 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 32).Value
ComboBox10 = Tabelle6.Cells((lZeile - 3) * 4, 33).Value
ComboBox11 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 33).Value
ComboBox12 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 33).Value
ComboBox13 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 33).Value
TextBox101 = Tabelle6.Cells((lZeile - 3) * 4, 34).Value
TextBox102 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 34).Value
TextBox103 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 34).Value
TextBox104 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 34).Value
TextBox105 = Tabelle6.Cells((lZeile - 3) * 4, 35).Value
TextBox106 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 35).Value
TextBox107 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 35).Value
TextBox108 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 35).Value
'Einträge Tabelle 6 Schalter 4
If Len(Tabelle6.Cells((lZeile - 3) * 4, 37)) > 3 Then
TextBox110 = Mid(Tabelle6.Cells((lZeile - 3) * 4, 37).Value, 4)
End If
TextBox111 = Tabelle6.Cells((lZeile - 3) * 4, 39).Value
TextBox112 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 39).Value
TextBox113 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 39).Value
TextBox114 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 39).Value
TextBox115 = Tabelle6.Cells((lZeile - 3) * 4, 40).Value
TextBox116 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 40).Value
TextBox117 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 40).Value
TextBox118 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 40).Value
TextBox119 = Tabelle6.Cells((lZeile - 3) * 4, 41).Value
TextBox120 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 41).Value
TextBox121 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 41).Value
TextBox122 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 41).Value
ComboBox14 = Tabelle6.Cells((lZeile - 3) * 4, 42).Value
ComboBox15 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 42).Value
ComboBox16 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 42).Value
ComboBox17 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 42).Value
TextBox123 = Tabelle6.Cells((lZeile - 3) * 4, 43).Value
TextBox124 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 43).Value
TextBox125 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 43).Value
TextBox126 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 43).Value
TextBox127 = Tabelle6.Cells((lZeile - 3) * 4, 44).Value
TextBox128 = Tabelle6.Cells((lZeile - 3) * 4 + 1, 44).Value
TextBox129 = Tabelle6.Cells((lZeile - 3) * 4 + 2, 44).Value
TextBox130 = Tabelle6.Cells((lZeile - 3) * 4 + 3, 44).Value
TextBox138 = Tabelle7.Cells((lZeile - 3) * 6, 10).Value
TextBox139 = Tabelle7.Cells((lZeile - 3) * 6, 11).Value
TextBox140 = Tabelle7.Cells((lZeile - 3) * 6, 12).Value
TextBox141 = Tabelle7.Cells((lZeile - 3) * 6, 13).Value
TextBox142 = Tabelle7.Cells((lZeile - 3) * 6 + 1, 10).Value
TextBox143 = Tabelle7.Cells((lZeile - 3) * 6 + 1, 11).Value
TextBox144 = Tabelle7.Cells((lZeile - 3) * 6 + 1, 12).Value
TextBox145 = Tabelle7.Cells((lZeile - 3) * 6 + 1, 13).Value
TextBox146 = Tabelle7.Cells((lZeile - 3) * 6 + 2, 10).Value
TextBox147 = Tabelle7.Cells((lZeile - 3) * 6 + 2, 11).Value
TextBox148 = Tabelle7.Cells((lZeile - 3) * 6 + 2, 12).Value
TextBox149 = Tabelle7.Cells((lZeile - 3) * 6 + 2, 13).Value
TextBox150 = Tabelle7.Cells((lZeile - 3) * 6 + 3, 10).Value
TextBox151 = Tabelle7.Cells((lZeile - 3) * 6 + 3, 11).Value
TextBox152 = Tabelle7.Cells((lZeile - 3) * 6 + 3, 12).Value
TextBox153 = Tabelle7.Cells((lZeile - 3) * 6 + 3, 13).Value
TextBox154 = Tabelle7.Cells((lZeile - 3) * 6, 16).Value
TextBox155 = Tabelle7.Cells((lZeile - 3) * 6, 17).Value
TextBox156 = Tabelle7.Cells((lZeile - 3) * 6, 18).Value
TextBox157 = Tabelle7.Cells((lZeile - 3) * 6, 19).Value
TextBox158 = Tabelle7.Cells((lZeile - 3) * 6 + 1, 16).Value
TextBox159 = Tabelle7.Cells((lZeile - 3) * 6 + 1, 17).Value
TextBox160 = Tabelle7.Cells((lZeile - 3) * 6 + 1, 18).Value
TextBox161 = Tabelle7.Cells((lZeile - 3) * 6 + 1, 19).Value
TextBox162 = Tabelle7.Cells((lZeile - 3) * 6 + 2, 16).Value
TextBox163 = Tabelle7.Cells((lZeile - 3) * 6 + 2, 17).Value
TextBox164 = Tabelle7.Cells((lZeile - 3) * 6 + 2, 18).Value
TextBox165 = Tabelle7.Cells((lZeile - 3) * 6 + 2, 19).Value
TextBox166 = Tabelle7.Cells((lZeile - 3) * 6 + 3, 16).Value
TextBox167 = Tabelle7.Cells((lZeile - 3) * 6 + 3, 17).Value
TextBox168 = Tabelle7.Cells((lZeile - 3) * 6 + 3, 18).Value
TextBox169 = Tabelle7.Cells((lZeile - 3) * 6 + 3, 19).Value
TextBox170 = Tabelle7.Cells((lZeile - 3) * 6 + 4, 16).Value
TextBox171 = Tabelle7.Cells((lZeile - 3) * 6 + 4, 17).Value
TextBox172 = Tabelle7.Cells((lZeile - 3) * 6 + 4, 18).Value
TextBox173 = Tabelle7.Cells((lZeile - 3) * 6 + 4, 19).Value
TextBox174 = Tabelle7.Cells((lZeile - 3) * 6 + 5, 16).Value
TextBox175 = Tabelle7.Cells((lZeile - 3) * 6 + 5, 17).Value
TextBox176 = Tabelle7.Cells((lZeile - 3) * 6 + 5, 18).Value
TextBox177 = Tabelle7.Cells((lZeile - 3) * 6 + 5, 19).Value
If Len(Tabelle7.Cells((lZeile - 3) * 6, 9)) > 3 Then
TextBox178 = Mid(Tabelle7.Cells((lZeile - 3) * 6, 9).Value, 4)
End If
If Len(Tabelle7.Cells((lZeile - 3) * 6 + 1, 9)) > 3 Then
TextBox179 = Mid(Tabelle7.Cells((lZeile - 3) * 6 + 1, 9).Value, 4)
End If
If Len(Tabelle7.Cells((lZeile - 3) * 6 + 2, 9)) > 3 Then
TextBox180 = Mid(Tabelle7.Cells((lZeile - 3) * 6 + 2, 9).Value, 4)
End If
If Len(Tabelle7.Cells((lZeile - 3) * 6 + 3, 9)) > 3 Then
TextBox181 = Mid(Tabelle7.Cells((lZeile - 3) * 6 + 3, 9).Value, 4)
End If
ComboBox27 = Tabelle2.Cells((lZeile - 3) * 4, 19).Value
ComboBox28 = Tabelle2.Cells((lZeile - 3) * 4 + 1, 19).Value
ComboBox29 = Tabelle2.Cells((lZeile - 3) * 4 + 2, 19).Value
TextBox188 = Tabelle8.Cells((lZeile - 3) * 6, 10).Value
TextBox189 = Tabelle8.Cells((lZeile - 3) * 6, 11).Value
TextBox190 = Tabelle8.Cells((lZeile - 3) * 6, 12).Value
TextBox191 = Tabelle8.Cells((lZeile - 3) * 6, 13).Value
TextBox192 = Tabelle8.Cells((lZeile - 3) * 6 + 1, 10).Value
TextBox193 = Tabelle8.Cells((lZeile - 3) * 6 + 1, 11).Value
TextBox194 = Tabelle8.Cells((lZeile - 3) * 6 + 1, 12).Value
TextBox195 = Tabelle8.Cells((lZeile - 3) * 6 + 1, 13).Value
TextBox196 = Tabelle8.Cells((lZeile - 3) * 6 + 2, 10).Value
TextBox197 = Tabelle8.Cells((lZeile - 3) * 6 + 2, 11).Value
TextBox198 = Tabelle8.Cells((lZeile - 3) * 6 + 2, 12).Value
TextBox199 = Tabelle8.Cells((lZeile - 3) * 6 + 2, 13).Value
TextBox200 = Tabelle8.Cells((lZeile - 3) * 6 + 3, 10).Value
TextBox201 = Tabelle8.Cells((lZeile - 3) * 6 + 3, 11).Value
TextBox202 = Tabelle8.Cells((lZeile - 3) * 6 + 3, 12).Value
TextBox203 = Tabelle8.Cells((lZeile - 3) * 6 + 3, 13).Value
TextBox204 = Tabelle8.Cells((lZeile - 3) * 6, 16).Value
TextBox205 = Tabelle8.Cells((lZeile - 3) * 6, 17).Value
TextBox206 = Tabelle8.Cells((lZeile - 3) * 6, 18).Value
TextBox207 = Tabelle8.Cells((lZeile - 3) * 6, 19).Value
TextBox208 = Tabelle8.Cells((lZeile - 3) * 6 + 1, 16).Value
TextBox209 = Tabelle8.Cells((lZeile - 3) * 6 + 1, 17).Value
TextBox210 = Tabelle8.Cells((lZeile - 3) * 6 + 1, 18).Value
TextBox211 = Tabelle8.Cells((lZeile - 3) * 6 + 1, 19).Value
TextBox212 = Tabelle8.Cells((lZeile - 3) * 6 + 2, 16).Value
TextBox213 = Tabelle8.Cells((lZeile - 3) * 6 + 2, 17).Value
TextBox214 = Tabelle8.Cells((lZeile - 3) * 6 + 2, 18).Value
TextBox215 = Tabelle8.Cells((lZeile - 3) * 6 + 2, 19).Value
TextBox216 = Tabelle8.Cells((lZeile - 3) * 6 + 3, 16).Value
TextBox217 = Tabelle8.Cells((lZeile - 3) * 6 + 3, 17).Value
TextBox218 = Tabelle8.Cells((lZeile - 3) * 6 + 3, 18).Value
TextBox219 = Tabelle8.Cells((lZeile - 3) * 6 + 3, 19).Value
TextBox220 = Tabelle8.Cells((lZeile - 3) * 6 + 4, 16).Value
TextBox221 = Tabelle8.Cells((lZeile - 3) * 6 + 4, 17).Value
TextBox222 = Tabelle8.Cells((lZeile - 3) * 6 + 4, 18).Value
TextBox223 = Tabelle8.Cells((lZeile - 3) * 6 + 4, 19).Value
TextBox224 = Tabelle8.Cells((lZeile - 3) * 6 + 5, 16).Value
TextBox225 = Tabelle8.Cells((lZeile - 3) * 6 + 5, 17).Value
TextBox226 = Tabelle8.Cells((lZeile - 3) * 6 + 5, 18).Value
TextBox227 = Tabelle8.Cells((lZeile - 3) * 6 + 5, 19).Value
ComboBox30.Value = Tabelle1.Cells(lZeile, 9).Value
ComboBox31.Value = Tabelle1.Cells(lZeile, 10).Value
ComboBox32.Value = Tabelle1.Cells(lZeile, 11).Value
'"Eintrag auswählen" ausblenden
Label88.Visible = False
Label109.Visible = False
Label117.Visible = False
'Messungen via Textboxen auf vollständigkeit prüfen und entsprechende labels  _
anzeigen
Dim vollstand As Integer
For vollstand = 6 To 231
Select Case vollstand
Case 6, 7, 9 To 11
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label91.Visible = True
Label106.Visible = True
vollstand = 11
Else: Label91.Visible = False
Label106.Visible = False
End If
Case 12 To 16
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label90.Visible = True
Label105.Visible = True
vollstand = 16
Else: Label90.Visible = False
Label105.Visible = False
End If
Case 17 To 19
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label92.Visible = True
Label107.Visible = True
vollstand = 19
Else: Label92.Visible = False
Label107.Visible = False
End If
Case 20 To 31, 41 To 43
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label89.Visible = True
Label104.Visible = True
vollstand = 43
Else: Label89.Visible = False
Label104.Visible = False
End If
Case 44 To 48, 57 To 64
If ComboBox1.Value >= 1 Or ComboBox1.Value = "" Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Or _
ComboBox2.Value = "" Or ComboBox3.Value = "" Or ComboBox4.Value = "" _
_
_
Or ComboBox5.Value = "" Then
Label93.Visible = True
Label108.Visible = True
vollstand = 64
Else: Label93.Visible = False
Label108.Visible = False
End If
End If
Case 66 To 70, 79 To 86
If ComboBox1.Value >= 2 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Or _
ComboBox6.Value = "" Or ComboBox7.Value = "" Or ComboBox8.Value = "" _
_
_
Or ComboBox9.Value = "" Then
Label93.Visible = True
Label108.Visible = True
vollstand = 86
Else: Label93.Visible = False
Label108.Visible = False
End If
End If
Case 88 To 92, 101 To 108
If ComboBox1.Value >= 3 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Or _
ComboBox10.Value = "" Or ComboBox11.Value = "" Or ComboBox12.Value = _
_
_
"" Or ComboBox13.Value = "" Then
Label93.Visible = True
Label108.Visible = True
volsltand = 108
Else: Label93.Visible = False
Label108.Visible = False
End If
End If
Case 110 To 114, 123 To 130
If ComboBox1.Value >= 4 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Or _
ComboBox14.Value = "" Or ComboBox15.Value = "" Or ComboBox16.Value = _
_
_
"" Or ComboBox17.Value = "" Then
Label93.Visible = True
Label108.Visible = True
vollstand = 130
Else: Label93.Visible = False
Label108.Visible = False
End If
End If
Case 138 To 140, 178
If ComboBox1.Value >= 1 Or ComboBox1.Value = "" Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label121.Visible = True
Label119.Visible = True
vollstand = 181
Else: Label121.Visible = False
Label119.Visible = False
End If
End If
Case 142 To 144, 154 To 156, 179
If ComboBox1.Value >= 2 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label121.Visible = True
Label119.Visible = True
vollstand = 181
Else: Label121.Visible = False
Label119.Visible = False
End If
End If
Case 146 To 148, 158 To 160, 166 To 168, 180
If ComboBox1.Value >= 3 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label121.Visible = True
Label119.Visible = True
vollstand = 181
Else: Label121.Visible = False
Label119.Visible = False
End If
End If
Case 150 To 152, 162 To 164, 170 To 172, 174 To 176, 181
If ComboBox1.Value >= 4 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label121.Visible = True
Label119.Visible = True
vollstand = 181
Else: Label121.Visible = False
Label119.Visible = False
End If
End If
Case 188 To 190, 229
If ComboBox1.Value >= 1 Or ComboBox1.Value = "" Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label178.Visible = True
Label179.Visible = True
vollstand = 231
Else: Label178.Visible = False
Label179.Visible = False
End If
End If
Case 192 To 194, 204 To 206, 230
If ComboBox1.Value >= 2 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label178.Visible = True
Label179.Visible = True
vollstand = 231
Else: Label178.Visible = False
Label179.Visible = False
End If
End If
Case 196 To 198, 208 To 210, 216 To 218, 231
If ComboBox1.Value >= 3 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label178.Visible = True
Label179.Visible = True
vollstand = 231
Else: Label178.Visible = False
Label179.Visible = False
End If
End If
Case 200 To 202, 212 To 214, 220 To 222, 224 To 226, 228
If ComboBox1.Value >= 4 Then
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label178.Visible = True
Label179.Visible = True
vollstand = 231
Else: Label178.Visible = False
Label179.Visible = False
End If
End If
End Select
Next vollstand
'wenn alle labels unsichtbar dann "alle messungen fertig" anzeigen
If Label89.Visible = False And Label90.Visible = False And Label91.Visible = False   _
_
_
And _
Label92.Visible = False And Label93.Visible = False And Label121.Visible = False  _
And _
Label178.Visible = False Then
Label94.Visible = True
Else: Label94.Visible = False
End If
Exit Do
End If
lZeile = lZeile + 1
Loop
End If
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schleife seltsam
20.12.2016 19:21:06
Michael
Hi,
Deine Schleife sieht ausschnittweise so aus:

For vollstand = 6 To 231
Select Case vollstand
Case 6, 7, 9 To 11
If UserForm1.Controls("TextBox" & vollstand).Value = "" Then
Label91.Visible = True
Label106.Visible = True
vollstand = 11
Else: Label91.Visible = False
Label106.Visible = False
End If
next

Das heißt, bei vollstand=6 springt der Code in den Case-Zweig und vollstand wird auf 11 erhöht und beim nächsten Durchlauf auf 12 gesetzt, wodurch der nächste Case-Zweig angesprungen wird.
Im Endeffekt läuft es also so, als ob das For-next samt Case nicht vorhanden wäre und alle darin enthaltenen Anweisungen schlicht nacheinander ausgeführt werden.
Das ist sicher nicht erwünscht - d.h. die Zeile mit vollstand = x innerhalb des Codes ist höchstwahrscheinlich Quatsch - wir wissen im Detail ja nicht, was da überhaupt passieren soll: also können wir auch nicht beurteilen, wo der Fehler liegen könnte.
Fehler findet man am einfachsten, wenn man an passender Stelle eine Zeile einfügt und stop reinschreibt (oder mit F9 einen Haltepunkt setzt): dann stopt das Makro an der Stelle und kann mit der F8-Taste zeilenweise weiter abgearbeitet werden. So läßt sich verfolgen, was passiert.
Schöne Grüße,
Michael
Anzeige
AW: Schleife seltsam
20.12.2016 21:34:02
Fabio
also das ist schon gewollt, dass er die schleife danach überspringt wenn er "" findet, da er sonst die labels im nächsten fall eventuell wieder unsichtbar macht.
die funktionen passen alle und es läuft auch wunderbar während vba geöffnet ist. ich verstehe nicht wieso bei einem erneuten öffnen der tabelle (ohne vba zu öffnen) bei einem klick in die liste excel abstürzt.
ich werde mal das mit demhaltepunkt ausprobieren und melde mich wenn ich weiteres herausgefunden habe.
danke :)
AW: Schleife seltsam
20.12.2016 22:33:23
Gerd
Hallo Fabio,
statt Hinweisen zur Fehlerbehandlung, eine kleine Routine, mit der du feststellen kannst, ob ein
Steuerelement in den Reihen fehlt. Du hast da nämlich eine Menge Controls. Es kann durch Löschen u. Einfügen schnell mal eins abhandenkommen.

Private Sub Lese_UserForm()
Dim CTRL As Control, L As Long
For Each CTRL In UserForm1.Controls
ActiveSheet.Cells(2 + L, 1) = CTRL.Name
L = L + 1
Next
End Sub

Gruß Gerd
Anzeige
AW: Schleife seltsam
20.12.2016 23:24:13
Fabio
Also es fehlen durchaus zwischendurch mal controls, welche aber in der userform auch nicht verwendet werden. textbox182 gibt es zum beispiel nicht, kommt im code aber auch nicht vor. ist das schlimm?
AW: Schleife seltsam
21.12.2016 14:29:39
Fabio
Habe den Fehler gefunden. Sehr komisch aber die ComboBoxen ganz am Ende haben ihn erzeugt:
ComboBox30.Value = Tabelle1.Cells(lZeile, 9).Value
ComboBox31.Value = Tabelle1.Cells(lZeile, 10).Value
ComboBox32.Value = Tabelle1.Cells(lZeile, 11).Value
nachdem ich diese aussortiert habe kam der fehler noch bei der speichern routine entsprechend:
Tabelle1.Cells(lZeile, 9).Value = ComboBox30.Value
Tabelle1.Cells(lZeile, 10).Value = ComboBox31.Value
Tabelle1.Cells(lZeile, 11).Value = ComboBox32.Value
verstehe ich nicht, aber bin froh dass es nur an sowas kleinem lag.
Danke nochmal an alle
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige