Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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 Hilfe

VBA Hilfe
Sven
Hi Leute
ich hab hier mal eine Test DAtei von meiner Mappe. Soweit klappt das ganz gut. Hätte da aber noch einige fragen.
1. Wie bekommt man das hin das wenn ich mit der Rechten Maustste auf die Zelle klicke wo der Namen steht
das sich die UF öffnet in der UF der Namen des Tippers steht und ich die Tipps eintragen kann. So das ich
nur eine UF bruche für die ganzen Tabellen.
2. Wenn man meinen Code gebrauchen kann könnte man ihn kleiner machen?
3. Wie kann ich die UF so einstellen das ich keine doppelten Zahlen eingebe?
Ich hoffe ihr könnt mir helfen.
Gruß Sven

Die Datei https://www.herber.de/bbs/user/76811.xls wurde aus Datenschutzgründen gelöscht


AW: VBA Hilfe
30.09.2011 04:13:25
hary
Hallo Sven
hier mal mit Doppelklick auf die Namenszelle. Name des Spielers kommt in den Titel des UserForm.
https://www.herber.de/bbs/user/76812.xls
Eintragencode gekuerzt als Schleife. Fuer das Befuellen braeuchte es keinen Code, du koenntest irgendwo ein liste(acht zellen) von 1 bis 8 machen und in der Eigenschaft(Rowsource) diesen Bereich nehmen.
Fall3 noch nicht geklaert, da muede. ;-)
gruss hary
AW: VBA Hilfe
30.09.2011 04:14:16
hary
Hallo Sven
hier mal mit Doppelklick auf die Namenszelle. Name des Spielers kommt in den Titel des UserForm.
https://www.herber.de/bbs/user/76812.xls
Eintragencode gekuerzt als Schleife. Fuer das Befuellen braeuchte es keinen Code, du koenntest irgendwo ein liste(acht zellen) von 1 bis 8 machen und in der Eigenschaft(Rowsource) diesen Bereich nehmen.
Fall3 noch nicht geklaert, da muede. ;-)
gruss hary
Anzeige
AW: VBA Hilfe
30.09.2011 06:05:22
Sven
Hi Harry
danke für deine hilfe. klappt bis jetzt super gut. Aber wie bekomme ich das noch hin das wenn ich die UF in einer andern Tabelle öffne das ich dort die Tipps eintragen kann? denn wenn ich jetzt die UF in der anderen Tabelle aufrufe stehen die Daten von der ersten Tabelle drinn.
Gruß Sven
AW: VBA Hilfe -- was vergessen !!
30.09.2011 13:03:58
Heiko
Hi Harry
hab mal etwas rumgebastelt. Das mit dem Doppelklick habe ich geändert auf rechte Maustaste. Das klappt auch soweit ganz gut blos wenn ich die UF schließe erscheint das menü der recten Maustaste. Wie bekomm ich das noch weg.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target.Row Mod 2 = 0 Then UserForm2.Show
End Sub
Dann noch was wenn ich die UF für einen bestimmten Spieler aufrufe werden in den ComboBoxen die Daten von dem Ersten Spieler angezeigt. Und wie kann man das ändern?

Private Sub UserForm_Initialize()
UserForm2.Caption = "Tippliste " & ActiveCell.Value
With ActiveSheet
Label1 = .Cells(2, 71)     'Team 1
TextBox1 = .Cells(2, 72)
TextBox2 = .Cells(3, 72)
ComboBox1 = .Cells(8, 3)
ComboBox2 = .Cells(8, 4)
Label2 = .Cells(4, 71)     'Team 2
TextBox3 = .Cells(4, 72)
TextBox4 = .Cells(5, 72)
ComboBox3 = .Cells(8, 5)
ComboBox4 = .Cells(8, 6)
End With
End Sub
Gruß Sven
Anzeige
AW: VBA Hilfe -- was vergessen !!
30.09.2011 13:12:33
Sven
Hi Harry
hab mal etwas rumgebastelt. Das mit dem Doppelklick habe ich geändert auf rechte Maustaste. Das klappt auch soweit ganz gut blos wenn ich die UF schließe erscheint das menü der recten Maustaste. Wie bekomm ich das noch weg.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target.Row Mod 2 = 0 Then UserForm2.Show
End Sub
Dann noch was wenn ich die UF für einen bestimmten Spieler aufrufe werden in den ComboBoxen die Daten von dem Ersten Spieler angezeigt. Und wie kann man das ändern?

