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

Range an Sub/Funktion übergeben

Range an Sub/Funktion übergeben
27.02.2019 18:20:24
Maiserinio
Ich glaube nicht das ich auf ein ganz seltenes problem gestoßen bin um das sich die Codierer komplett neu kümmern müssen, sonder geheganz einfach davon aus, dass ich mehr tue als ich verstehe und somit einfach einen Fehler produziere:
ich würde gerne einfach nur eine Range Variable übergeben an eine Sub einer selbstkreierten Klasse, um anhand dieser das Objekt mit Daten zu füllen
Diesen *Haufen hab ich bis jetzt produziert, aber er behauptet "Objekt erforderlich" an der Stelle als die
Sub anhand des Objektes objJob aufgerufen wird:

Sub JobDealing()
Dim rngClimber As Range
Dim intLastWs As Integer
intLastWs = Workbooks(gStrMYWb).Worksheets.Count
Set rngClimber = Workbooks(gStrMYWb).Worksheets(intLastWs).Cells(2, 2)
While Not rngClimber = vbNullString
Dim objJob As New clsJob
objJob.AssignToNextTask (rngClimber)
Set objJob = Nothing
Set rngClimber = rngClimber.Offset(1, 0)
Wend
End Sub

gStrMYWb ist einfach nur der Name des Workbooks, könnte zu testzwecken also auch durch ThisWorkbook ersetzt werden(ich habe es nur drin gelassen, falss diese Annahme falsch ist)
in AssignToNextTask passiert bis jetzt noch NICHTS:
Sub AssignToNextTask(rngTester As Range)
End Sub

Mit (byref rngTester as range) habe ich es auch schon versucht..
Da dies mein erster Beitrag ist(Leser bin ich schon eine Weile),
möchte ich an dieser Stelle auch einmal Hallo und vielen Dank sagen!
Viele Grüße Maiserino

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range an Sub/Funktion übergeben
27.02.2019 18:40:22
Nepumuk
Hallo Maiserino,
durch die Klammern um die Variable wird sie zwangsweise ByVal übergeben. Damit übergibst du keinen Range sondern dessen Wert. Also, entweder die Klammer weg lassen, oder die Prozedur mit Call aufrufen.
Call objJob.AssignToNextTask(rngClimber)

