ich möchte ein Makro mit folgenden Bedingungen erstellen:
'BESCHREIBUNG:
'1. Prüfung, ob Werte in Spieler!D2:D15 stehen.
' a. wenn ja: GoTo 2.
' b. wenn nein: MessageBox: "Keine Spieler ausgewählt!"; Zelle Spieler!D2 markieren; GoTo _
Ende
'2. Prüfung, ob Tabellenblatt mit Name aus Spieler!G2 schon vorhanden ist.
' a. wenn ja: Frage, ob Tabellenblatt überschrieben oder Makro abgebrochen werden soll.
' a. wenn überschrieben: Tabellenblatt mit Name aus Spieler!G2 löschen; GoTo 3.
' b. wenn Makro abbrechen: Tabellenblatt mit Name aus Spieler!G2 markieren; GoTo Ende.
' b. wenn nein: GoTo 3.
'ok3. (Ausgeblendetes) Tabellenblatt Dummy! kopieren, Kopie ans Ende stellen.
'4. Spalten löschen; Berechnung Range: Spieler!F1; Bereich: C:SPALTE(3+(10-Spieler!F1))
'5. Namen Spieler aus Tabellenblatt Spieler! (Range = Wert aus F1) in neues Tabellenblatt einfü _
gen (Einfügen= Werte, Transponieren)
'ok6. Namen der Spieler aus Tabellenblatt Spieler! löschen
'ok7. Neu erstelltes Tabellenblatt Zelle B3 markieren
'ok8. Tabellenblattname durch Wert in Spieler!G2 ersetzen.
Nachdem ich ein wenig im Internet geforscht habe konnte ich die Punkte, die mit 'OK' _ gekennzeichnet sind, bereits lösen. Könnt Ihr mir bei den restlichen Punkten helfen? Folgenden Code habe ich bislang "erbastelt":
Sub Blattneu()
' Blattneu Makro
' Neues Tabellenblatt für neuen Spieltag
' Tastenkombination: Strg+b
'3. (Ausgeblendetes) Tabellenblatt Dummy! kopieren, Kopie ans Ende stellen.
With Worksheets("Dummy")
.Visible = xlSheetVisible
.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
.Visible = xlSheetVeryHidden
End With
'4. Spalten löschen; Berechnung Range: Spieler!F1; Bereich: C:SPALTE(3+(10-Spieler!F1))
' Folgender Code wurde im Internet gefunden zur Löschung leerer Spalten
' leere_Spalten_löschen()
' Dim lng As Long
' With ActiveSheet
' For lng = .UsedRange.SpecialCells(xlCellTypeLastCell).Column To 1 Step -1
' If .Columns(lng).Find("*", , xlFormulas, , xlByColumns, xlPrevious) Is Nothing _
Then .Columns(lng).Delete
' Next lng
' End With
'5. Namen Spieler aus Tabellenblatt Spieler! (Range = Wert aus F1) in neues Tabellenblatt einfü _
gen (Einfügen= Werte, Transponieren)
Sheets("Dummy").Range("D2:?").Copy
' ? wird die Range sein. Zum Beispiel steht dort "5", wodurch der Bereich D2:D6 kopiert werden _
soll
Sheets("Dummy(2)").Range("B1").PasteSpecial Transpose:=True
'6. Namen der Spieler aus Tabellenblatt Spieler! löschen
Worksheets("Dummy").Range("D2:D15").ClearContents
'7. Neu erstelltes Tabellenblatt Zelle B3 markieren
Sheets("Dummy(2)").Range("B3").Select
'8. Tabellenblattname durch Wert in Spieler!G2 ersetzen.
ActiveSheet.Name = Worksheets("Spieler").Range("G2")
End Sub