Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
584to588
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
584to588
584to588
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

OOP in VBA ?

OOP in VBA ?
16.03.2005 10:51:31
Marc
Hallo Forum,
folgendes Problem:
Ich habe in einer UserForm eine ganze Reihe von SpinButtons die jeweils eine TextBox beeiflussen. Dabei ist SpinButton1 an TextBox1 usw. gebunden.
Anstatt mir nun die Finger wund zu programmieren, würde ich gerne eine Methode schreiben, die bei jedem SpinButton.Click aufgerufen wird, die 'Nummer' des aufrufenden SpinButton übernimmt und damit die entsprechende TextBox verändert.
In der OOP kein Problem, in VBA kenne ich die Lösung leider nicht.
Wer kann helfen?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: OOP in VBA ?
16.03.2005 12:19:57
bst
Hallo Marc,
versuch's mal so. Hier mit 4 SpinButtons & 4 Textboxes in Userform2.
Alle SpinButtons müssen den Namen SpinButtonNR haben, mit NR = 1,2,3,...
Alle Textboxen müssen analog den Namen TextBoxNR haben.
In ein Modul:
Option Explicit
Public SpinButtonArray(1 To 4) As mySpinButton
In ein Klassenmodul mit dem Namen mySpinButton (Der Name ist wichtig !):
Option Explicit
Public WithEvents mySpinButton As MSFORMS.SpinButton

Private Sub mySpinButton_Change()
Dim myNum As Integer
myNum = CInt(Val(Replace(mySpinButton.Name, "SpinButton", "")))
If myNum <= 0 Then
Debug.Print "Falscher NAME !!!", mySpinButton.Name
Else
UserForm2.Controls("TextBox" & myNum).Value = mySpinButton.Value
End If
End Sub

Hinter die Userform2:
Option Explicit

Private Sub UserForm_Initialize()
Dim intIndex As Integer
Dim strName As String
For intIndex = 1 To 4
Set SpinButtonArray(intIndex) = New mySpinButton
strName = "SpinButton" & CStr(intIndex)
Set SpinButtonArray(intIndex).mySpinButton = Me.Controls(strName)
Next
End Sub

HTH, Bernd
Anzeige
AW: OOP in VBA ?
16.03.2005 14:04:22
Marc
Hallo Bernd,
vielen Dank für deine Lösung, funktioniert einwandfrei!
Gruß Marc

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige