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

Suche VBA Code

Suche VBA Code
08.10.2016 15:25:49
Spenski
Guten Tag
Erstmal eine kurze Erklärung was ich vorhabe.
Ich möchte ein Turnierprogramm schreiben. Der Modus lautet "Dänisches System"
Im Dänischen System gibt es eine Tabelle (in meiner max. 70 Spieler).
Im Dänischen System spielt nach jeder Spielrunde immer der 1-2 ; 3-4 ; 5-6 usw.
Die erste Spielrunde wird ausgelost. Das habe ich auch soweit fertig.
In meiner Datei Habe ich auch die Tabelle fertig. das Funktionier auch alles so wie es soll.
Datei enthält ein kleines Makro zum sortieren der Tabelle
https://www.herber.de/bbs/user/108671.xlsm
Was möchte ich:
Ich möchte jetzt per Button die 2te Runde (Tabellenblatt Spiel 2) mit den Spielern füllen.
In Spalte A und B stehen die Ränge, die gegeneinander spielen sollen. In Spalte D und F sollen dann per klick die Namen geschrieben werden.
Ich habe es ohne VBA versucht, leider komme ich da in einen Zirkelbezug.
kann mir da jemand helfen?
Wenn etwas unklar ist bitte fragen
Dank an alle fürs lesen
Christian

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche VBA Code
08.10.2016 18:24:59
Crazy
Hallo Christian
das habe ich so getestet
zu starten jeweils von dem Blatt der Spielrunde (außer Spiel 1 denn da hast du ja die Verweise drin)
Sub SpielerEintragen()
Dim rngBereich As Range
Dim c As Range
Dim i As Long
With Sheets("Tabelle")
Set rngBereich = .Range("B4:B73")
For i = 3 To 37
Set c = rngBereich.Find(Cells(i, 1), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(i, 4).Value = .Cells(c.Row, 3).Value
End If
Next
For i = 3 To 37
Set c = rngBereich.Find(Cells(i, 2), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
Cells(i, 6).Value = .Cells(c.Row, 3).Value
End If
Next
End With
End Sub
MfG Tom
Anzeige
AW: Suche VBA Code
08.10.2016 19:19:02
Spenski
Hallo Tom
Der Code funktioniert super...Vielen lieben dank dafür.
Wäre es auch möglich den Code für Spiel 2 aus Spiel 1 zu startet?
Wenn Spiel 1 abgeschlossen ist soll Spiel 2 generiert werden und Spiel 1,3,4,5,6 sollen nicht sichtbar sein.
Sub Spiel2()
Worksheets("Spiel 1").Visible = False
Worksheets("Spiel 2").Visible = True
Worksheets("Spiel 3").Visible = False
Worksheets("Spiel 4").Visible = False
Worksheets("Spiel 5").Visible = False
Worksheets("Spiel 6").Visible = False
End Sub
wenn nicht ist es auch nicht schlimm, bin so schon mehr als dankbar
schönen gruß
christian
Anzeige
AW: Suche VBA Code
08.10.2016 20:11:28
Crazy
Hallo Christian
unter der Voraussetzung, dass es bei 6 Spielrunden bleibt
und du das Blatt "Endrunde" auch noch ins gleiche Format
wie die Spielrunden bringst
könnte es so aussehen
zu starten jeweils aus der letzten Spielrunde
Sub SpielerEintragen()
Dim rngBereich As Range
Dim c As Range
Dim i As Long
Dim BlattIndex As Long
Dim strBlatt As String
BlattIndex = Right(ActiveSheet.Name, 1) + 1
If ActiveSheet.Name = "Spiel 6" Then
strBlatt = "Endrunde"
Else
strBlatt = "Spiel " & BlattIndex
End If
With Sheets("Tabelle")
Set rngBereich = .Range("B4:B73")
For i = 3 To 37
Set c = rngBereich.Find(Sheets(strBlatt).Cells(i, 1), LookIn:=xlValues, lookat:=xlWhole) _
If Not c Is Nothing Then
Sheets(strBlatt).Cells(i, 4).Value = .Cells(c.Row, 3).Value
End If
Next
For i = 3 To 37
Set c = rngBereich.Find(Sheets(strBlatt).Cells(i, 2), LookIn:=xlValues, lookat:=xlWhole) _
If Not c Is Nothing Then
Sheets(strBlatt).Cells(i, 6).Value = .Cells(c.Row, 3).Value
End If
Next
End With
End Sub
MfG Tom
Anzeige
AW: Suche VBA Code
08.10.2016 20:47:28
Spenski
Ja das passt :D
dank dir

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige