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

Makro dynamisch anpassen

Forumthread: Makro dynamisch anpassen

Makro dynamisch anpassen
18.03.2025 18:29:14
Anke Becker
Hallo, liebe VBA Kenner,
ich habe vier Tabellenblätter (Eingabe, 2024, 2025 und 2026)
ich würde gern in meinem mit Makrorekorder aufgezeichnetem Makro zu alllererst auf das Tabellenblatt springen,
das ich mit Datenüberprüfung im Tabellenblatt Eingabe in Zelle C5 auswähle.

Aufgezeichnet sieht es so aus, wobei 2024 ausgelesen werden soll aus dem Tabellenblatt Eingabe in Zelle C5
Sub Makro1()

Sheets("2024").Select
Range("C7").Select
End Sub

Ich würde mich sehr über Euer Wissen freuen.
Gruß
Anke
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro dynamisch anpassen
18.03.2025 18:57:51
Onur
Sheets(Sheets("Eingabe").Range("C5")).Select 
AW: Makro dynamisch anpassen
18.03.2025 19:03:43
Anke Becker
Vielen Dank. Ich werde es gleich morgen einbauen.

@Ulf, eine combobox ist für mich "noch" zu kompliziert :-)
AW: Makro dynamisch anpassen
18.03.2025 18:58:51
Ulf
Hi,
wenn du schon springen willst, wäre ggf. eine Combobox sinnvoll, der du das Makro anhängst
Sub Makro1()

Dim strBlatt As String
Dim wb As Workbook
Set wb = ThisWorkbook
strBlatt = wb.Worksheets("Eingabe").Range("C5").Value
With wb.Worksheets(strBlatt)
.Activate
.Range("C7").Select
End With
End Sub

hth
Ulf
Anzeige
AW: Makro dynamisch anpassen
18.03.2025 19:34:37
cysu11
Hallo Anke,

ich habe das so verstanden, dass du, je nachdem welche Auswahl Du im Blatt "Eingabe" Zelle C5 tätigst, dies Dich automatisch auf das jeweilige Tabellenblatt mit dem entsprechenden Name aus C5 weiterleitet?

Wenn ja, dann Lösung im Anhang.

https://www.herber.de/bbs/user/176326.xlsm

LG, Alexandra
Anzeige
AW: Makro dynamisch anpassen
19.03.2025 14:41:46
GerdL
Hallo Anke,
noch ein Gedicht.
Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
If Target.Address(0, 0) = "C5" Then
Application.Goto reference:=Sheets(Target.Text).Range("C7"), scroll:=False
End If
End Sub



Gruß Gerd
Anzeige
AW: Makro dynamisch anpassen
19.03.2025 14:01:25
Yal
Die Version von Alexandra in sehr verkürzten Form:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
If Target.Address = "$C$5" Then ThisWorkbook.Sheets(Target.Value).Activate
End Sub


Ein solche "Worksheet_Change" nennt sich ein Ereignis-Prozedure. Mit Rechtsklick auf dem Register des Blattes und Klick auf "Code anzeigen" kommst Du direkt auf dem Codepane des Blattes. Oben links, im Auswahl wo "(allgemein)" steht, auf "Worksheet" schalten, dann rechts davon, wo jetzt "SelectionChange" steht, aus "Change" schalten. Dann hast Du den Rumpf der obigen Prozedure.

VG
Yal
Anzeige
nun ja...
19.03.2025 14:07:21
Yal
Testen bevor posten, wäre auch gut: in diesem besondere Fall ist der Inhalt von Target.Value ein Zahl. In Kombination mit Worksheets(..) wird versucht auf die Nte Blatt, das diese Zahl repräsentiert. Es würde mit 1 bis 4 funktionieren (weil soviel Blätter), aber nicht mit 2025.

Richtig ist dann
Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
If Target.Address = "$C$5" Then ThisWorkbook.Sheets(CStr(Target.Value)).Activate
End Sub


VG
Yal
Anzeige
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