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

Forumthread: Makro aus anderem Tabellenblatt aufrufen

Makro aus anderem Tabellenblatt aufrufen
25.12.2023 18:15:36
Fritz_W
Hallo Forumsbesucher,

euch allen wünsche ich noch erholsame Weihnachtstage.
Das nachfolgende Makro bezieht sich auf die Tabelle1 (Tabelle1) . So kann ich das Makro aber nur aus Tabelle1 starten.
Wie müsste der Code geändert werden, damit ich das Makro auch per Schaltfläche aus einem anderen Tabellenblatt ausführen kann?

Für eure Unterstützung im voraus besten Dank.

mfg Fritz

Hier der Code
Sub Mischen()
Dim arr
Dim x
Dim a As Long, b As Long

With Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row)
arr = .Value
For a = 1 To UBound(arr)
b = WorksheetFunction.RandBetween(1, UBound(arr, 1))
x = arr(a, 1)
arr(a, 1) = arr(b, 1)
arr(b, 1) = x
Next
.Offset(0, -1).Value = arr
End With
End Sub
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro aus anderem Tabellenblatt aufrufen
25.12.2023 18:23:50
Beverly
Hi Fritz,

wenn ich dich richtig verstanden habe, dann so:

With Worksheets("Anderes Blatt").Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row) 




GrußformelBeverly's Excel - Inn
Anzeige
AW: Makro aus anderem Tabellenblatt aufrufen
25.12.2023 19:35:41
Fritz_W
Hallo Karin,
vielen Dank für Deine Unterstützung.
Leider liefert der von mir veränderte Code im Vergleich zum alten Code Abweichungen in Tabelle1, wenn ich die Makros aus Tabelle2 ausführe.
Lade mal ein Beispiel hoch.

mfg
Fritz

https://www.herber.de/bbs/user/165474.xlsm
Anzeige
AW: Makro aus anderem Tabellenblatt aufrufen
25.12.2023 20:00:07
ralf_b
versuch mal das
Sub Mischen()


If Worksheets("Tabelle1").Range("B2").Value = "" Then Exit Sub
Dim arr
Dim x
Dim a As Long, b As Long

With Worksheets("Tabelle1").Range("B2:B" & Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row)
arr = .Value
For a = 1 To UBound(arr)
b = WorksheetFunction.RandBetween(1, UBound(arr, 1))
x = arr(a, 1)
arr(a, 1) = arr(b, 1)
arr(b, 1) = x
Next
.Offset(0, -1).Value = arr
End With

End Sub
Anzeige
AW: Makro aus anderem Tabellenblatt aufrufen
25.12.2023 20:07:54
Beverly
Hi Fritz,

so sollte es richtig funktionieren:

With Tabelle1.Range("B2:B" & Tabelle1.Cells(Rows.Count, 2).End(xlUp).Row)



Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Makro aus anderem Tabellenblatt aufrufen
25.12.2023 20:18:50
Fritz_W
Hallo Karin,
ja, so funktioniert es. Vielen Dank.

mfg
Fritz
AW: Makro aus anderem Tabellenblatt aufrufen
25.12.2023 20:06:35
Fritz_W
Hallo Ralf

super, so scheint es zu funktionieren.
Vielen Dank!

mfg
Fritz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige