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:
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.
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
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.
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.
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 !!!
Ein Prost auf die Könige der Makros !!!
Antwort 5 von ukraina
zitat:
aus thread
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
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.
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
Thank you,
Tobi
Antwort 8 von Tobi113
Hab mal den aktuellen Makro angehängt. Vielleicht findet ihr den Fehler.
Danke
Tobi
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.
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:
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.
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 SubSo 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.

