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

VBA: .Name Funktion zu kurz

VBA: .Name Funktion zu kurz
23.09.2016 10:33:26
simpie
Userbild
Guten Tag,
ich erstelle mit meinem Code mehrere Schaltflächen, die mit einer msgBox ausgestattet werden. Die Box soll mir einige Informationen anzeigen, abhängig von der Schaltfläche die erzeugt wurde. Das heißt jede Box ist individuell. Das funktioniert auch alles, leider ist die Funktion .Name die in meine msgBox schreibt zu kurz für meine Informationen, die ich mitteilen möchte.
Ich habe mir eventuell überlegt Sub Dein_Makro in die For Schleife einzufügen und dann mit Funktionen der Msgbox zu arbeiten. Das habe ich nicht hinbekommen.
Ich hoffe ihr könnt mein Problem nachvollziehen und mir weiter helfen. Vielen Dank !

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: .Name Funktion zu kurz
23.09.2016 11:12:41
ChrisL
Hi
Deinen Code abzuschreiben ist mir echt zu blöd, darum nur ein möglicher Lösungsansatz (sofern ich die Frage richtig verstanden habe):
.Name = p
(Schaltflächenname = Nummer)
Sub Dein_Makro()
Select Case Application.Caller
Case 1
MsgBox "Hallo Welt"
Case 2
MsgBox "Hello World"
End Select
End Sub

U.U. würde es sich auch anbieten die Übersetzung von Nr. in Text in einer Hilfstabelle zu definieren.
cu
Chris
AW: VBA: .Name Funktion zu kurz
23.09.2016 11:17:14
simpie
Sorry, dumm von mir ein Bild hoch zu laden. Vielen Dank für deine Antwort. mein Problem ist ich habe später 900 Zeilen und je nachdem welche Zeile befüllt wird erscheint eine dazugehörige Schaltfläche + msgbox. D.h. ich kann das mit Case nicht so umsetzen
Es funktioniert alles super nur der Platz in .Name ist mir zu klein :D .
Sub Messagebox()
ActiveSheet.Buttons.Delete
t = 0
A = 60
p = 1
o = 1
For Each i In Worksheets("Testblatt").Range("E1:E5")
If IsError(i.Value) = True Then GoTo restart
t = A + 60
A = t
Set G = ActiveSheet.Buttons.Add(500, t, 50, 50)
With G
.OnAction = "Dein_Makro"
.Name = Cells(p, "C")
.Caption = Cells(p, "C")
End With
restart:
p = o + 1
o = p
Next i
Application.ScreenUpdating = True
End Sub

Sub Dein_Makro()
MsgBox Application.Caller
End Sub

Anzeige
AW: VBA: .Name Funktion zu kurz
23.09.2016 11:28:22
ChrisL
Hi
Vielleicht so...
Sub Messagebox()
With Worksheets("Testblatt")
.Buttons.Delete
t = 0
A = 60
p = 1
o = 1
For Each i In .Range("E1:E5")
If Not IsError(i.Value) = True Then
t = A + 60
A = t
Set G = .Buttons.Add(500, t, 50, 50)
With G
.OnAction = "Dein_Makro"
.Name = p
.Caption = Cells(p, "C")
End With
End If
p = o + 1
o = p
Next i
Application.ScreenUpdating = True
End With
End Sub
Sub Dein_Makro()
MsgBox Worksheets("Testblatt").Cells(Application.Caller, 3)
End Sub

Mit der Deklaration von Variablen solltest du dich gelegentlich mal beschäftigen...
Dim t As Long
Dim i As Range
usw.
cu
Chris
Anzeige
AW: VBA: .Name Funktion zu kurz
23.09.2016 11:33:37
simpie
Hallo Chris
Vielen Dank ! jetzt funktioniert es super :))
AW: VBA: .Name Funktion zu kurz
23.09.2016 11:36:08
simpie
Ja ich weiß, bin noch nicht so fit in der Thematik

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige