Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Zu viele Macros

Forumthread: Zu viele Macros

Zu viele Macros
10.09.2025 04:14:37
NicoHendrik
Guten Morgen,

für mein Schwiegersohn soll ich eine Tipliste für sich und seine Kollegen erstellen.
Sie funktioniert soweit ganz gut, aber ich muss aus jeden vorherigen Spieltag Werte von DJ15 bis DY15 für den aktuellen Spieltag auslesen.

Das geht auch, und ich habe drei Macros die Ich in Workbook Open aufrufe.

Meine Frage: ich habe 34 Spieltage, gib es eine Möglichkeit das anders zu lösen oder muss ich 34 Macros erstellen?


Sub Kopiere_1()

'
Sheets("1. Spieltag").Select
Range("DJ15").Select
Range("DJ15:DY15").Select
Selection.Copy
Sheets("2. Spieltag").Select
Range("DJ13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("DI17").Select
End Sub

Sub Kopiere_2()
'
Sheets("2. Spieltag").Select
Range("DJ15").Select
Range("DJ15:DY15").Select
Selection.Copy
Sheets("3. Spieltag").Select
Range("DJ13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("DI17").Select
End Sub

Sub Kopiere_3()
'
Sheets("3. Spieltag").Select
Range("DJ15").Select
Range("DJ15:DY15").Select
Selection.Copy
Sheets("4. Spieltag").Select
Range("DJ13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("DI17").Select
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zu viele Macros
10.09.2025 07:30:59
RPP63
Moin!
Was steht denn in den 16 Spalten der Zeile 15 des "Vorblatts"?
Ich nehme mal an, dass es sich um den Punktestand handelt.
Ich würde eine Ergebnistabelle voranstellen und dann einfach per Formel darauf zurückgreifen.
geklöppelt: =INDEX(Ergebnis!$A:$P;BLATT();SPALTE())
Vielleicht zeigst Du mal die Datei?

Zu Deinem "Rekordercode":
Lies Dich mal in gewissen Grundlagen ein.
https://www.online-excel.de/excel/singsel_vba5c8a.html?f=78

Gruß Ralf
Anzeige
AW: Zu viele Macros
10.09.2025 11:37:42
NicoHendrik
Danke für die Antwort,

Recht hast du ja. Ich bin auf der suche nach einen vernünftigen Kurs.

bin Morgen erst wieder zurück und probiere es mal.

Gruß Nico
Der Hinweis von...
10.09.2025 10:42:33
Case
Moin, :-)

... Ralf ist wichtig. Ohne die Grundlagen wird es schwierig. ;-)

Wenn die Tabellenblätter schon alle angelegt sind (und auch entsprechend benannt sind), kannst du es so machen: ;-)

Option Explicit

Public Sub Main()
Dim lngTMP As Long
For lngTMP = 1 To 33
ThisWorkbook.Worksheets(lngTMP + 1 & ". Spieltag").Range("DJ15:DY15").Value = ThisWorkbook.Worksheets(lngTMP & ". Spieltag").Range("DJ15:DY15").Value
Application.Goto ThisWorkbook.Worksheets(lngTMP + 1 & ". Spieltag").Range("DI17"), True
Next lngTMP
End Sub

Die "Application.Goto-Methode" wird z. B. hier erklärt: ;-)
https://learn.microsoft.com/de-de/office/vba/api/excel.application.goto

Das True scrollt den Bildschirm. Wenn du das nicht möchtest, mache ein False draus. ;-)

Der Code überträge jedesmal alle (vorhandenen) Daten. Bräuchte man nicht, aber das dauert keinen Wimpernschlag, sprich - es ist egal. ;-)

Servus
Case
Anzeige
AW: Zu viele Macros
10.09.2025 15:26:38
Yal
Moin,

man kann den Quellspieltag abfragen und daraus den Zielspieltag ableiten.

Vorschlag:
Sub Spieltage_übertragen()

Dim Quelle As Integer

'Quellspieltag abfragen
Quelle = InputBox("welche Spieltag muss übertragen werde (1, 2, .., 33)?", "Spieltageingabe")
'Prüfen
If Not (IsNumeric(Quelle)) Or Quelle > 33 Or Quelle 1 Then
MsgBox "Es dürfen nur Zahlen von 1 bis 33 eingegeben werden."
Exit Sub
End If
'Kopieren
Worksheets(Quelle & ". Spieltag").Range("DJ15:DY15").Copy
With Worksheets((Quelle + 1) & ". Spieltag")
.Activate
.Range("DJ13").PasteSpecial Paste:=xlPasteValues
.Range("DI17").Select
End With
End Sub
Ungetestet.

VG
Yal
Anzeige
=BLATT()
10.09.2025 21:49:12
RPP63
Mal eine Frage an die "alten Kämpen":
Wer von euch hat denn jemals =BLATT() verwendet?
Hier bietet sich dies doch an, gerne in Verbindung mit INDIREKT() und BEREICH.VERSCHIEBEN()
Bevor jemand ob der Volatilität meckert:
die Datenlage ist durchaus überschaubar.

Gruß Ralf
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18