Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
424to428
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
424to428
424to428
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

vergangenheitsorientiertes Knacknuss-Makro

vergangenheitsorientiertes Knacknuss-Makro
thomas
Hallo Leute,
mit untenstehenden Makro-Versuchen probiere ich seit längerem folgendes zu erreichen.
Sub ComboBox1_Change()
Wenn in der Combobox (Fallfenster) BE steht und nun Gew angewählt wird, dann soll Makro 11 aufgerufen werden, welches die Eingaben von BE nach Gew kopiert (damit will ich dem User Arbeit abnehmen).
Wenn in der Combobox BE steht und nun ROS angewählt wird, dann soll Makro11 auf gerufen werden.
Wenn Gew steht und BE angewählt wird soll Makro12 abearbeitet werden.
Wenn Gew steht und ROS angewählt wird soll Makro12 abgearbeitet werden.
Wenn ROS steht und BE angewählt wird soll Makro13 abgearbeitet werden.
Wenn ROS steht und BE angewählt wird soll Makro13 abgearbeitet werden.
End Sub
folgende Makros funktionieren nicht (für ausgegebene Fehler siehe weiter unten Thread mit Beginn um 15:30.
Public vorher As Integer

Private Sub ComboBox1_Change()
Dim jetzt As Integer
jetzt = ComboBox1.Value
If jetzt = 1 And vorher = 0 Then Call Makro11
If jetzt = 2 And vorher = 0 Then Call Makro11
If jetzt = 0 And vorher = 1 Then Call Makro12
If jetzt = 2 And vorher = 1 Then Call Makro12
If jetzt = 0 And vorher = 2 Then Call Makro13
If jetzt = 1 And vorher = 2 Then Call Makro13
vorher = ComboBox1.Value
End Sub


Private Sub ComboBox1_Change()
Static wert
Select Case ComboBox1.Value & wert
Case "10", "20"
makro10
Case "01", "21"
makro11
Case "02", "12"
makro12
End Select
wert = ComboBox1.Value
End Sub

Wäre sehr dankbar für Hilfe, da dies das letzte grosse Problem in meinem selbstgebastelten Pseudoprogrämmli ist.
vielen vielen Dank für allfällige Hilfe
thomas

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: vergangenheitsorientiertes Knacknuss-Makro
Matthias
Hallo Thomas,
ich denke mal du musst in der Abfrage die WERTE angeben und keinen Index (oder was das mit 0,1,2 sein soll).
If jetzt = "Gew" And vorher = "BE" Then Call Makro11 'so in der Art
Gruß Matthias
Fehler: Typen unverträglich; Laufzeitf. 13
thomas
Hallo Matthias,
klappt einfach irgendwie nicht. Ich weiss nicht wo der Haken liegt...Habe nun das Ganze wie unten angepasst:
Gruss thomas
Public vorher As Integer

Private Sub ComboBox1_Change()
Dim jetzt As Integer
jetzt = ComboBox1.Value
If jetzt = "Soll-Gewinn" And vorher = "Break-even" Then Call Makro11
If jetzt = "Soll-ROS" And vorher = "Break-even" Then Call Makro11
If jetzt = "Break-even" And vorher = "Soll-Gewinn" Then Call Makro12
If jetzt = "Soll-ROS" And vorher = "Soll-Gewinn" Then Call Makro12
If jetzt = "Break-even" And vorher = "Soll-ROS" Then Call Makro13
If jetzt = "Soll-Gewinn" And vorher = "Soll-ROS" Then Call Makro13
vorher = ComboBox1.Value
End Sub

Anzeige
AW: Fehler: Typen unverträglich; Laufzeitf. 13
Martin
Hallo Thomas,
die Dim Anweisungen sind falsch, nimm VARIANT statt INTEGER, also
Public vorher As Variant
Private Sub ComboBox1_Change()
Dim jetzt As Variant
usw.
Der Code muß selbstverständlich auch im Klassenmodul der Tabelle und nicht in einem "normalen" Modul abgespeichert sein.
Gruß
Martin Beck
Wo überall muss Code sein?
thomas
Hallo,
habe den Code auf das Tabellenblatt geschrieben, dort habe ich auch die Makros11-13. Nun habe ich neu noch ein Klassenmodul eingefügt und dort den ComboBox Code auch noch eingefügt und auf dem Tabellenblatt gelöscht. Wo genau muss welcher Code stehen?
thomas
Anzeige
AW: Wo überall muss Code sein?
Martin
Hallo Thomas,
Code für Makro11-13 in ein "normales" Modul.
Public vorher As Variant
Private Sub ComboBox1_Change()
Dim jetzt As Variant
usw.
darf nicht in die Tabelle geschrieben werden, sondern gehört in das sog. Klassenmodul der relevanten Tabelle. Dieses Klassenmodul existiert bereits und muß von Dir nicht neu angelegt werden.
Nehmen wir mal an, die Tabelle wäre "Tabelle1". Wechsle mit ALT-F11 in die Entwicklungsumgebung. Normalerweise solltest Du links oben einen Baum sehen ähnlich dem Windowsexplorer. Dort findest Du einen Eintrag, der ungefähr so aussieht:
Tabelle1(Tabelle1)
Darauf doppelklicken. Es öffnet sich rechts ein Fenster und hier kopierst Du den Code hin.
Gruß
Martin Beck
Anzeige
Public vorher As Variant wird nicht erkannt.
thomas
Hallo Martin,
Irgendwie habe ich den Eindruck, dass das Public vorher As Variant nicht als Code zugehörig zum Makro erkannt wird. In der Entwicklungsumbgebung gibts nämlich automatisch einen Strich wie dargestellt (durchgezogen). Könnte das ein Hinweis zur Lösung sein?
Public vorher As Variant
----------------------------------------------------------------
Private Sub ComboBox1_Change()
Dim jetzt As Variant
jetzt = ComboBox1.Value
usw.
Beste Grüsse
thomas
Der Strich ist korrekt (mit Text)
Martin
... lade die Datei mal hoch, falls es weiterhin nicht klappt.
Gruß
Martin Beck
Datei hochladen etc.
thomas
Hallo Martin,
die Datei ist ziemlich gross (gegen2MB); dazu sind die Daten recht sensitiv (Finanzdaten). Ich möchte also wenn möglich das File nicht hochladen. Falls ich aber dieses letzte Problem nicht lösen kann, werde ich die Datei aufs Wesentliche reduzieren und hochladen. Ich bin am verzweifeln und weiss einfach nicht, warum es nicht funktioniert. Aber du hast das Problem sollte schon lösbar sein, oder? Ich hab mir noch folgendes überlegt: Vielleicht ist in meiner Erklärung nicht rübergekommen, dass ich im Fallfenster z.B. von Break-even auf Soll-Gewinn umstelle und also der alte Wert wie kurzzeitig gespeichert werden müsste, da ja dann je nach dem von welcher Position aus ich auf die andere Position wechsle unterschiedliche Makros aufgerufen werden sollen. Und das ist vielleicht einfach nicht möglich? Wäre noch dankbar, wenn Du mir kurz sagen könntest, ob du meine Erklärung dahingehend verstanden hast und glaubst, dass das realisierbar ist.
Besten Dank für deine Hilfe auch wenns bis jetzt nicht geklappt hat.
thomas
Anzeige
AW: Datei hochladen etc.
Martin
Hallo Thomas,
ich habe den Code getestet und es funktioniert (im Prinzip). Beschreibe noch einmal genau, wo Du welchen Code stehen hast.
Gruß
Martin Beck

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige