Excel VBA Makro, WENN Zellenwert, dann Zellen verbinden
Hallo,
ich verzweilfe an einem Makro.. Ich will folgendes machen
Per Drop-Down-Menü kann man auswählen: "Arbeitszeit" oder "Materialkosten"
Wenn nun "Materialkosten" im Drop-Down-menü ausgewählt wird, dann sollen sich die Zellen H35:M35 automatisch verbinden...sodass hier ein Text eingegeben werden kann. =WENN(D35="Materialkosten";Makro1;0))
Wäre Top wenn jemand eine Lösung für mich hat!!!! Danke
Gruß
fireless
ich verzweilfe an einem Makro.. Ich will folgendes machen
Per Drop-Down-Menü kann man auswählen: "Arbeitszeit" oder "Materialkosten"
Wenn nun "Materialkosten" im Drop-Down-menü ausgewählt wird, dann sollen sich die Zellen H35:M35 automatisch verbinden...sodass hier ein Text eingegeben werden kann. =WENN(D35="Materialkosten";Makro1;0))
Wäre Top wenn jemand eine Lösung für mich hat!!!! Danke
Gruß
fireless
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 256757
Url: https://administrator.de/contentid/256757
Ausgedruckt am: 26.11.2024 um 14:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo fireless,
das ganze in den Codeabschnitt des entsprechenden Worksheets kopiert (Wichtig: Es darf nicht in ein Makro-Modul kopiert werden, sonst funktioniert das Change-Event nicht!)
Siehe http://www.cpearson.com/excel/differen.htm
Obiges Makro nutzt deshalb ein Ereignis das Auftritt sobald sich eine Zelle auf dem Arbeitsblatt ändert. Es vergleicht dann ob die Zelle D35 verändert wurde, und wenn ja ob sie den Inhalt "Materialkosten" hat. Zusâtzlich wird geprüft ob der Bereich schon "gemerged" ist und wenn nicht, wird er zu einer Zelle zusammengefasst.
Grüße Uwe
das ganze in den Codeabschnitt des entsprechenden Worksheets kopiert (Wichtig: Es darf nicht in ein Makro-Modul kopiert werden, sonst funktioniert das Change-Event nicht!)
Private Sub Worksheet_Change(ByVal Target As Range)
With ActiveSheet
Set rngSource = .Range("D35")
If Not Application.Intersect(rngSource, Target) Is Nothing Then
If rngSource.Value = "Materialkosten" Then
.Range("H35:M35").Merge
Else
.Range("H35:M35").UnMerge
End If
End If
End With
End Sub
=WENN(D35="Materialkosten";Makro1;0)
Das was du hier vorhast funktioniert deswegen nur beschränkt, weil Funktionen die in Formeln benutzt werden sollen, keine anderen Zellen verändern dürfen!Siehe http://www.cpearson.com/excel/differen.htm
Obiges Makro nutzt deshalb ein Ereignis das Auftritt sobald sich eine Zelle auf dem Arbeitsblatt ändert. Es vergleicht dann ob die Zelle D35 verändert wurde, und wenn ja ob sie den Inhalt "Materialkosten" hat. Zusâtzlich wird geprüft ob der Bereich schon "gemerged" ist und wenn nicht, wird er zu einer Zelle zusammengefasst.
Grüße Uwe
Hallo Uwe.
Ich bin völlig bei deiner Lösung, aber ...
In der Tabelle (z.B. C35):
Getestet auf den beiden nicht mehr taufrischen Versionen 2003 und 2007.
@fireless
Das ist alles andere als Best Practice und du solltest definitiv Uwes Vorschlag vorziehen. Du verbaust dir eine Zelle, die du für nichts anderes nutzen kannst, als für die Formel. Macht man nicht, aber entgegen der Erwartungen dass Excel das nicht zulässt, funktioniert so etwas doch.
Grüße
rubberman
Ich bin völlig bei deiner Lösung, aber ...
... weil Funktionen die in Formeln benutzt werden sollen, keine anderen Zellen verändern dürfen! ...
... nee. Just For Fun (in einem Standardmodul):Option Explicit
Public Function merge(ByRef rng As Range) As String
Application.Volatile
rng.merge
merge = ""
End Function
Public Function unmerge(ByRef rng As Range) As String
Application.Volatile
rng.unmerge
unmerge = ""
End Function
=WENN(D35="Materialkosten";merge(H35:M35);unmerge(H35:M35))
@fireless
Das ist alles andere als Best Practice und du solltest definitiv Uwes Vorschlag vorziehen. Du verbaust dir eine Zelle, die du für nichts anderes nutzen kannst, als für die Formel. Macht man nicht, aber entgegen der Erwartungen dass Excel das nicht zulässt, funktioniert so etwas doch.
Grüße
rubberman
Hallo rubberman!
Getestet in Excel 2013 funktioniert es nicht. Steigt beim <rng.merge> aus, bringt den Fehler '#WERT' und verbunden wird nix...
Grüße Dieter
Getestet auf den beiden nicht mehr taufrischen Versionen 2003 und 2007.
Getestet in Excel 2013 funktioniert es nicht. Steigt beim <rng.merge> aus, bringt den Fehler '#WERT' und verbunden wird nix...
Grüße Dieter