Private Sub UserForm_Initialize()
UserForm2.Caption = "Tippliste " & ActiveCell.Value
With ActiveSheet
Label1 = .Cells(2, 71)     'Team 1
TextBox1 = .Cells(2, 72)
TextBox2 = .Cells(3, 72)
ComboBox1 = .Cells(8, 3)
ComboBox2 = .Cells(8, 4)
Label2 = .Cells(4, 71)     'Team 2
TextBox3 = .Cells(4, 72)
TextBox4 = .Cells(5, 72)
ComboBox3 = .Cells(8, 5)
ComboBox4 = .Cells(8, 6)
End With
End Sub
Gruß Sven
Sorrry wegen dem anderen Namen der war noch von meinem vorgänger gespeichrt.
Anzeige
AW: VBA Hilfe -- was vergessen !!
30.09.2011 13:32:27
Rudi
Hallo,
1.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And Target.Row Mod 2 = 0 Then UserForm2.Show
Cancel=True
End Sub

2.
Ändere von _Initialize in _Activate oder entlade die UF.
Also:
UF.Hide
UnLoad UF
Gruß
Rudi
AW: VBA Hilfe -- was vergessen !!
30.09.2011 23:49:25
sven
Hi
das mit der UF entleeren klappt nicht da bekomme ich eine fehlermeldung und mit dem Activate leeren sich die ComboBoxen auch nicht wenn ich auf einen andern Tipper gehe. Was mach ich falsch?
sven
fehlermeldung
30.09.2011 23:58:38
Uduuh
Hallo,
welche?
Lad mal deinen aktuellen Stand hoch.
Gruß aus’m Pott
Udo

Anzeige
AW: fehlermeldung
01.10.2011 00:13:24
sven
wenn ich
UF.Hide
Unload UF einfüge kommt: Laufzeitfehler 424 objekt erforderlich
AW: fehlermeldung
01.10.2011 02:10:28
Sven
Hi Leute
ich steh jetzt voll auf dem schlauch.Also was noch unbedinhgt fehlt in der Mappe das ist wie schon gesagt das wenn ich mit der rechten maustaste auf den Namen klicke öffnet sich ja die UF und ich kann die Tipps eintragen. Und wenn ich die UF wieder öffne sollen auch die Tipps vom jeweiligen Tipper angezeigt werden. Das Passiert aber nicht.Wenn ich auf einen andern Tipper gehe bekomme ich immer die Ersten Tipps die ich eingetragen habe angezeigt Ich weis nicht mehr weiter.
Ist es auch möglich das wenn ich Zb. Platz 1, 2, 3 verteile und ich die 2 nochmal eingebe das sofort eine meldung kommt? das wäre auch nicht schlecht.
Gruß Sven
Hier noch einmal die Datei.
https://www.herber.de/bbs/user/76827.xls
Anzeige
.Cells(8, 4) - Du mußt die 8 anpassen !
01.10.2011 07:45:15
Matthias
Hallo
Du mußt Excel aber auch mitteilen in welcher Zeile der entsprechende Spieler steht!



