Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
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

Typen unverträglich

Typen unverträglich
30.05.2018 14:20:43
Antonio
Hi,
meine UserForm ist soweit OK.
1_In cbx ein Item auswählen
2_In ListBox irgendein Row markieren
Und wie man sieht die Punkte da sind mit Beschriftung.
Jetz habe noch eine Tabelle hinzugefügt "Töne"
1_In cbx ein Item auswählen
2_In ListBox irgendein Row markieren
1_dann auf cmd Töne click
2_ ein Row mit Buchstaben markieren
3_!!!FEHLER!!! Typen unverträglich
Ich finde es allein nicht raus woran es liegt.
Bitte um Hilfe
Hier meine beispieldatei:
https://www.herber.de/bbs/user/121890.xlsm
Danke in Voraus
Antonio

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Typen unverträglich
30.05.2018 14:28:49
Peter(silie)
Hallo,
intWert As Integer ist schuld.
ändern in Variant
AW: Typen unverträglich
30.05.2018 14:34:49
Antonio
Hallo Peter,
ändert sich nichts, gleiche Fehler
Antonio
AW: Typen unverträglich
30.05.2018 14:29:20
ChrisL
Hi Antonio
Falsches Makro/Datei hochgeladen?
Die beiden Prozeduren PunkteAusblenden und LabelAusblenden kannst du löschen.
cu
Chris
AW: Typen unverträglich
30.05.2018 14:38:19
Antonio
Nein Chris,
das ist die Original Mappe abgespeckt.
Wenn ich die beide Prozeduren lösche dann sind die Punkte und der Text nicht mehr zu sehen.
Antonio
AW: Typen unverträglich
30.05.2018 14:40:34
Antonio
Sorry die punkte sind nicht zu sehen die Labels schon.
Antonio
AW: Typen unverträglich
30.05.2018 14:43:29
ChrisL
Hiermit kann ich jedenfalls keinen Typenfehler produzieren:
Private Sub cmd1_Click()
Dim i As Integer
ListBox1.Clear
Call PunkteEinblenden(False)
Call LabelEinblenden(False)
If cbx1  "" Then
For i = 12 To 95 Step 6
With Worksheets("Töne")
ListBox1.AddItem .Cells(cbx1.ListIndex + 1, i)
ListBox1.List(ListBox1.ListCount - 1, 1) = .Cells(cbx1.ListIndex + 1, i + 1)
ListBox1.List(ListBox1.ListCount - 1, 2) = .Cells(cbx1.ListIndex + 1, i + 2)
ListBox1.List(ListBox1.ListCount - 1, 3) = .Cells(cbx1.ListIndex + 1, i + 3)
ListBox1.List(ListBox1.ListCount - 1, 4) = .Cells(cbx1.ListIndex + 1, i + 4)
ListBox1.List(ListBox1.ListCount - 1, 5) = .Cells(cbx1.ListIndex + 1, i + 5)
End With
Next i
End If
End Sub

Und ursprünglich hatte ich Ein-/Ausblenden in zwei separaten Prozeduren. Im Rahmen der Korrektur "Reihenfolge ändern" hatte ich dann die beiden zusammengefasst (b = True/False).
Private Sub PunkteEinblenden(b As Boolean)
Dim i As Integer
For i = 1 To 6
Controls("Punkt" & i).Visible = b
Next i
End Sub

Anzeige
AW: Typen unverträglich
30.05.2018 14:48:48
Antonio
hi Chris,
der Fehler kommt aus der fette Zeile:
For i = 6 To 1 Step -1
Controls("Punkt" & i).Top = Image1.Top + (((Image1.Height - (Punkt1.Height * 6)) / 12) _
* (((i - 1) * 2) + 1)) + ((i - 1) * Punkt1.Height)
Controls("Label" & i).Top = Image1.Top + (((Image1.Height - (Label1.Height * 6)) / 12) _
* (((i - 1) * 2) + 1)) + ((i - 1) * Label1.Height)
If ListBox1.List(ListBox1.ListIndex, intCounter) = "x" Then
intWert = 1
Else
intWert = ListBox1.List(ListBox1.ListIndex, intCounter) + 1
End If
Controls("Punkt" & i).Left = Image1.Left + (((Image1.Width - (Punkt1.Width * 15)) / 32) * _
(((intWert - 1) * 2) - 1.5)) + ((intWert - 1) * Punkt1.Width)
Controls("Label" & i).Left = Image1.Left + (((Image1.Width - (Label1.Width * 15)) / 32) * _
(((intWert - 1) * 2) - 0.65)) + ((intWert - 1) * Label1.Width)
intCounter = intCounter + 1
Next i
Antonio
Anzeige
AW: Typen unverträglich
30.05.2018 14:56:55
ChrisL
Ach so... jetzt sehe ich es.
Ersetze...
If ListBox1.List(ListBox1.ListIndex, intCounter) = "x" Then
intWert = 1
Else
intWert = ListBox1.List(ListBox1.ListIndex, intCounter) + 1
End If
durch
Select Case
Case "x": intWert = 1
Case "A": intWert = 7
'usw
Case Else: intWert = ListBox1.List(ListBox1.ListIndex, intCounter) + 1
End Select
Wichtig: Die Zahlenreihe geht nicht von 0 bis 15, sondern von 1 bis 16. Darum x = 1 (nicht null).
cu
Chris
AW: Typen unverträglich
30.05.2018 15:03:45
Antonio
Hi Chris,
du meinst so:
Select Case intWert
Case "x": intWert = 1
Case "C": intWert = 7
Case "D": intWert = 8
Case "E": intWert = 9
Case "F": intWert = 10
'usw
bis alle noten die vorkommen können eingetragen sind
Stimmt?
Antonio
Anzeige
AW: Typen unverträglich
30.05.2018 15:42:51
ChrisL
Hi
Ja, irgendwie musst du die Noten in Zahlen übersetzen. Man kann auch über Hilfstabelle, aber weil sich die Noten nie ändern, kann man es auch gleich im VBA Code unterbringen.
cu
Chris
AW: Typen unverträglich
30.05.2018 18:47:40
ChrisL
Hi
Sorry, "ja" gilt immer noch, aber der Case ist...
Select Case ListBox1.List(ListBox1.ListIndex, intCounter)
Case "x": intWert = 1
Case "C": intWert = 7
Case "D": intWert = 8
Case "E": intWert = 9
Case "F": intWert = 10
'usw
Case Else: intWert = ListBox1.List(ListBox1.ListIndex, intCounter) + 1
End Select
cu
Chris
AW: Typen unverträglich
30.05.2018 18:47:42
Antonio
Hi Chris
Danke,
werde mich am montag wieder melden
Antonio
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige