Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro bircht ab

Makro bircht ab
20.03.2006 15:03:40
Matthias
Hallo,
ich habe folgendes Problem: Ich habe einen Zelle, deren Text-Inhalt ich in 3 Teile aufspalte um daraufhin 2 Spalten zu suchen. Diese beiden Spalten sind im Text hintereinander aufgeführt und ich übergebene diese jeweils an eine Variable. Anschließend möchte ich diese beiden Spalten miteinander verrechnen. Die Übergabe der Spaltendefinitionen läuft soweit ganz gut und auch das Auffinden in der anderen Tabelle funktioniert.
Nur habe ich das Problem, dass das Makro abbricht, wenn ich diese kombinierte Zelle an den Anfang stelle, da ich diese Operation mit einem "END" abbreche und so die nachfolgenden Zellen nicht mehr gesucht wird. Beende ich diese Operation nicht mit "END", so erhalte ich eine Endlosschleife und das Programm hängt sich auf. Ich habe die Datei hier angehängt.
https://www.herber.de/bbs/user/32045.xls
Kommt von euch einer darauf, woran das liegen könnte?
Gibt es darüber hinaus eine Möglichkeit, die Bezüge "eleganter" in die gewünschten Zellen einzufügen? Momentan habe ich noch absolute Bezüge. Ich möchte auch keinen starren Bereich definieren, wo die Berechnung eingefügt werden soll. Stattdessen möchte ich anweisen können: in zeile 3, 5, 6 und 10 soll sie eingefügt werden.
Wäre super, wenn jm. von euch eine Idee hätte.
Grüße Matthias

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro bircht ab
20.03.2006 20:20:10
ChrisL
Hallo Matthias
Da du dich echt um eine Lösung zu bemühen scheinst, hier nochmals ein Hilfeangebot. Zuerst muss ich jedoch wiederholen, dass die Aufgabe absolut nicht reproduzierbar ist. Letztes mal dachte ich, das Problem steckt in der Funktion, inzwischen verstehe ich gar nichts mehr.
Mein Vorschlag wir beginnen bei Null. Erster Schritt, weg mit dem DialogSheet. Vorschlag im Anhang:
https://www.herber.de/bbs/user/32059.xls
Anschliessend bitte eins nach dem andern. Versuch die Aufgabe von Anfang an zu beschreiben, losgelöst vom Code.
Gruss
Chris

Private Sub CommandButton1_Click()
MsgBox ListBox1.ListIndex
' hier geht es weiter mit dem Code
End Sub


Private Sub CommandButton2_Click()
' schliesst das Userform
Unload Me
End Sub


Private Sub UserForm_Initialize()
Dim iZeile As Long, LetzteZeile As Long
' füllt die ListBox mit den Benutzern ab
With Worksheets("Layout")
LetzteZeile = .Range("A65536").End(xlUp).Row
For iZeile = 2 To LetzteZeile
' überprüft, ob Benutzer nicht bereits in der Liste enthalten (Tabellenfunktion ZÄHLENWENN in VBA)
If WorksheetFunction.CountIf(.Range("A2:A" & iZeile), .Cells(iZeile, 1)) = 1 Then _
ListBox1.AddItem .Cells(iZeile, 1)
Next iZeile
End With
End Sub

Anzeige
Makro bricht ab
20.03.2006 20:53:21
Matthias
Hallo Chris,
vielen Dank erstmal für deine Rückmeldung. Ich möchte in dem LAYOUT-Blatt Spalten definieren könnnen um in VARCOL Ausschnitte von Teilen aus VAR abbilden zu können. Dazu soll das Makro auf LAYOUT die Informationen hinter den Benutzern durchlaufen, die jeweilige Spalte in VAR suchen und dann auf VARCOL einen Bezug zur in VAR gefundenen Spalte herstellen. Die Bezüge sind nötig, da ich mit einem anderen Makro die Werte in VAR verändere. Nur so können sich ja auch die Werte in VARCOL entsprechend ändern.
Durch den Befehl GROWTH/2002/2005 möchte ich veranlassen, dass das Wachstum der beiden Spalten berechnet wird. Soll heissen (2005/2002)-1.
Dazu übergebe ich den String an Variablen, indem ich den inhalt zerlege. GROWTH soll die Berechnung anstoßen, und 2002 und 2005 wird an die Variablen zum Suchen übergeben.
Allerdings ist die Bezeichnung der Jahre hier optional, nur die Zeichenlänge von GROWTH wird so bleiben (es könnte z.B. auch heißen GROWTH/Q1.2004/Q2.2004) Den "Slash" habe ich als Trennzeichen benutzt.
War das verständlich genug, um nachzuvollziehen was ich meine? Melde dich andernfalls nochmal.
Viele Grüße
Matthias
P.S: in meiner ursprünglichen Lösung sah ich allerdings nur das Problem in der Endlosschleife. Alles andere hat ja soweit gepasst. Die Spalten wurden gefunden und den String der einzelnen Spalten habe ich so aufgeteilt und an die Variablen übergeben, dass die Berechnung gestimmt hat. Das einzige Problem war nur, dass das Makro nach dem Einfügen der Abweichung sofort auf "End If" springt, anstatt die darunterliegenden Befehlszeilen zu durchlaufen. Daraufhin läuft das Makro in dieser Schleife endlos weiter. Würde ich hier hinbekommen, dass die Endlosschleife umgangen wird, wäre mein Problem denke ich gelöst. Dann hättest du auch nicht die Mühe, das alles neu aufzubauen. Schau einfach nochmal rein und geh das Programm mit F8 durch. Das ganze Problem ist nur, dass das Programm die Befehlszeilen überspringt und dann in die Endlosschleife kommt. Mehr "eigentlich" nicht.
Anzeige
Hier noch die Datei zum aktuellen Status Quo
20.03.2006 21:07:48
Matthias
Hi Chris,
hier nochmal die Datei zum aktuellen Stand, damit das Problem bei Benutzer "Z" auch so auftaucht, wie ich es beschrieben habe!! In der alten Version tauchte das Problem nämlich nicht so wie eben beschrieben auf, da ich seither was umgestellt habe.
https://www.herber.de/bbs/user/32066.xls
Grüße Matthias
AW: Hier noch die Datei zum aktuellen Status Quo
21.03.2006 00:12:41
Uwe
Hallo Matthias,
mit End bricht man keine Prozedur ab, denn damit macht man alles platt.
Dazu dient die Exit-Methode. Als z.B. Exit Sub, Exit Function, Exit Do.
Also: Du musst nur
End
durch
Exit Do
ersetzen, und es läuft.
Gruß Uwe
Anzeige
AW: Hier noch die Datei zum aktuellen Status Quo
21.03.2006 17:56:42
Matthias
Hallo Uwe,
wenn ich an der Stelle anstatt mit "END" mit "EXIT DO" abbreche habe ich aber das Problem, dass ich kein Ergebnis für den "GROWTH"-Teil bekomme, wenn dieser in der ersten Spalte des zu suchenden Bereichs steht. Dann wird diese Spalte einfach übersprungen. Wo muss ich aus der Befehlsfolge raus, damit alles so läuft wie es sein soll?
Grüße Matthias
Gelöst
21.03.2006 18:28:34
Matthias
Hallo,
ich habs hinbekommen. ich muss nach dem exit do die spalte einfach noch um 1 erhöhen.
Grüße Matthias
AW: Gelöst
21.03.2006 18:35:11
erledigt
o

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige