Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Alle TextBoxes in UF sollen ein Makro starten

Betrifft: Alle TextBoxes in UF sollen ein Makro starten von: Marco
Geschrieben am: 13.08.2004 11:29:04

Hallo zusammen,

ich habe folgendes Problem:

Ich habe eine UserForm mit 3 Frames und in diesen Frames befinden sich jeweils 42 TextBoxes. Ich möchte nun gern allen 126 TextBoxes das gleiche Makro zuweisen (Ausführung bei Doppelklick), allerdings möchte ich nicht 126 mal schreiben:

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Application.Run ("Makro1")
End Sub


Gibt es da eine Möglichkeit?

Schon mal vielen Dank für eure Mühe!

Gruß

Marco
  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Patrick
Geschrieben am: 13.08.2004 11:34:24

Du schreibst deinen Makro in eine Sub funktion also

Sub Makro()
dein Makro ...
End Sub

und dann schreibst in
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
call Makro
End Sub



für Makro kannste auch einen anderen namen nehmen was weiß ich Toilettendeckel :)


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Marco
Geschrieben am: 13.08.2004 11:52:37

Hallo Patrick,

das müsste ich doch aber auch wieder allen TextBoxes einzeln zuordnen, oder habe ich dich falsch verstanden?

Gruß

Marco


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Patrick
Geschrieben am: 13.08.2004 11:54:16

Ja da hast du recht aber immer noch besser als 100 mal den Makro schreiben oder keine richtig antwort von ulf zu bekommen!! ;)

Viel Spaß noch

Excel Gut alles GUt


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Beni
Geschrieben am: 13.08.2004 12:06:08

Hallo Marco,
wenn immer das gleiche Makro ausgeführt werden muss, dann klicke doch auf das Frame.
Gruss Beni



Private Sub Frame1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Makro ausführen
End Sub



  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Marco
Geschrieben am: 13.08.2004 12:16:03

Hallo Beni,

das klappt leider nicht, da das dann laufende Makro den Inhalt der TextBox ausliest, aus der es gestartet wurde...

Trotzdem vielen Dank!

Gruß

Marco


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Ulf
Geschrieben am: 13.08.2004 11:36:38

Dazu ist ein Klassenmodul nötig, bei VBA gut ja kein Problem.

Ulf


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: patrick
Geschrieben am: 13.08.2004 11:40:15

Wie klassenmodul wie darf man das denn verstehen wie soll das gehen !!!!!


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Ulf
Geschrieben am: 13.08.2004 11:42:33

VBA gut? Bemüh mal die Recherche.

Ulf


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Patrick
Geschrieben am: 13.08.2004 11:45:25

Ho Ho das haben wir hier aber nen ganz harten am start! Man das war ne frage die ... slos bleib mal locker und warum heißt das denn hier forum und nicht meker ecke ? Damit so "schleue" Leute wie du nicht so schleuen leuten in verzickten situationen wie zb. diese helfen und nicht an mekern !!!!!!


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Ulf
Geschrieben am: 13.08.2004 12:03:42

Was willst du denn nun? Wenn du eine Frage hast, stell sie ins Forum.

Ulf


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Marco
Geschrieben am: 13.08.2004 11:45:41

Hallo Ulf,

mein Skill müsste wohl heißen Excel gut - VBA einigermaßen, aber ohne Makrorekorder.

Ich habe mich aber an die zur Verfügung stehenden Auswahlmöglichkeiten gehalten...

Also, mit Klassenmodulen habe ich bisher noch nichts zu tun gehabt, vielleicht kannst Du mir helfen?

Vielen Dank und Gruß

Marco


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Ulf
Geschrieben am: 13.08.2004 12:06:08

In der Recherche ist da garantiert was zu finden. Falls du dich bis zum Ende meiner
Mittagspause (13:00) gedulden kannst, lade ich dir ein Beispiel hoch.

Ulf


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Marco
Geschrieben am: 13.08.2004 12:13:43

Hallo Ulf,

in der Recherche habe ich nichts gefunden, deshalb die Frage im Forum.

Ein Beispiel wäre klasse - bis dahin guten Hunger!

Danke und Gruß

Marco


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Ulf
Geschrieben am: 13.08.2004 12:57:05

Thomas hat dir weiter unten ein Beispiel, wenn auch ein wenig umständlich, gepostet.
Du musst nur beachten, dass das Klassenmodul wirklich exakt so benannt wird.

Ulf


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Thomas Risi
Geschrieben am: 13.08.2004 13:01:04

Was genau ist denn umständlich?

Gruß
Thomas

Risi Thomas Softwareentwicklung




  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Ulf
Geschrieben am: 13.08.2004 14:00:42

Wollte dir nicht zu nahe treten, ist alles super.

Ulf


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Marco
Geschrieben am: 13.08.2004 13:14:35

Hallo Ulf,

auch dir vielen Dank.

Gruß

Marco


  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Thomas Risi
Geschrieben am: 13.08.2004 12:25:31

Hallo Marco

Füge ein Klassenmodul in Dein Projekt ein, und gib ihm den Namen CTB. Dann diesen Code einfügen ...


      
Option Explicit

Dim WithEvents TB As MSForms.TextBox

Public Function Create(TextBox As MSForms.TextBox) As Boolean
    
Set TB = TextBox
    
If Not TB Is Nothing Then _
        Create = 
True
End Function

Private Sub TB_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    MsgBox TB.Text
End Sub 


     Code eingefügt mit Syntaxhighlighter 3.0


In das Initialze-Event Deiner UserForm dann das hier ...


      
Option Explicit

Dim CTBS() As CTB

Private Sub UserForm_Initialize()
    
    
Dim item As Object
    
    
Dim i As Integer: i = -1
    
    
For Each item In UserForm1.Controls
        
If TypeOf item Is MSForms.TextBox Then
            i = i + 1
            
ReDim Preserve CTBS(i)
            
Set CTBS(i) = New CTB
            CTBS(i).Create item
        
End If
    
Next item
    
End Sub 


     Code eingefügt mit Syntaxhighlighter 3.0


Gruß
Thomas

Risi Thomas Softwareentwicklung




  


Betrifft: AW: Alle TextBoxes in UF sollen ein Makro starten von: Marco
Geschrieben am: 13.08.2004 13:13:11

Hallo Thomas,

vielen Dank, das war genau das was ich gesucht habe!

Ich habe nur den Namen der UserForm ändern müssen und statt der MsgBox mein Makro aufgerufen.

Nochmals vielen Dank und Gruß

Marco


 

Beiträge aus den Excel-Beispielen zum Thema "Alle TextBoxes in UF sollen ein Makro starten"