Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Drop down bestimmt, wohin Summe kopiert wird





Frage

Hi Leute, Mal wieder eine kleine knifflige Aufgabe gefällig? Ich will die Summe aus einer Tabelle in ein anderes Diagramm übertragen. Aber wohin das Ergebnis kopiert wird ist abhängig von der Auswahl eines Drop down Menus. Beispiel Drop down Auswahl: 1 --> Summe kopieren in Zelle D4 auf Blatt 2 Drop down Auswahl: 2 --> Summe kopieren in Zelle E6 auf Blatt 5 ... Wäre für euren Rat sehr dankbar, Gruß, Tobi

Antwort 1 von piano

Hallo Tobi
Ein kleiner Makro kann hier helfen:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    ' Summe in "A4", Dropdown-Schalter (Gültigkeit/Liste mit Werten 1;2) in "B2"
    If ActiveSheet.Name = "Tabelle1" And ActiveCell.Address = "$B$2" Then
        If ActiveCell.Value = 1 Then
            ActiveCell.Offset(1, 0).Activate    'Damit keine Endlosschleife entsteht
            Range("Tabelle2!D4") = Range("A4").Value
        Else
            ActiveCell.Offset(1, 0).Activate
            Range("Tabelle5!E6") = Range("A4").Value
        End If
    End If
End Sub

Diesen Code im Ereignis "Diese Arbeitsmappe / SheetChange" einfügen!

PS: Ich gehe davon aus, daß das Drop down Menü aus einer Gültigkeitsregel entstanden ist, bei Listenfeld oder Kombinationsfeld muß ein ähnlicher Makro beim Ereignis "..._BeiÄnderung" eingefügt werden.

Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.



Antwort 2 von Tobi113

Hi Piano,

Vielen Dank für deine Hilfe. Ich bastele noch an der Modellierung. Kannst du mir vielleicht ein paar Anweisungen geben, wie ich zusätzliche "Verbindungen" hinbekomme. Es handelt sich bei dem Drop-Down Menu um insgesamt 21 Wahlmöglichkeiten, wobei eine Summe aus dem ersten Blatt immer mit einer Zelle auf einem anderen, stets unterschiedlichen Blatt verbunden werden soll.
Wäre dir sehr dankbar,

Tobi

Antwort 3 von coros

Hi Tobi,

meine VBA-Lösung sehe so aus.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As String
Zelle = Range("B2")
Select Case Zelle
    Case Is = "1"
        Worksheets("Tabelle2").Cells(4, 4) = Range("A4").Value
    Case Is = "2"
        Worksheets("Tabelle5").Cells(6, 5) = Range("A4").Value
End Select

End Sub

Die Auswahl der Bedingungen durch das DropDown Feld muss in Zelle B2 erfolgen. Es wird im Moment die der Wert, der in Zelle 4 steht, kopiert. Um weitere Bedingungen hinzu zu fügen, muss immer die Zeilen

Case Is = "1"
Worksheets("Tabelle2").Cells(4, 4) = Range("A4").Value

kopiert werden und vor der Zeile

End Select


eingefügt werden. Dann muss das Kriterium, also bei welcher Auswahl aus der Gültigkeitsliste festgelegt werden. Das macht man, in dem man die Zahl in den Anführungsstrichen (““) in der Zeile

Case Is = "1"


austauscht. Wohin die Zahlen sollen, wird in der Zeile darunter festgelegt. Dazu sind die Zahlen hinter Cells zu ändern. Wobei die erste Zahl für die Zeile und die zweite Zahl für die Spalte ( fängt bei A = 1 an) steht, in der die Daten kopiert werden sollen.

Ich hoffe, Du kommst klar damit. Wenn nicht, melde Dich noch mal.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von Tobi113

Vielen Dank euch beiden. Hat mir sehr geholfen.

Ein Prost auf die Könige der Makros !!!

Antwort 5 von ukraina

zitat:

Zitat:
Hey ihr beiden,

Sobald ich den Namen des Arbeitsblattes verändere funktioniert das Makro nicht mehr. Muss ich irgendwas besonderes beachten, wenn der Name nicht Tabelle1, Tabelle2,... ist?

Danke

Tobi


aus thread

Antwort 6 von coros

Hi Tobi,

wenn der Name der Tabelle nicht "Tabelle1 oder Tabelle2 ist, sondern z.B. Tobi1 oder Tobi2, dann muss der Tabellenname im Makro von piano und auch in meinem, angepasst werden. Du musst dann Tabelle1 gegen den Tabellennamen, in das die Daten kopiert werden sollen, austauschen.

Ich hoffe, das wars, was Du meintest. Wenn nicht, dann melde Dich noch mal.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von Tobi113

Nein, klappt leider nicht. Habe die Namen schon angepasst, sie auch in " gesetzt, aber irgendwie funktioniert es trotzdem nicht. Muß ich vielleicht ' einfügen, oder sonst irgendwelche für den Laien unsinnigen Zeichen?

Thank you,

Tobi

Antwort 8 von Tobi113

Hab mal den aktuellen Makro angehängt. Vielleicht findet ihr den Fehler.


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        If ActiveSheet.Name = "Strategy" And ActiveCell.Address = "$I$5" Then
        If ActiveCell.Value = "Auxillaries" Then
            ActiveCell.Offset(1, 0).Activate
            Range("Auxillaries!B3") = Range("J84").Value
            Range("Auxillaries!B5") = Range("R84").Value
        End If
        If ActiveCell.Value = "Boogies" Then
            ActiveCell.Offset(1, 0).Activate
            Range("Boogies!B3") = Range("J84").Value
            Range("Boogies!B5") = Range("R84").Value
        End If
        If ActiveCell.Value = "Carbody" Then
            ActiveCell.Offset(1, 0).Activate
            Range("Carbody!B3") = Range("J84").Value
            Range("Carbody!B5") = Range("R84").Value
        End If
    End If
End Sub


Danke

Tobi

Antwort 9 von coros

Hi Toby,

also bevor wir hier noch lange im trüben fischen, wenn es aus Datenschutzrechtlichen Gründen möglich ist, dann schicke mir mal Deine Datei. Ich schaue sie mir dann an und werde den Code in Deine Tabelle einarbeiten. E-Mailadresse siehe oben.


MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Antwort 10 von coros

Hi Tobi,

kopiere nachfolgenden Code in das VBA-Projekt Deiner Tabelle mit dem Namen Strategy:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As String
Zelle = Range("I5")
Select Case Zelle
    Case Is = "Auxillaries"
        Worksheets("Auxillaries").Cells(3, 2) = Range("J84").Value
        Worksheets("Auxillaries").Cells(5, 2) = Range("R84").Value
    Case Is = "Boogies"
        Worksheets("Boogies").Cells(3, 2) = Range("J84").Value
        Worksheets("Boogies").Cells(5, 2) = Range("R84").Value
    Case Is = "Carbody"
        Worksheets("Carbody").Cells(3, 2) = Range("J84").Value
        Worksheets("Carbody").Cells(5, 2) = Range("R84").Value
End Select

End Sub


So sollte es funktionieren.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: