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

VBA um Werte bei Pull-Down richtig zu verwenden

VBA um Werte bei Pull-Down richtig zu verwenden
07.05.2013 11:09:43
Andy
Hallo Forummitglieder,
ich habe folgendes Problem für das es hoffentlich ein Makro gibt. Ich beschreibe es mal in Schritten:
1. Ich wähle aus einem Pull-Down einen Baustoff aus, dem ein bestimmter Wert hinterlegt ist, z.B. "1".
2. Der zugehörige Wert "1" erscheint in einer anderen Zelle neben der Baustoffbezeichnung.
3. Nun habe ich die Möglichkeit den Wert "1" zu überschreiben, z.B. mit "2".
4. Wähle ich nun aus dem Pull-Down einen anderen Baustoff mit einem anderen dazugehörigen Wert (z.B. "3") aus, so soll dieser neue Wert "3" verwendet werden und den ggf. zuvor manuell eingegebenen Wert "2" überschreiben.
Aktuell habe ich eine Lösung, dass ich einen manuell eingegebenen Wert mit "Entfernen" löschen kann, s.d. dann der Wert vom zuvor ausgewählten Baustoff wieder erscheint (hierzu hatte ich dank einem anderen Forum vor einiger Zeit schon einen VBA erhalten - siehe weiter unten). Drücke ich also nach Schritt 3 die Entferntaste, so wird "2" gelöscht und es erscheint automatisch wieder die "1". Ich benötige diese Variante plus nun halt auch den Schritt 4, d.h. das Überschreiben eines manuell eingegebenen Wertes wenn ein anderer Baustoff aus dem Pull-Down gewählt wird.
Hier noch das erwähnte VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$I$20" Then
If Target = vbNullString Then 'kann man jetzt machen , weil Target hier eine Zelle ist
Application.EnableEvents = False 'damit der Code sich nicht selber aufruft
Target.Formula = "=$m$20"
Application.EnableEvents = True
End If
End If
Vielleicht kann mir ja jemand helfen. Vorab schon mal vielen, vielen Dank.
Andy

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA um Werte bei Pull-Down richtig zu verwenden
07.05.2013 11:19:02
Klaus
Hallo Andy,
das PullDown ist ein ActiveX-Pulldown, oder ein Gültigkeits-Pulldown?
Da der Wert händisch überschreibbar sein soll, brauchst du eine Ereignissroutine die zB bei jedem Wechsel des Zelleninhaltes ausgelöst wird. Dazu wäre eine Musterdatei sehr sinnvoll!
Alternative: Bleib bei Formeln, und mach zwei Zellen. In etwa so:
A1: =DeineFormel(Hole_Zahl_von_Pulldown)
B1: händische Eingabe
C1: =WENN(B1="";A1;B1)
in allen weiteren Formeln beziehst du dich auf C1. So wird immer erst die händische Eingabe genommen, erst wenn diese nicht da ist der Pulldown-Wert. Wird der Wert im Pulldown geändert, muss halt der Wert in B1 noch gelöscht werden ... etwas umständlicher (für den Anwender), dafür VBA-frei.
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA um Werte bei Pull-Down richtig zu verwenden
07.05.2013 12:18:31
Andy
Hallo Klaus,
vielen Dank für die schnelle Antwort. Falls möglich müsste ich es doch über ein VBA lösen, denn es geht darum eine mögliche Fehlerquelle zu beseitigen.
Ich habe nun mal eine Beispieldatei hochgeladen: https://www.herber.de/bbs/user/85227.xlsm.
H21 und I21 sind später mal die sichtbaren Bereiche. Bei H21 kann ich einen Baustoff auswählen und I21 zeigt mir den dazugehörigen Wert an. Überschreibe ich I21 manuell, so soll eben dieser Wert genommen werden. Wähle ich aus dem Pull-Down H21 jedoch anschliessend einen anderen Baustoff, so soll I21 entsprechend aktualisiert werden, d.h. der manuell eingegebene Wert soll mit dem zum Baustoff gehörigen Wert wieder überschrieben werden.
Mein Stand ist aktuell, dass ich einen manuell eingegebenen Wert wieder löschen kann und die Formel (hole Wert aus M21) wieder hergestellt wird. Ich muss aber eben noch wie zuvor beschrieben einen Schritt weiter gehen.
Ich hoffe das Beispiel hilft Dir oder Euch weiter.
Andy

Anzeige
AW: VBA um Werte bei Pull-Down richtig zu verwenden
07.05.2013 12:29:34
Klaus
Hi,
prüf doch einfach das "Pulldown" in H21, statt die Zelle I21.
Dann kannst du in I21 überschreiben wie du lustig bist. Sobald du im H21-Pulldown etwas änderst, holt sich I21 den dazugehörigen Wert.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo hell
If Target.Address = "$H$21" Then
Application.EnableEvents = False
Range("I21").Value = Range("M21").Value
'alternative: Range("I21").Formula = "=$m$21"
End If
hell:
Application.EnableEvents = True
End Sub
(die etwas erweiterte Fehlerbehandlung habe ich aus Prinzip eingebaut, ist hier eigentlich unnötig)
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA um Werte bei Pull-Down richtig zu verwenden
07.05.2013 14:59:03
Andy
Hallo Klaus,
vielen Dank für die schnelle Antwort. Es ist eine sehr gute Idee den Weg über H21 zu gehen. Simple Lösung, aber wie so oft sehen vier Augen mehr als zwei. Danke noch mal, es klappt jetzt wie gewünscht.
Andy

Danke für die Rückmeldung! owT.
07.05.2013 15:02:08
Klaus
.

Danke für die Rückmeldung! owT.
07.05.2013 15:02:09
Klaus
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige