Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Makro

VBA Makro
19.12.2023 08:11:37
Susanne
Hallo an alle,
ich versuche ein Makro zu schreiben, dass eigentlich nur Filter löschen und ein Tabellenblatt aus einer anderen Datei kopieren und einfügen soll, aber ich bekomme eine Fehlermeldung und finde den Fehler nicht. Ich habe folgendes Makro (zum Teil mit Makro Recorder) geschrieben:

Sub Datenimport()
`Daten sollen im Hintergrund ausgeführt werden
Application.ScreenUpdating = False

`1. Datei: Filter löschen in Tabellenblatt Datengrundlage
Range("C10").Select
With ThisWorkbook.Worksheets("Datengrundlage")
If .FilterMode Then .ShowAllData
End With

`2. Datei aus Laufwerk öffnen
Workbooks.Open "G:\Datengrundlage_Personal_ 2024.xlsx"

`2. Datei: Verknüpfung nicht aktualisieren
Application.AskToUpdateLinks = False --> hier sagt mir ein Fenster, dass sich einige Verknüpfungen nicht aktualisieren lassen – das will ich auch gar nicht. Kann ich diese Abfrage zusätzlich ausstellen?

`2. Datei: Tabellenblatt Datengrundlage auswählen und Filter löschen
Sheets("Datengrundlage RZV“).Select
ActiveSheet.ListObjects("Datengrundlage").Range("C10").Select
--> Das ist jetzt in der 2. Datei und ich weiß nicht, warum er mir hier einen Objektfehler auswirft. Ich habe Tabellenname und Tabellenblattname überprüft.

With ActiveSheets.Worksheets("Datengrundlage")
If .FilterMode Then .ShowAllData
End With

`2. Datei: Gesamtes Tabellenblatt kopieren und einfügen in 1. Datei

Selection.Copy
Windows("(00) Jahresplanung Personal 2024.xlsm").Activate
ThisWorkbook.Worksheets("Datengrundlage").Paste

Application.ScreenUpdating = True


End Sub

Danke vorab für eure Hilfe

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro
19.12.2023 09:05:28
onur
" ich bekomme eine Fehlermeldung" ? In WELCHER ZEILE und WELCHE Fehlermeldung denn ? Ist das denn sooo schwer?
AW: VBA Makro
19.12.2023 09:31:01
Susanne
Hallo,

er bleibt stehen bei Sheets("Datengrundlage RZV“).Select und gibt den Fehler 1004 (Anwendungs/Objektdefinierter Fehler). Deswegen bin ich davon ausgegangen, dass er das Sheet nicht findet / der Name falsch ist, aber das habe ich überprüft.

Danke
AW: VBA Makro
19.12.2023 09:38:51
onur
Wie heisst denn das Blatt jetzt wirklich? Du schreibst einmal Sheets("Datengrundlage RZV“) und dann aber Sheets("Datengrundlage“).
AW: VBA Makro
19.12.2023 09:39:02
MCO
Hey, du kannst auch mal statt dem Namen in "", einfach den Index des Sheet verwenden (1,2, etc)

Mir ist auch aufgefallen, dass die abschließenden " anders sind als die ersten. Ist das ein Darestellungsfehler oder hast du wirklich 2x ´ genommen?

Gruß, MCO
Anzeige
Sheet - Benennung!
19.12.2023 09:35:28
MCO
Moin, Susanne!

Lass Dich nicht runterziehen, die meisten bleiben hier freundlich.

Zur Sache:
Du hast scheinbar ein Sheet mit der Tabellenbezeichnung durcheinandergekegelt:

Sheets("Datengrundlage RZV“).Select
ActiveSheet.ListObjects("Datengrundlage").Range("C10").Select
--> Das ist jetzt in der 2. Datei und ich weiß nicht, warum er mir hier einen Objektfehler auswirft. Ich habe Tabellenname und Tabellenblattname überprüft.

With ActiveSheets.Worksheets("Datengrundlage")

Vielleicht hab ich es aber auch falsch interpretiert, dass ist bei gleichen Bezeichnungen immer schwierig zu wissen, was gemeint ist.

Ich hab mal versucht, das Ganze sinnvoll zu gestalten / kürzen.
copy + paste findet jetzt in 1 Zeile statt
Worksheets hab ich auf Variablen gesetzt, möglicherweise kann das letzte .select noch entfallen, bitte probieren.
Bildschirmmeldung sollte aus sein.

Testen konnte ich nicht wegen fehlender Dateien / Pfade
Schau mal, wie du klar kommst.



Sub Datenimport()
'Daten sollen im Hintergrund ausgeführt werden
Application.ScreenUpdating = False

Dim DG_P As Workbook
Dim DG As Worksheet

Set DG = ThisWorkbook.Worksheets("Datengrundlage")
If DG.FilterMode Then DG.ShowAllData '1. Datei: Filter löschen in Tabellenblatt Datengrundlage

Set DG_P = Workbooks.Open("G:\Datengrundlage_Personal_ 2024.xlsx") '2. Datei aus Laufwerk öffnen

With Application
.DisplayAlerts = False
'2. Datei: Verknüpfung nicht aktualisieren
.AskToUpdateLinks = False '--> hier sagt mir ein Fenster, dass sich einige Verknüpfungen nicht aktualisieren lassen – das will ich auch gar nicht. Kann ich diese Abfrage zusätzlich ausstellen?
.DisplayAlerts = True
End With

'2. Datei: Tabellenblatt Datengrundlage auswählen und
With DG_P.Sheets("Datengrundlage RZV")
.Select
If .FilterMode Then .ShowAllData 'Filter löschen
.Cells.Copy DG.Range("A1") '2. Datei: Gesamtes Tabellenblatt kopieren und einfügen in 1. Datei
End With

Application.ScreenUpdating = True
End Sub


Gruß, MCO
Anzeige
AW: Sheet - Benennung!
19.12.2023 12:54:06
Susanne
Hallo MCO,

Danke für Deine Nachricht.

"Du hast scheinbar ein Sheet mit der Tabellenbezeichnung durcheinandergekegelt" --> Ja, das war der Fehler. Danke für den Hinweis. Ich hab das Makro mit Hilfe deiner Anleitung weiter geschrieben und jetzt läuft alles gut durch.

LG Susanne

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige