Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

UserForm in makro einbinden

Betrifft: UserForm in makro einbinden von: Gregor
Geschrieben am: 20.08.2004 09:39:48

Hallo zusammen

Ich habe eine Tabelle mit verschiedenen Spalten, ua. Min und Max. Beim Ablauf eines Markors soll der Benutzer den Wert der Spalte Min oder Max auswählen können. Dazu habe ich eine UserForm mit zwei Button Min und Max erstellt.
Mit "UserForm1.show" wird diese angezeigt. Der Benutzer wählt jetzt Min oder Max.

Die Auswahl Min soll die Spalte 21 definieren, die Auswahl Max die Spalte 22. Die gewählte Auswahl will ich als Konstante "MinMax" im Makro weiterverwenden.

zB:
Länge = Worksheets("Tabelle1").Cells(5, MinMax).Value

usw.

Wie muss ich diese Auswahl via UserForm einbinden?

Gruss und vielen Dank
Gregor

  


Betrifft: AW: UserForm in makro einbinden von: Michael
Geschrieben am: 20.08.2004 10:35:25

Hallo Gregor

Ich bin mir jetzt ned sicher ob ich das richtig verstanden hab aber cih glaub so gehts:

klick doppelt auf den jeweiligen button und dort kannst dan programmieren was passieren soll wenn er z.b. min gedrückt hat du kannst auch noch am anfang schrieben userform1.hide damit man die userfor nicht mehr sieht ;)

mfg Michael


  


Betrifft: AW: UserForm in makro einbinden von: Gregor
Geschrieben am: 20.08.2004 11:37:58

Michal

Vielen Dank, ich komme aber nicht ganz weiter. Habe nun folgende Makros:

Unter Module
------------
Sub Shapes_Längen_markieren()
Dim intLastRow As Variant
Dim intcounter As Variant
Dim n As Variant
Dim Länge As Integer
Dim MinMax As String

UserForm1.Show (--> Benutzer trifft Auswahl mit Button, Makros siehe unten)

Worksheets(1).Activate
intLastRow = Cells(Rows.Count, 2).End(xlUp).Row
For intcounter = 3 To intLastRow
n = Worksheets(1).Cells(intcounter, 2).Value
Länge = Worksheets(1).Cells(intcounter, MinMax).Value
Worksheets(2).Select
ActiveSheet.Shapes(n).Select
Select Case Länge
Case Is >= 0
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 57 'Meeresgrün
Case Is >= 50
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 3 'Grelles Grün
Case Is >= 100
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 54 'Blaugrau
Case Else
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5 'Gelb
End Select
Next intcounter
SendKeys ("{ESC}")
usw.

Unter Formulare
---------------
Private Sub CommandButton1_Click()
UserForm1.Hide
MinMax = 21
End Sub


Private Sub CommandButton2_Click()
UserForm.Hide
MinMax = 22
End Sub


Problem: Die Variable MinMax enthält nach diesem Vorgehen den Wert "", also Leer, statt 21 oder 22.

Was mache ich falsch??

Danke und Gruss
Gregor


  


Betrifft: AW: UserForm in makro einbinden von: Michael
Geschrieben am: 20.08.2004 12:14:04

Den Teil im Modul unter dem Userform1.show

kopier in die zwei button ereignissen also das dan wei folgt aussieht:

Modul:

Sub Shapes_Längen_markieren()
UserForm1.Show (--> Benutzer trifft Auswahl mit Button, Makros siehe unten)
End Sub

Formulare:

Private Sub CommandButton1_Click()
UserForm1.Hide
MinMax = 21
Worksheets(1).Activate
intLastRow = Cells(Rows.Count, 2).End(xlUp).Row
For intcounter = 3 To intLastRow
n = Worksheets(1).Cells(intcounter, 2).Value
Länge = Worksheets(1).Cells(intcounter, MinMax).Value
Worksheets(2).Select
ActiveSheet.Shapes(n).Select
Select Case Länge
Case Is >= 0
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 57 'Meeresgrün
Case Is >= 50
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 3 'Grelles Grün
Case Is >= 100
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 54 'Blaugrau
Case Else
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5 'Gelb
End Select
Next intcounter
SendKeys ("{ESC}")
usw.
End Sub


Private Sub CommandButton2_Click()
UserForm.Hide
MinMax = 22
Worksheets(1).Activate
intLastRow = Cells(Rows.Count, 2).End(xlUp).Row
For intcounter = 3 To intLastRow
n = Worksheets(1).Cells(intcounter, 2).Value
Länge = Worksheets(1).Cells(intcounter, MinMax).Value
Worksheets(2).Select
ActiveSheet.Shapes(n).Select
Select Case Länge
Case Is >= 0
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 57 'Meeresgrün
Case Is >= 50
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 3 'Grelles Grün
Case Is >= 100
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 54 'Blaugrau
Case Else
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 5 'Gelb
End Select
Next intcounter
SendKeys ("{ESC}")
usw.
End Sub


Dann müssts eigentlich funktionieren

mfg Michael


  


Betrifft: AW: UserForm in makro einbinden von: Gregor
Geschrieben am: 20.08.2004 14:29:06

Michael

Vielen Dank, so funktioniert es. Ich habe wirklich gedacht, man müsse wieder in die Prozedur im Modul zurückkehren.

Kannst du mir noch sagen, wie man defaultmässig immer den ersten Button aktiviert, ich habe das unter Hilfe nicht gefunden? Und zwar bei Msg Box wie bei UserForm.

Danke
Gregor


  


Betrifft: AW: UserForm in makro einbinden von: Michael
Geschrieben am: 23.08.2004 10:29:41

Bitte

Also bei der form manchst du das folgender maßen:
1)Form öffnen
2)Rechtsklicken und "Aktivierreihenfolge" auswählen
3)dort den button der standartmäßig markiert sien soll an erste reihe stellen ;)

bei ein msgbox geht das glaub ich ned aber du kannst ja mal suchen under msgbox aktivierreihenfolge

mfg Michael


 

Beiträge aus den Excel-Beispielen zum Thema "UserForm in makro einbinden"