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

HelpContextID missbrauchen

HelpContextID missbrauchen
17.07.2018 16:51:04
Ludmila
Hallo,
ich möchte gerne wissen ob sich das negativ auswirkt wenn ich die HelpContextID,
wie unten aufgeführt, verwende.
Es funktioniert auf alle Fälle.
Private Sub CommandButton1_Click()
With UserForm1
lxl = 1
lol = 1
For Each obj In Me.Controls
Select Case TypeName(obj)
Case "TextBox", "ComboBox"
If Left(obj.Name, 8) = "txtStabo" Or Left(obj.Name, 8) = "cboStabo" Then  _
Cells(lxl, obj.HelpContextID + lol) = obj.Text
End Select
Next obj
End With
End Sub

Danke!
Gruß, Ludmila

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

Betreff
Datum
Anwender
Anzeige
AW: HelpContextID missbrauchen
17.07.2018 18:14:59
ChrisL
Hi
Testen müsstest du schon selber, aber Code-Missbrauch endet meist in Krückenlösungen. :)
Wie ich verstehe willst du eine Art "Mapping-Tabelle" (Bezug Control zur Zelle) herstellen. Warum nicht einfach LinkedCell oder eine ganz normale Tabelle verwenden?
Was ich schon öfters gesehen habe ist die Verwendung vom Object.Tag (englisch Tag wie Anhänger/Schild), um Control-bezogen Daten zwischen zu speichern.
https://msdn.microsoft.com/de-de/vba/language-reference-vba/articles/tag-property-example
Unlike other properties, the Tag property setting doesn't affect any of an object's attributes.
cu
Chris
Anzeige
AW: HelpContextID missbrauchen
17.07.2018 18:28:25
Ludmila
Hallo Chris,
die Tag Eigenschaft der einzelnen Steuerelemte benutze ich bereits um Daten in verschiedene Tabellen einzutragen.
Meine UF hat mehr als 300 Steuerelemente und diese werden dann gemeinsam über die HelpContextID in eine Haupttabelle ein, bzw. ausgelesen. (Dauer unter 1 Sekunde!)
Es funktioniert und meine Frage war eben nur ob das Auswirkungen auf etwas anderes haben könnte.
Danke!
Gruß, Ludmila
AW: HelpContextID missbrauchen
17.07.2018 18:41:25
ChrisL
Hi
Ja wenn das so ist... Tag bereits besetzt. Ich markiere die Frage wieder offen.
Was soll bei HelpContextID schon gross schief gehen d.h. ich glaube es ist OK, aber vielleicht weiss jemand anders mehr.
cu
Chris
PS: Die hohe Anzahl Steuerelemente ist... "ungewöhnlich" (Alter Falter)
Anzeige
AW: HelpContextID missbrauchen
17.07.2018 19:57:03
Nepumuk
Hallo,
die Eigenschaft HelpContextID kannst du getrost verwenden, da kann nichts passieren. Ich selbst würde die Controls allerdings in eine Klasse klopfen, da kann ich Eigenschaften definieren wie ich lustig bin.
Gruß
Nepumuk
AW: HelpContextID missbrauchen
17.07.2018 20:19:55
Ludmila
Hallo Nepumuk,
vielen Dank für Deine Antwort.
Mit dem Klassenmodul habe ich mein Problem.
Wenn ich dies so wie unten aufgeführt auslöse, kommt
bei Select Case cb.HelpContextID eine Fehlermeldung.
Was mache ich da Falsch?
Danke!
Gruß, Ludmila
Public WithEvents myTbo As MSForms.TextBox
Public Function initTbo(btn As MSForms.TextBox) As Object
Set initTbo = Nothing
Set myTbo = btn
Set initTbo = Me
End Function

Private Sub myTbo_Change()
For Each cb In UF1.Controls
Select Case cb.HelpContextID
Case "40", "43", "46"
MsgBox cb.HelpContextID
End Select
Next
End Sub

Private Sub UserForm_Initialize()
Dim n As Long
n = -1
For Each cb In .Controls
If TypeOf cb Is MSForms.TextBox Then
n = n + 1
ReDim Preserve arrTbo(n)
Set arrTbo(n) = New clsTbo
arrTbo(n).initTbo cb
End If
Next
End With
End Sub

Anzeige
AW: HelpContextID missbrauchen
17.07.2018 20:27:21
Nepumuk
Hallo,
welche Fehlermeldung in welcher Zeile?
Du klapperst in der Schleife alle Controls ab, aber z.B. ein Image hat gar keine HelpContextID-Eigenschaft und du läufst in einen Fehler.
Gruß
Nepumuk
AW: HelpContextID missbrauchen
17.07.2018 20:39:10
Ludmila
Hallo Nepumuk,
hier kommt der Fehler
Select Case cb.HelpContextID
Die Eigenschaft HelpContextID konnte nicht abgerufen werden. Mitglied nicht gefunden!
In meiner UF sind 55 Label, 178 Textboxen, 102 ComboBoxen sowie 2 Frame.
Gruß,Ludmila
AW: HelpContextID missbrauchen
18.07.2018 10:51:04
Oberschlumpf
Hi
Labels haben keine HelpContextID, bzw ist kein Zugriff möglich, auch wenn HelpContextID in den Eigenschaften vorhanden + veränderbar ist.
So hab ich es hier gelesen: https://www.vbarchiv.net/forum/read.php?id=2&t=134513&i=134513&v=f
Änder den Code mit "Problemzeile" so:

Private Sub myTbo_Change()
For Each cb In UF1.Controls
If TypeName(cb)  "Label" Then
Select Case cb.HelpContextID
Case "40", "43", "46"
MsgBox cb.HelpContextID
End Select
End If
Next
End Sub

Hilfts?
Wenn nicht, hab ich keine weitere Idee.
Ciao
Thorsten
Anzeige
AW: HelpContextID missbrauchen
18.07.2018 13:15:20
Ludmila
Hallo Thorsten,
erstmal Danke das Du mir helfen willst.
Leider funktioniert es nicht.
Habe nun versucht eine eigene Klasse für die Steuerelemente nach Namen zu bilden aber es funkt nicht.
Im Modul
Public arrStaboTB() As New cTB
Public cb as Control
Sub Stabo_Klasse()
Dim lol as long
With U1
For Each cb In .Controls
If Left(cb.Name, 9) = "txtStabo_" Then
lol = lol + 1
ReDim Preserve arrStaboTB(1 To lol)
Set arrStaboTB(lol).StaboTB = cb
End If
Next cb
End Sub
Im Klassenmodul cTB
Public WithEvents StaboTB As MSForms.TextBox
Private Sub StaboTB_Change()
with U1
If .Tag = "0" Then Exit Sub
For Each cb In .Controls
Select Case StaboTB.Name
Case "txtStabo_Zusatzname","txtStabo_Nummer"
MsgBox StaboTB.Name
End Select
Next
'    bGespeichert = False
End Sub
Muß mir wohl was anderes überlegen!
Gruß, Ludmila
Anzeige
wirklich keine weitere Idee, aber...
18.07.2018 15:06:45
Oberschlumpf
Hallo,
du schreibst "Leider funktioniert es nicht."
Du musst nicht sehr viel genauere Angaben machen, was,wo,wie nicht funktioniert + welche Fehlermeldung kommt, wenn denn eine kommt, aber!...es könnte für dich sehr viel hilfreicher sein, da vielleicht Andere etwas wissen, wenn du denn nur mehr Infos verraten würdest...
Ciao
Thorsten
AW: wirklich keine weitere Idee, aber...
18.07.2018 21:19:12
Ludmila
Hallo Thorsten,
zum besseren, so Hoffe ich zumindest, Verständnis eine Beispieldate von mir.
Prinzipiell ist der Aufbau meiner UF immer gleich.
Alles ist in einem Frame, das nur wegen der Geschindigkeit und Speicherplatz.
Es soll für jeden Aufruf die entsprechende Klasse aktiviert und nach dem verlassen wieder gelöscht werden.
Ich kenne die Auswirkungen nicht wenn ich alle Textboxen über eine Klasse laufen lasse und mit Case Anweisung differenziere. (so wie bei den Label)
Danke!
Gruß, Ludmila
https://www.herber.de/bbs/user/122770.xlsm
Anzeige
AW: geölst...
19.07.2018 02:42:43
Ludmila
Hallo Thorsten,
nachdem ich jetzt Stunden lang gebastelt habe ist die Lösung gefunden.
Wenn die Button Stamm oder KD nicht ausgelöst werden, wird kein Change_Ereignis ausgeführt.
Gruß
Ludmila
https://www.herber.de/bbs/user/122775.xlsm

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige