online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon goofmen84 vom 21.02.2022, 19:22 Options

Pivot Tabelle per Makro abfragen

Hallo zusammen,

folgendes Problem habe ich und komme nicht weiter. Ich hoffe, dass einer von euch eine Lösung weiß. Ich benötige für Excel 2007 ein Makro, dass mir folgende Funktionalität bietet:

In Tabelle 1 sind in Spalte A Namen hinterlegt. In den ersten Zeile sind Variablen hinterlegt (B1 bis H1), so dass sich eine Matrix mit den Namen und den Variablen ergibt. Die Werte der Matrix (also die Schnittpunkte zwischen Namen und Variablen) sind von dem Makro auszufüllen.
Die Werte für die Matrix befinden sich Tabelle 2 in einer Pivottabelle. In dieser Pivottabelle kann man in dem Feld B10 den Namen auswählen (Drop-Down-Menü) , dann in Feld B15 eine der Variablen der Matrix (Tabelle 1, Zeile B1 bis H1) und man erhält als Reslutat einen Wert in D17. Dieser Wert aus D17 soll in die Matrix in Tabelle 1 eingetragen werden.
Hat jemand einen Vorschlag wie man dies mittels Makro durchführen könnte? Könnt ihr meine Problemstellung nachvollziehen?

Gruß


Antwort schreiben

Antwort 1 von rainberg vom 21.02.2022, 20:18 Options

Hallo,

wenn ich Dich richtig verstanden habe, müsste folgender Code funktionieren, den Du in den Codebereich von Tabelle2 kopierst.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strN As String, strV As String
    If Not Intersect(Target, Range("B15")) Is Nothing Then
        strN = Range("B10").Value
        strV = Range("B15").Value
        Worksheets("Tabelle1").Cells(WorksheetFunction.Match(strN, Worksheets("Tabelle1") _
            .Range("A:A"), 0), WorksheetFunction.Match(strV, Worksheets("Tabelle1") _
            .Range("A1:H1"), 0)) = Range("D17").Value
    End If
End Sub


Du wählst zuerst den Namen in B10 und dann die Variable in B15 aus.

Gruss
Rainer

Gruss
Rainer

Antwort 2 von rainberg vom 21.02.2022, 22:14 Options

Hallo noch mal,

anbei noch eine Optimierung des Codes

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B15")) Is Nothing Then
        With Worksheets("Tabelle1")
            .Cells(WorksheetFunction.Match(Range("B10").Value, .Range("A:A"), 0), _
                WorksheetFunction.Match(Range("B15").Value, .Range("A1:H1"), 0)) _
                = Range("D17").Value
        End With
    End If
End Sub


Gruss
Rainer

Antwort 3 von goofmen84 vom 22.02.2022, 17:00 Options

Hi,

leider bekomme ich den Code nicht zum laufen. Ich erstelle zwar das Makro erfolgreich, jedoch erscheint es dann nicht in Excel unter den möglichen auszuführenden Makros...

Warum, keine Ahnung? Kannst du mir da helfen?

Gruß

Antwort 4 von rainberg vom 22.02.2022, 17:28 Options

Hallo,

wie ich schon schrieb, der Code gehört in den Code-Bereich der Tabelle 2.

Zitat:
jedoch erscheint es dann nicht in Excel unter den möglichen auszuführenden Makros


dort kann er auch nicht erscheinen, da es sich um ein Worksheet_Change-Ereignis handelt, welches durch Zelleingaben ausgelöst wird.

In Deinem Falle, und das schrieb ich auch,

Zitat:
Du wählst zuerst den Namen in B10 und dann die Variable in B15 aus.


also durch die Wahl einer Variable in Zelle B15.

Wenn Du nicht klar kommst, kannst Du Deine Datei hier uploaden und den Download-Link hier posten.

Gruss
Rainer

Antwort 5 von goofmen84 vom 22.02.2022, 17:41 Options

Hi,

erstmal vielen Dank für deine Mühen!

Ich benötige aber ein Makro, dass ich einmal anstoße und das dann automatisch alle Werte der Matrix ausfüllt. Also das folgendes tut:
-nimm A1 (Tabelle 1) und gib es in die Pivottabelle in B10 (Tabelle 2) ein
-nimm B1 (Tabelle 1) und gib es in die Pivottabelle in B15 (Tabelle 2) ein
-dann nimm den Wert aus D17 (Tabelle 2) und kopiere ihn in die Matrix in Tabelle 1 (Feld: Schnittpunkt von A1 und B1
-dann nimm C1 und gib es in B 15 ein. Der dann erscheinende Wert aus D17 (Tabelle 2) wird in den Schnittpunkt von A1 und C1 eingetragen.
-fortführen bis H1 und dann das ganze erneut nur mit den Werten aus A2.

Ich weiß, ist sehr schwierig, aber ich schaff es leider nicht :-(

Gruß

Antwort 6 von rainberg vom 22.02.2022, 17:57 Options

Hallo,

genau das macht mein Makro, aber eben nur durch Handeingaben in B10 und B15.

Das zu automatisieren, erfordert eine Testumgebung, die nur Du liefern kannst.

Es nützt aber nichts, wenn Du weitere Beschreibungen dazu abgibst, denn zum Eigenbau einer Testumgebung habe ich weder Lust noch Zeit.

Gruss
Rainer

Ähnliche Themen

Makro für Auswahl aus Tabelle und Kopieren in leere Tabelle
JNS  27.10.2008 - 181 Hits - 4 Antworten

per Makro Tabelle durchsuchen und Ergebnis ausgeben
Petra65  05.06.2009 - 687 Hits - 10 Antworten

Makro auf aktive Tabelle beziehen
wmei  16.06.2009 - 125 Hits - 2 Antworten

Formel/Makro für erweiterbare Tabelle
Elbryan  08.07.2009 - 242 Hits - 10 Antworten

auf bereits geöfnette tabelle zugreifen Makro
nero022022  05.02.2010 - 318 Hits - 12 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026