![]() |
Betrifft: Objektvariable an Prozedur übergeben
von: Dennis
Geschrieben am: 28.10.2014 14:36:11
Hallo zusammen,
ich möchte in einem simplen Programm ein Objektvariabel an eine Prozedur übergeben, Allerdings bekomme ich immer eine Fehlermeldung, Laufzeitfehler 438.
Public Blatt As WorksheetSub Namen_Auflistung()
Dim i, y, a As Integer
i = 0
For Each Blatt In Worksheets
If Blatt.Name = "9428" Then
GoTo Weiter
End If
i = i + 1
Next
Weiter:
For y = Worksheets.Count To i + 1 Step -1
Set Blatt = Worksheets(y)
Worksheets("Gesamtersparnis").Cells(y - 1, 2) = Blatt.Name
Zelle_finden (Blatt)
Next
End Sub
Sub Zelle_finden(ByVal Blatt As Worksheet)
Dim Name As String
Dim Spalte, Zeile As Integer
Name = "Ersparnis Depotbankgebühr"
Set Zelle = Blatt.Range("A1:z100").Find(Name)
Spalte = Zelle.Row
Zeile = Zelle.Column
End Sub
Kann mir jemand meinen Fehler bitte meinen Fehler erklären? Danke im voraus.
Gruss Dennis
![]() ![]() |
Betrifft: AW: Objektvariable an Prozedur übergeben
von: ChrisL
Geschrieben am: 28.10.2014 14:46:47
Hallo Dennis
Folgendes solltest du löschen:
Public Blatt As Worksheet
Da du die Variable übergibst, brauchst du diese nicht noch als Public zu deklarieren. Warum genau die Fehlermeldung kommt kann ich auch nicht sagen :)
cu
Chris
![]() ![]() |
Betrifft: AW: Objektvariable an Prozedur übergeben
von: Cedric
Geschrieben am: 28.10.2014 15:21:06
Täusche ich mich, oder fehlt da ein Call?
Call Zelle_finden (Blatt)
![]() ![]() |
Betrifft: AW: Objektvariable an Prozedur übergeben
von: Dennis
Geschrieben am: 28.10.2014 15:34:32
Hallo Cedric,
vielen Dank für den Hinweis. Mit der Call-Anweisung übernimmt er die Objektvariable. Bin bisher immer davon ausgegangen das Call optional ist.
Merci
![]() ![]() |
Betrifft: ohne Call
von: Rudi Maintaire
Geschrieben am: 28.10.2014 16:02:33
Hallo,
dann auch ohne ()
Zelle_finden BlattGruß
![]() ![]() |
Betrifft: AW: Objektvariable an Prozedur übergeben
von: Daniel
Geschrieben am: 28.10.2014 21:27:46
Hi
"Call" ist auch optional.
Du kannst das Makro mit oder ohne Call aufrufen.
Wenn du Call verwendest, müssen die Parameter des aufgerufenen Markos in Klammern gesetzt werden.
Wenn du auf Call verzichtest und das Marko direkt aufrufst, darfst du keine Klammern verwenden.
Richtig ist:
Call Zelle_finden(Blatt)
Zelle_finden Blatt
Call Zelle_finden Blatt
Zelle_finden(Blatt)Gruß Daniel
![]() ![]() |
Betrifft: Meinst du, Dennis hätte Rudis 5,5 h frühere AW ...
von: Luc:-?
Geschrieben am: 29.10.2014 10:42:02
…nicht verstanden, Daniel,
oder kämpfst du nach Hajos Vorbild um den MVP…? ;->
Wahrscheinlicher ist doch, das Dennis schon Rudis AW gar nicht mehr gelesen oder einfach nur zK genommen hat und ein FeedBack nicht für nötig hält. Warum dann die längst „kalte Suppe“ noch mal aufwärmen…? Langeweile?
Gruß, Luc :-?
![]() ![]() |
Betrifft: AW: Meinst du, Dennis hätte Rudis 5,5 h früher ...
von: Daniel
Geschrieben am: 29.10.2014 10:51:05
danke für die Zurecktweisung mein Forumspolizist.
btw was ist ein MVP?
warum sollte man darum kämpfen müssen und wie macht man das?
würde mich untertänigst über eine Aufklärung von dir freuen.
(aber nur, wenn du sie selber in deinem unnachahmlichen Schreibstil formulierst)
![]() ![]() |
Betrifft: Schau auf Hajos WebSite nach! owT
von: Luc:-?
Geschrieben am: 03.11.2014 01:13:33
:-?
![]() |