HERBERS Excel-Forum - das Archiv

Thema: Schaltfläche Zahl ermitteln

Schaltfläche Zahl ermitteln
roneburger

Hallo,
ich habe folgendes Modul:

Sub Zahl()
Application.ScreenUpdating = False
Dim Zahl(6)
Range("A3:A52").Select
With Selection
.Borders(xlLeft).LineStyle = xlNone
.Borders(xlRight).LineStyle = xlNone
.Borders(xlTop).LineStyle = xlNone
.Borders(xlBottom).LineStyle = xlNone
.BorderAround LineStyle:=xlNone
.Interior.ColorIndex = xlNone
End With
Range("A1").Select
For zähler% = 1 To 1
Randomize Timer
nochmal:
Zahl(zähler%) = Int((50) * Rnd + 1)
Cells.Find(What:=Zahl(zähler%)).Activate
Selection.BorderAround Weight:=xlThin, ColorIndex:=xlAutomatic
If Selection.Interior.ColorIndex = 35 Then GoTo nochmal
With Selection.Interior
.ColorIndex = 17
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Next zähler%
End Sub

Ich möchte dieses Modul jetzt mi einer Schaltfläche auf dem Tabellenblatt 1
starten können.
Die Zahlen 1 bis 50 liegen aber auf dem Tabellenblatt 2 in Zelle A3 bis A52.
Die zufällig ermittelte Zahl möchte ich dann in einer Textbox auf der ersten Tabelle angezeigt bekommen. Wie ist das möglich? Leider habe ich kaum Ahnung
Gruss
roneburger
AW: Schaltfläche Zahl ermitteln
roneburger

Hallo,
kann mir bitte jemand helfen. ich komme damit nicht weiter.
Gruss
roneburger
AW: Schaltfläche Zahl ermitteln
Volker

Hallo roneburger,
poste doch demnächst bitte mit realname, ist angenehmer zu kommunizieren.
Zu Deinem Problem:
Ich kapier zwar nicht ganz, was Du vorhast, aber so gehts:
Sub Zahl()
Application.ScreenUpdating = False
Dim Zahl(50)
Dim finde As Range
'Range("A3:A52").Select
With Sheets(2).Range("A3:A52")
.Borders(xlLeft).LineStyle = xlNone
.Borders(xlRight).LineStyle = xlNone
.Borders(xlTop).LineStyle = xlNone
.Borders(xlBottom).LineStyle = xlNone
.BorderAround LineStyle:=xlNone
.Interior.ColorIndex = xlNone
End With
'Range("A1").Select
For zähler% = 1 To 50
Randomize Timer
nochmal:
Zahl(zähler%) = Int((50) * Rnd + 1)
Set finde = Sheets(2).Cells.Find(What:=Zahl(zähler%))
finde.BorderAround Weight:=xlThin, ColorIndex:=xlAutomatic
If finde.Interior.ColorIndex = 35 Then GoTo nochmal
With finde.Interior
.ColorIndex = 17
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
MsgBox (Zahl(zähler%))
Next zähler%
End Sub
Für den Button mußt Du Menüleiste "Steuerlemente" aktivieren und eine Befehlsschaltfläche auswählen.
Rechte Maus auf den Button und "Code anzeigen" lassen.
Im Code den Namen deines Makros eintragen:

Private Sub CommandButton1_Click()
Zahl
End Sub

Noch was. Du willst doch 50 Zahlen ziehen, hast aber mit zahl(6) ein Feld mit 6 Zahlen angelegt.
Und
For zähler=1 to 1
läuft auch nur genau einmal und nicht 50-mal.
Ich hab das im Code geändert. Hoffentlich in Deinem Sinne
Gruß
Volker
Schaltfläche Zahl ermitteln
roneburger

Hallo,
ich habe folgendes Modul:

Sub Zahl()
Application.ScreenUpdating = False
Dim Zahl(6)
Range("A3:A52").Select
With Selection
.Borders(xlLeft).LineStyle = xlNone
.Borders(xlRight).LineStyle = xlNone
.Borders(xlTop).LineStyle = xlNone
.Borders(xlBottom).LineStyle = xlNone
.BorderAround LineStyle:=xlNone
.Interior.ColorIndex = xlNone
End With
Range("A1").Select
For zähler% = 1 To 1
Randomize Timer
nochmal:
Zahl(zähler%) = Int((50) * Rnd + 1)
Cells.Find(What:=Zahl(zähler%)).Activate
Selection.BorderAround Weight:=xlThin, ColorIndex:=xlAutomatic
If Selection.Interior.ColorIndex = 35 Then GoTo nochmal
With Selection.Interior
.ColorIndex = 17
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Next zähler%
End Sub

Ich möchte dieses Modul jetzt mi einer Schaltfläche auf dem Tabellenblatt 1
starten können.
Die Zahlen 1 bis 50 liegen aber auf dem Tabellenblatt 2 in Zelle A3 bis A52.
Die zufällig ermittelte Zahl möchte ich dann in einer Textbox auf der ersten Tabelle angezeigt bekommen. Wie ist das möglich? Leider habe ich kaum Ahnung
Gruss
roneburger
AW: Schaltfläche Zahl ermitteln
roneburger

Hallo,
kann mir bitte jemand helfen. ich komme damit nicht weiter.
Gruss
roneburger
AW: Schaltfläche Zahl ermitteln
Volker

Hallo roneburger,
poste doch demnächst bitte mit realname, ist angenehmer zu kommunizieren.
Zu Deinem Problem:
Ich kapier zwar nicht ganz, was Du vorhast, aber so gehts:
Sub Zahl()
Application.ScreenUpdating = False
Dim Zahl(50)
Dim finde As Range
'Range("A3:A52").Select
With Sheets(2).Range("A3:A52")
.Borders(xlLeft).LineStyle = xlNone
.Borders(xlRight).LineStyle = xlNone
.Borders(xlTop).LineStyle = xlNone
.Borders(xlBottom).LineStyle = xlNone
.BorderAround LineStyle:=xlNone
.Interior.ColorIndex = xlNone
End With
'Range("A1").Select
For zähler% = 1 To 50
Randomize Timer
nochmal:
Zahl(zähler%) = Int((50) * Rnd + 1)
Set finde = Sheets(2).Cells.Find(What:=Zahl(zähler%))
finde.BorderAround Weight:=xlThin, ColorIndex:=xlAutomatic
If finde.Interior.ColorIndex = 35 Then GoTo nochmal
With finde.Interior
.ColorIndex = 17
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
MsgBox (Zahl(zähler%))
Next zähler%
End Sub
Für den Button mußt Du Menüleiste "Steuerlemente" aktivieren und eine Befehlsschaltfläche auswählen.
Rechte Maus auf den Button und "Code anzeigen" lassen.
Im Code den Namen deines Makros eintragen:

Private Sub CommandButton1_Click()
Zahl
End Sub

Noch was. Du willst doch 50 Zahlen ziehen, hast aber mit zahl(6) ein Feld mit 6 Zahlen angelegt.
Und
For zähler=1 to 1
läuft auch nur genau einmal und nicht 50-mal.
Ich hab das im Code geändert. Hoffentlich in Deinem Sinne
Gruß
Volker
Dialog-Beispiele
Bewerten Sie hier bitte das Excel-Portal