Gruß
Nepumuk
AW: Range an Sub/Funktion übergeben
27.02.2019 19:11:30
Maiserinio
Vielen Vielen Dank!
Das hilft mir sehr viel weiter, und war mir einfach nicht bewusst!!
AW: Range an Sub/Funktion übergeben
27.02.2019 18:45:17
onur
"in AssignToNextTask passiert bis jetzt noch NICHTS" - was den sonst? Die Sub ist doch LEER.
Erkläre doch einfach mal, was der Code eigentlich machen soll.
Abgesehern davon - Sämtliche Dims gehören direkt am Anfang des Codes.
Anzeige
AW: Range an Sub/Funktion übergeben
27.02.2019 19:10:37
Maiserinio
Genau das wollte ich damit ja auch Aussgaen, nur als Absicherung das der Fehler nicht durch die eigentlich Funktion hervorgerufen wird,
was den programmierstil angeht sind da noch einige Fehler zu beheben, das war also ein guter Hinweis.
AW: Range an Sub/Funktion übergeben
27.02.2019 19:12:24
onur
Das waren NICHT die einzigen Fehler, aber du musst schon meine Frage beantworten.
AW: Range an Sub/Funktion übergeben
27.02.2019 19:33:23
Maiserinio
Ich versuche das Objekt mit Daten aus der übergebenen Stelle zu füttern(die Reihe wird danach Stück für Stück in Porperties des Objektes gespeichert.
Der Feler der das gesuchte zum scheitern brachte wurde von Nepumuk zielgenau gefunden und mit Erklärung behoben.
Was ist den sonst noch an Fehlern enthalten?
Anzeige
AW: Range an Sub/Funktion übergeben
27.02.2019 19:51:03
onur
Ich wollte eigentlich nur wissen, wozu das Ganze dient und nicht die Beschreibung deines Codes - den Code kann ich selber lesen.
Also: Was genau soll der Code machen?
AW: Range an Sub/Funktion übergeben
27.02.2019 19:57:41
Maiserinio
Der Code den ich gepostet hatte, soll ganz genau das machen was ich geschrieben habe (und nach der Korrektur von Nepumuk, nun wohl auch gecodet habe).
Alles weitere passiert in anderen Teilen des Codes..(objkete werden in Collection eingetragen, Eigeschaften werden durch Rasterfilterung erweitert und präzisiert..)
Aber ich versteh nicht so ganz was das mit der Problemstellung zu tun haben soll? Bzw. was genau du wissen willst?
Anzeige
AW: Range an Sub/Funktion übergeben
27.02.2019 20:04:12
onur
Hi Maiserinio,
Ist schon ok - Wenn du es nicht verraten willst.
Ich habe mich nur gefragt, warum Jemand mit "VBA-bescheiden" glaubt, er müsse mit Objekten, Properties und Collections herumhantieren, wenn er nicht mal weiss, wo in einem Sub DIMs stehen sollten oder wie man Ranges an eine Sub übergibt..
Meine Vermutung war halt, daß du Alles vieeeel zu kompliziert angehst.
Aber, wie gesagt, wenn du es nicht verraten möchtest...
Gruß
Onur
AW: Range an Sub/Funktion übergeben
04.03.2019 03:31:51
Maiserinio
Hallo Onur,
mir ging es wirklich nicht darum dir persönlich Informationen vorzuenthalten, bloß darum, dass
ich nicht glaube das dir das ganze einen nutzen bringt. Ich bin sehr daran interessiert meine VBA-Kenntnisse zu verbessern und deswegen nehme ich jeden Tipp gerne mit.
Ich habe dir extra mal das gesamt Schema aufgezeigt was ich mir nachher vorgstellt habe wobei ich bis jetzt erst beim Dateiupload von der QuellListe bin. Wobei dieser mit Nepumuk's Fehlerkorrektur, dann auch funktionierte.
https://www.herber.de/bbs/user/128075.ppt
Meine mangelnde Ehrfahrung und Kenntnis lässt mich auch leider immer wieder mit Fragen hantieren ohne diese beantworten zu können aber die Fragestellung kommt mir dann immer sehr bald schon so unnötig komplex vor(was mich auch daran hindert gute Ergebnisse im Netz zu finden), dass ich sie gar nicht erst irgendwo stelle(hier bliebe mir auch nur das Internet (im Excelfall durch Herber vertreten), weswegen das ja auch meine aller erste Frage im Forum war.
Die Frage kreisen sehr oft um die Gefahr gleichzeitiger (sehr kurze) Zugriffe auf eine Datei (mehrere Bediendateien, eine Datenbankdatei). Was passiert wenn 2 Bediener in der gleichen Sekunde daten ändern? bzw. ja dann die Datenbankdatei gleichzeitig öffnen wollen?!
Und Geschwindigkeit, um erste die obegenannten Zugriffe so schnell wie möglich abzuhandeln um "Gleichzeitige Zugriffe" Nahezu unmöglich zu machen. Oder um Falls Größerer Tabellen durchforstet und umgearbeitet werden müssen den Gesamtprozess zu verkürzen.
Bei diesemaktuellen "handlingSystem" lasse ich für jeden Auftrag(Datensatz in einer Reihe, mit ca. 40 Eigenschaften") ein Objekt einer eigenen Klasse erzeugen und in einer Collection speichern, um Bei etwaigen erweiterungen oder ähnlichem vollen Zugriff auf sämtliche Informationen zu haben.
Das schien mir zumindest sinnvoll... danach kann ich dann mit einer Routine die Collection in einen "Drucker schmeißen", der mir Stück für Stück jeden Auftrag wieder an einer anderen Stelle, (neu sortiert und mit ein paar Änderungen). wieder in mine Mappe einträgt.
Ob dieser Umweg (Zelle zu komplett nur als Variable ZellBezug zu andere Zelle) nachher den Prozess schneller oder langsamer macht weiß ich nicht. Über informationen darüber wäre ich aber sehr dankbar.
vielleicht kannst du mir dazu ja ein paar Anregungen geben.

mit freundlichen Güßen
Maiserino

Anzeige
AW: Range an Sub/Funktion übergeben
04.03.2019 12:30:36
Maiserinio
Das: (Zelle zu komplett nur als Variable ZellBezug zu andere Zelle)
sollte eigentlich heißen:
(Daten in Zellen(in einer Reihe) werden in Eigenschaften einer Klasse komplett ohne Zellbezug gespeichert, soweit umgearbeitet wie nötig, in einer Collection zwischen gespeichert und dann wieder in Zellen (eine Reihe) ausgegeben)
AW: Range an Sub/Funktion übergeben
04.03.2019 17:55:16
onur
"vielleicht kannst du mir dazu ja ein paar Anregungen geben" - Gerne, aber dafür müßtest du die Excel-Datei posten, statt der Powerpoint-Bildchen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige