Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
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

Tabellenblätter in VBA "ansprechen"

Tabellenblätter in VBA "ansprechen"
14.11.2022 11:30:25
Lars
Mahlzeit zusammen,
ich bearbeite aktuell eine Exceldatei in welcher im Tabellenblatt 1 ("SAP_Grundlage") die SAP-Grundlage über das Excel Add-In aktualisiert und innerhalb der Liste gespeichert wird. Da dies öfters geschieht, werden über mein Makro zuerst im 2. Tabellenblatt ("Daten") die alten Daten gelöscht und im Anschluss mit den neuen Daten aus der "SAP_Grundlage" ersetzt. Anhand dem "Daten" Tabellenblatt wird im Nachgang an die über das Makro ausgeführten Rechnungen eine Pivot-Tabelle in einem neuen Tabellenblatt "Pivotbearbeitet" aktualisiert. --> Soviel zur groben Funktionsweise :)
Da das Makro nicht allein von mir, sondern auch von Kollegen benutzt werden soll, habe ich auf dem Tabellenblatt "Pivotbearbeitet" zwei Buttons mit einer Makroverknüpfung erstellt. Ein Button aktualisiert die Pivot, der andere führt das oben beschriebene Makro aus.
Das Makro funktioniert über die Vorgehensweise "Entwicklungstools" "Makros" und anschließend den "Ausführen" Button in der Menüleiste einwandfrei. Allerdings wird mir der folgende Fehler über den Button angezeigt:
"Laufzeitfehler "1004": Wir können diese Änderungen an den ausgewählten Zellen nicht vornehmen, da sie sich auf eine PivotTable auswirken. Verwenden Sie die Feldliste, um den Bericht zu ändern. Wenn Sie Zellen einfügen oder löschen möchten, verschieben Sie die PivotTable, und versuchen Sie es dann erneut.
Im VBA-Editor wird mir folgendes als Fehler angezeigt:

Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
  Selection.ClearContents
Sheets("SAP_Grundlage").Select
Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Daten").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Produkt"
Range("O3").Select
Die "Fett-Markierung" stellt hier das Problem dar. Wichtig ist das lediglich das "Daten" Tabellenblatt geleert wird und lediglich die Überschriften vorhanden bleiben, sodass die neu eingefügten Daten aus dem Tabellenblatt "SAP_Grundlagen" als Bezug für die Pivot genommen werden können.
Wie stelle ich hier im Code den Bezug so her, dass bei jeder neuausführung des Makros die Daten lediglich aus dem "Daten" Tabellenblatt gelöscht werden und dies über den Button im anderen Tabellenblatt "Pivotbearbeitet" ausgeführt werden kann?
Danke vorab für eure Hilfe - ich hoffe ihr könnt mir folgen! :)
LG
Lars

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter in VBA "ansprechen"
14.11.2022 11:47:54
ChrisL
Hi
Vielleicht würde es schon reichen, wenn du zum Start von deinem Code die folgende Zeile einfügst:
Sheets("Daten").Activate
Oder du versuchst es mal hiermit:

Sub t()
With Worksheets("Daten")
.UsedRange.Offset(2, 0).ClearContents
Worksheets("SAP_Grundlage").UsedRange.Offset(2, 0).Copy
.Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("B2") = "Produkt"
.Activate
.Range("O3").Select
End With
Application.CutCopyMode = False
End Sub
Falls es nicht hilft, bitte eine kleine abgespeckte Beispieldatei ins Forum laden.
cu
Chris
Anzeige
AW: Tabellenblätter in VBA "ansprechen"
15.11.2022 11:00:38
Lars
Hi Chris,
die Lösung ist manchmal so simpel wie einfach - dein Tipp mit dem Sheets("Daten").Activate zum Start des VBA-Codes hat geklappt! Ich danke für eure schnellen und sehr hilfreichen Antworten.
Bis zum nächsten mal :)
Greetings,
Lars
AW: Tabellenblätter in VBA "ansprechen"
14.11.2022 11:48:21
Rudi
Hallo,
ohne Select.

  Sheets("Daten").Cells(1, 1).CurrentRegion.Offset(1).ClearContents
With Sheets("SAP_Grundlage").Range("A3")
.Range(.Cells(3, 1).End(xlDown), .Cells(3, 1).End(xlToRight)).Copy
End With
With Sheets("Daten")
.Cells(2, 1).PasteSpecial xlPasteValues
.Cells(2, 2) = "Produkt"
End With
Application.CutCopyMode = False
Gruß
Rudi
Anzeige
AW: Tabellenblätter in VBA "ansprechen"
14.11.2022 13:20:45
snb

Sheets("Daten").usedrange.Offset(1).ClearContents
With Sheets("SAP_Grundlage").usedrange.offset(1)
Sheets("Daten").cells(2,1).resize(.rows.count,.columns.count).value= .value
End With
Sheets("Daten").Cells(2, 2) = "Produkt"

AW: Tabellenblätter in VBA "ansprechen"
14.11.2022 13:21:54
snb

  Sheets("Daten").usedrange.Offset(1).ClearContents
With Sheets("SAP_Grundlage").usedrange.offset(1)
Sheets("Daten").cells(2,1).resize(.rows.count,.columns.count).value= .value
End With
Sheets("Daten").Cells(2, 2) = "Produkt"

261 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige