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

Makro in anderem Tabellenreiter ausführen

Forumthread: Makro in anderem Tabellenreiter ausführen

Makro in anderem Tabellenreiter ausführen
22.06.2016 14:56:51
Tamara

Hallo zusammen,
ich habe in Tabelle1 ein Makro eingestellt, dass die Inhalte aus mehreren Spalten in einer, der ersten, Spalte untereinander kopiert. Mit einem CommandButton in Tabelle1 kann ich das Makro problemlos ausführen.
Hier einmal das Makro:


Private Sub CommandButton1_Click()
Call Spalten_untereinander
End Sub

Sub Spalten_untereinander()
Dim QZeile As Long 'Zeile Quelle
Dim QSpalte As Long 'Spalte Quelle
Dim ZZeile As Long 'Zeile Ziel
ZZeile = 9 'Startzeile in der Zielspalte
For QSpalte = 2 To 32 'Spalte D bis H
For QZeile = 9 To 300
Cells(ZZeile, 1) = Cells(QZeile, QSpalte) 'die 9 ist Spalte I
ZZeile = ZZeile + 1
Next
Next
End Sub
Nun möchte ich jedoch dass das Makro von Tabelle2 aus gesteuert wird und nur im Hintergrund in Tabelle1 durchgeführt wird.
Daher habe ich in Tabelle2 einen CommandButton wie folgt eingestellt:

Private Sub cmd_aktualisieren_HF_Click()
Sheets("Backup_Handlungsfelder_Bezug").Select
Application.Run "Spalten_untereinander"
Sheets("Handlungsfelder").Select
Call Duplikate_entfernen
End Sub

Allerdings kommt bei der Ausführung folgende Fehlermeldung:
Laufzeitfehler '1004': Das Makro 'Spalten_untereinander" kann nicht ausgeführt werden. Das Makro ist möglicherweise in dieser Arbetismappe nicht verfügbar, oder alle Makros wurden deaktiviert.
Vielen Dank im Voraus und viele Grüße

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro in anderem Tabellenreiter ausführen
22.06.2016 15:05:38
UweD
Hallo
verschiebe das Makro in ein Modul und ändere es so ab, dass es sich immer auf das aktive Blatt bezieht. (ActiveSheet.)
Sub Spalten_untereinander()
Dim QZeile As Long 'Zeile Quelle
Dim QSpalte As Long 'Spalte Quelle
Dim ZZeile As Long 'Zeile Ziel
ZZeile = 9 'Startzeile in der Zielspalte
For QSpalte = 2 To 32 'Spalte D bis H
For QZeile = 9 To 300
ActiveSheet.Cells(ZZeile, 1) = ActiveSheet.Cells(QZeile, QSpalte) 'die 9 ist Spalte  _
I
ZZeile = ZZeile + 1
Next
Next
End Sub
Gruß UweD

Anzeige
AW: Makro in anderem Tabellenreiter ausführen
22.06.2016 15:17:12
UweD
Hab gerade nochmal gelesen,
und festgestellt, dass du ja nur in Tab1 arbeiten möchtest.
Dann musst du in meinem Makro das ActiveSheet. durch Sheets("Tabelle1"). ersetzen.

AW: Makro in anderem Tabellenreiter ausführen
22.06.2016 15:46:02
Tamara
Hallo Uwe,
vielen Dank für deine schnelle Antwort.
Habe ich geändert, die Anwendung wird allerdings nicht ausgeführt - die Spalte in die die Daten untereinander eingefügt werden sollen bleibt komplett leer.
Hast du noch eine andere Idee?
Danke & Grüße

Anzeige
AW: Makro in anderem Tabellenreiter ausführen
22.06.2016 15:09:41
Mullit
Hallo,
das machen wir einfach so, Dein Makro in ein Standardmodul:
Option Explicit
Public Sub Spalten_untereinander()
Dim QZeile As Long 'Zeile Quelle
Dim QSpalte As Long 'Spalte Quelle
Dim ZZeile As Long 'Zeile Ziel
ZZeile = 9 'Startzeile in der Zielspalte
For QSpalte = 2 To 32 'Spalte D bis H
For QZeile = 9 To 300
With Tabelle1
.Cells(ZZeile, 1).Value = .Cells(QZeile, QSpalte).Value 'die 9 ist Spalte I
End With
ZZeile = ZZeile + 1
Next
Next
End Sub

Dein Button_Click dann so:
Private Sub cmd_aktualisieren_HF_Click()
Call Spalten_untereinander
End Sub

Gruß, Mullit

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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