Private Sub UserForm_Activate()
Dim MyRow&  ' & = as Long
MyRow = ActiveCell.Row
'Diese Zeile kannst Du ja wieder löschen!
MsgBox "wir sind in Zeile: " & MyRow, vbInformation, "Info für " & Application.UserName & " ;o)" _
UserForm2.Caption = "Tippliste " & ActiveCell.Value
With ActiveSheet
Label1 = .Cells(2, 71)     'Team 1
TextBox1 = .Cells(2, 72)
TextBox2 = .Cells(3, 72)
ComboBox1 = .Cells(MyRow, 3)
ComboBox2 = .Cells(MyRow, 4)
Label2 = .Cells(4, 71)     'Team 2
TextBox3 = .Cells(4, 72)
TextBox4 = .Cells(5, 72)
ComboBox3 = .Cells(MyRow, 5)
ComboBox4 = .Cells(MyRow, 6)
Label3 = .Cells(6, 71)     'Team 3
TextBox5 = .Cells(6, 72)
TextBox6 = .Cells(7, 72)
ComboBox5 = .Cells(MyRow, 7)
ComboBox6 = .Cells(MyRow, 8)
Label4 = .Cells(MyRow, 71) 'Team 4
TextBox7 = .Cells(MyRow, 72)
TextBox8 = .Cells(9, 72)
ComboBox7 = .Cells(MyRow, 9)
ComboBox8 = .Cells(MyRow, 10)
Label5 = .Cells(10, 71)    'Team 5
TextBox9 = .Cells(10, 72)
TextBox10 = .Cells(11, 72)
ComboBox9 = .Cells(MyRow, 11)
ComboBox10 = .Cells(MyRow, 12)
Label6 = .Cells(12, 71)    'Team 6
TextBox11 = .Cells(12, 72)
TextBox12 = .Cells(13, 72)
ComboBox11 = .Cells(MyRow, 13)
ComboBox12 = .Cells(MyRow, 14)
Label7 = .Cells(14, 71)    'Team 7
TextBox13 = .Cells(14, 72)
TextBox14 = .Cells(15, 72)
ComboBox13 = .Cells(MyRow, 15)
ComboBox14 = .Cells(MyRow, 16)
Label8 = .Cells(16, 71)     'Team 8
TextBox15 = .Cells(16, 72)
TextBox16 = .Cells(17, 72)
ComboBox15 = .Cells(MyRow, 17)
ComboBox16 = .Cells(MyRow, 18)
Label9 = .Cells(18, 71)     'Team 9
TextBox17 = .Cells(18, 72)
TextBox18 = .Cells(19, 72)
ComboBox7 = .Cells(MyRow, 19)
ComboBox18 = .Cells(MyRow, 20)
Label10 = .Cells(20, 71)     'Team 10
TextBox19 = .Cells(20, 72)
TextBox20 = .Cells(21, 72)
ComboBox19 = .Cells(MyRow, 21)
ComboBox20 = .Cells(MyRow, 22)
Label11 = .Cells(22, 71)     'Team 11
TextBox21 = .Cells(22, 72)
TextBox22 = .Cells(23, 72)
ComboBox21 = .Cells(MyRow, 23)
ComboBox22 = .Cells(MyRow, 24)
Label12 = .Cells(24, 71)     'Team 12
TextBox23 = .Cells(24, 72)
TextBox24 = .Cells(25, 72)
ComboBox23 = .Cells(MyRow, 25)
ComboBox24 = .Cells(MyRow, 26)
End With
End Sub
Gruß Matthias
Anzeige
AW: Userform Formel1-Tipp angepasst
01.10.2011 10:15:56
fcs
Hallo Sven,
hier deine Datei mit angepasstem Userform.
Das Userform2 ist jetzt so eingerichtet, dass in der Initialisierungsprozedur die Team/Fahrer_Daten ins Userform eingelesen werden und in der Activate-Prozedur die Tipp/Spielerdaten.
Die Daten zu den Labels/Textboxen und Comboboxen werden jetzt in For-Next-Schleifen eingelesen.
Mit Speichern wird das UF ausgeblendet, dh. bei der nächsten UF-Anzeige müssen nicht alle Formblattdaten neu eingelesen werden, sondern nur die in der Activate-Prozedur festgelegten.
Abbrechen blendet das UF aus.
Schliessen löscht die UF-Daten im Arbeitsspeicher, erneute Anzeige des UF dauert dann etwas länger.
https://www.herber.de/bbs/user/76828.xls
Gruß
Franz
Anzeige
AW: Userform Formel1-Tipp angepasst
01.10.2011 13:34:17
Sven
Hi Leute
vielen vielen dank für eure hilfe klappt super gut. Aber 2 sachen hätte ich noch wenn das möglich wäre? Die eine Sache ist ja die mit dem doppelten eintrag in den ComboBoxen das da sofort eine Meldung kommt.
Das ander ist wie ich den code noch so umstelle das wenn ich mit der rechten Maustaste auf Ergebnisse klicke das sich die UF öffnet und oben in der UF der Der Ort und Rennstrecke stehen soll.
Gruß Sven
AW: Userform Formel1-Tipp angepasst
01.10.2011 14:29:49
fcs
Hallo Sven,
Hier die Anpassungen für das Userform1 ( Rennstrecke anzeigen, Combobox-Auswahlprüfen)
https://www.herber.de/bbs/user/76830.txt
Unter dem Tabellenblatt "1.GP" den Code wie folgt anpassen:

'Code unter Blatt "1.GP"
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then
If Target.Row > 7 And Target.Row Mod 2 = 0 Then
UserForm2.Show
Cancel = True
ElseIf Target.Row = 7 Then
UserForm1.Show
Cancel = True
End If
End If
End Sub

Gruß
Franz
Anzeige
AW: Userform Formel1-Tipp angepasst
01.10.2011 14:56:23
Sven
Hi
vielen vielen dank für eure hilfe. Genau so sollte es sein
Gruß Sven
Hinweis !
01.10.2011 15:17:28
Matthias
Hallo
Du solltest Folgendes anpassen.
Klickt man z.B. einfach mal auf "Sortieren" wird das Blatt ja geschützt!
Gibt man nun erst später die Spielertipps ein und klickt auf "Speichern", entsteht ein VBA-Fehler
Tipp:
Ich würde also auch vor dem Speichern den Blattschutz entfernen und dannach wieder setzen.
Gruß Matthias
AW: Noch eine Sache
01.10.2011 21:49:05
Sven
Hi Leute
ich hätte da doch noch was. Ich will in die UF wo ich die Tipps eintrage noch einen Button zum löschen einfügen. Den Code zum löschen hab ich mit dem Recorder gemacht. Aber wie ändere ich ihn so das wenn ich die Tipps von Spieler 2 und später die von Spieler 1 löschen will.
Sven
Anzeige
AW: Noch eine Sache
01.10.2011 22:48:27
Sven
Hi Leute
ich hätte da doch noch was. Ich will in die UF wo ich die Tipps eintrage noch einen Button zum löschen einfügen. Den Code zum löschen hab ich mit dem Recorder gemacht. Aber wie ändere ich ihn so das wenn ich die Tipps von Spieler 2 und später die von Spieler 1 löschen will. HAbe jetzt gerade noch einen Fehler festgastellt. Wenn ich im Ergebniss ein A setze für Ausfall bekomme ich die fehlermeldung "Index Auserhalb des gültigen bereiches"
Sven
AW: Noch eine Sache
02.10.2011 13:08:57
fcs
Hallo Sven,
Die Fehlermeldung im Userform1 kommt durch die Art der Prüfung auf doppelte Einträge in Comboboxen.
Durch eine zusätzliche Prüfung auf Eintrag "A" sollte der Fehler verschwinden.

'Prozedur im Userform1
Private Sub cbxCheck()
If boolActivate = True Then Exit Sub
'Prüfen, ob gewählter Tip schon vorhanden
Dim Tips(1 To 24) As Boolean '24 = Anzahl der verschiedenen Plazierungen
For iindex = 1 To 24 '24 = Anzahl der Comboboxen
With Me.Controls("Combobox" & iindex)
If .ListIndex  -1 And .Value  "A" Then 'A = Ausfall/Nicht im Ziel angekommen
If Tips(Val(.Value)) = True Then
MsgBox "Platzierung ist bereits getippt"
Else
Tips(Val(.Value)) = True
End If
End If
End With
Next
End Sub

Löschen von Tipps eines Spielers:
Willst du
a) nur die Einträge in der Tabelle löschen
b)nur die Comboboxen im Userform auf "leer" setzen
c) a) und b)
Such dir aus dem folgenden Code für einen Button das passende aus.

Private Sub CommandButtonXYZ_Click()
'Löschen Spieler-Tipps
Dim a As Long
Dim i As Long
'Tipps des Spielers in Tabelle löschen
a = ActiveCell.Row
With ActiveSheet
.Range(.Cells(a, 1 + 2), .Cells(a, 24 + 2)).ClearContents '24 = Anzahl der Fahrer
End With
'Comboboxen im Userform zurücksetzen
For i = 1 To 24
Me.Controls("ComboBox" & i).ListIndex = -1
Next
End Sub

Gruß
Franz
AW: Noch eine Sache
06.10.2011 00:01:36
Sven
Hi vielen vielen dank für deine hilfe.
ich hab aber da noch etwas dazu gefügt. Und zwar hab ich eine UF mit Multiseiten wo die Strecken drauf sind. Wenn ich sie aufrufe klappt auch alles. Aber wie ändere ich es das wenn ich Zb. auf Malaysia bin und will mir die Strecke ansehen das auch dann genau die Multiseite kommt mit der Malaysia Strecke.
Gruß Sven
https://www.herber.de/bbs/user/76871.xls
Wegen größe keine Bilder in der UF.
AW: Noch eine Sache
06.10.2011 14:15:22
fcs
Hallo Sven,
da muss du die folgende Prozedur im Userform "Strecken" ergänzen.
Verglichen wird die Beschriftung der Page-Tabs (Caption) mit dem Text in Zelle A2 und bei Übereinstimmung das entsprechende Tab angezeigt.
Gruß
Franz

Private Sub UserForm_Initialize()
Dim iPage As Integer
Dim sStrecke As String
On Error GoTo Fehler
sStrecke = ActiveSheet.Range("A2")
For iPage = 0 To Me.MultiPage1.Pages.Count - 1
If Me.MultiPage1.Pages(iPage).Caption = sStrecke Then
Me.MultiPage1.Value = iPage
Exit For
End If
Next
Fehler:
End Sub

AW: VBA Hilfe
30.09.2011 13:04:50
Rudi
Hallo,
ersetze
Worksheets("1.GP")
durch
ActiveSheet
Gruß
Rudi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige