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

Daten an Public rngFilterRange as Range übergeben

Daten an Public rngFilterRange as Range übergeben
06.04.2006 17:39:01
Jörg
Hallo ihr lieben,
ich habe folgendes Problem. Ich möchte in einer Tabelle (filter) verschiedene und vor allem verschieden lange Datensätze einlesen (Das klappt noch). Diese sollten dann an rngFilterRange übergeben werden, damit ich mir die Daten in einer ListBox anzeigen lassen kann.( Hab leider keine Ahnung, wie es anders geht). Beim Übergeben dieser Daten komm ich allerdings nicht weiter.
Dazu habe ich folgendes gemacht:
Set rngFilterRange = Range(Worksheets("filter").Cells(intZaehlerFilter, 1), Cells(intZaehlerFilter, 18))
Leider kommt dann die Fehlermeldung:
Laufzeitfehler 1004:
Die Methode ´Range`für das Objekt´_Global ist fehlgeschlagen.
Kann mir jemand sagen warum? Der ganze Code lautet:
------------
Public intVar As Integer
Public rngFilterRange As Range
------------

Private Sub CommandButton41_Click()
intVar = 1
Worksheets("filter").Visible = True
Worksheets("filter").Select
Selection.Delete
Unload Me
LfdNr_ermitteln ("PersonenDaten")
intDatenAnzahl = intLfdNrSearchResult
intDatenAnzahl = intDatenAnzahl - 1
For intZaehler = 3 To intDatenAnzahl + 2
Worksheets("PersonenDaten").Visible = True
Worksheets("PersonenDaten").Select
If Worksheets("PersonenDaten").Cells(intZaehler, 70).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 71).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 72).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 73).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 74).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 75).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 76).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 77).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 78).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 79).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 80).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 81).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 82).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 83).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 84).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 85).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 86).Value = True _
Or Worksheets("PersonenDaten").Cells(intZaehler, 87).Value = True Then
Range(Worksheets("PersonenDaten").Cells(intZaehler, 1), Cells(intZaehler, 18)).Select
Application.CutCopyMode = False
Selection.Copy
Worksheets("filter").Select
Cells(intvar, 1).Select
ActiveSheet.Paste
intvar = intvar + 1
End If
Next intZaehler
'*** Anzahl_ermitteln ("filter")
For intZaehlerFilter = 1 To 20000
If Worksheets("filter").Cells(intZaehlerFilter, 1).Value = "" Then
Exit For
End If
Next intZaehlerFilter
intZaehlerFilter = intZaehlerFilter - 1
'*** daten rngfilterrange zuordnen
Set rngFilterRange = Range(Worksheets("filter").Cells(intZaehlerFilter, 1), Cells(intZaehlerFilter, 18))
UF_gefilterte_Daten.Show
Worksheets("filter").Visible = False
Worksheets("PersonenDaten").Visible = False
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten an Public rngFilterRange as Range überge
06.04.2006 18:26:59
Ramses
Hallo
probiers mal so.
Anstelle von
Set rngFilterRange = Range(Worksheets("filter").Cells(intZaehlerFilter, 1), Cells(intZaehlerFilter, 18))
schreibst du
With Worksheets("Filter")
set rngFilterRange = .Range(.Cells(intZaehlerFilter, 1), .Cells(intZaehlerFilter, 18))
end With
Gruss Rainer
AW: Daten an Public rngFilterRange as Range überge
06.04.2006 18:29:33
ChrisL
Hallo Jörg
Set rngFilterRange = Range(Worksheets("filter").Cells(intZaehlerFilter, 1), Cells(intZaehlerFilter, 18))
Fällt mir auf, dass du einmal das Worksheet genau bezeichnest und dann wieder nicht.
Set rngFilterRange = Worksheets("filter").Range(Worksheets("filter").Cells(intZaehlerFilter, 1), Worksheets("filter").Cells(intZaehlerFilter, 18))
oder
With Worksheets("filter")
Set rngFilterRange = .Range(.Cells(intZaehlerFilter, 1), .Cells(intZaehlerFilter, 18))
End With
Der Code hat noch "Verbesserungspotenzial", deshalb hier ein paar Tipps:
If Worksheets("PersonenDaten").Cells(intZaehler, 70).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 71).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 72).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 73).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 74).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 75).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 76).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 77).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 78).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 79).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 80).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 81).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 82).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 83).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 84).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 85).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 86).Value = True _ Or Worksheets("PersonenDaten").Cells(intZaehler, 87).Value = True Then
Stellt die Frage, ob in dem Bereich ein Wert vorhanden ist. Zähle einfach die Werte mittels ANZAHL2 oder WorksheetFunction.CountA().
Dann dringend mit den Worksheets aufräumen z.B.
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Set WS1 = Worksheets("filter")
Set WS2 = Worksheets("PersonalDaten")
WS2.Visible = True
'etc
WS immer genau bezeichnen, weil...
z.B.
Range("A1") = "x"
ohne Worksheet-Bezeichnung programmierst du bezogen auf die gerade aktive Tabelle und das ist nicht immer die richtige (siehe weiter oben).
Noch ein Link zum Thema Select: https://www.herber.de/xlfaq/xlbasics/main_sel.htm
Schliesslich eine Abkürzung für den "Anzahl ermitteln" Teil:
intZaehlerFilter = Range("A20000").End(xlUp).Row
Mittels Variable Typ Long könntest du übrigens auf 65536 (maximale Zeilenzahl) erweitern. Darum hier noch was zu Variablen: https://www.herber.de/xlfaq/xlbasics/main_var.htm
Gruss
Chris
Anzeige
AW: Daten an Public rngFilterRange as Range überge
06.04.2006 20:40:02
Jörg
Hallo Rainer, Hallo Chris,
vielen lieben Dank für eure Hilfe. Klappt alles bestens.
Werde mich mal daran machen und wirklich ein wenig besser aufräumen :-)
Vielen Dank auch noch einmal für die Links, die werden mir bestimmt noch sehr hilfreich sein.
Viel Spaß noch.
Lieben Gruß Jörg
AW: Daten an Public rngFilterRange as Range überge
06.04.2006 20:40:16
Jörg
Hallo Rainer, Hallo Chris,
vielen lieben Dank für eure Hilfe. Klappt alles bestens.
Werde mich mal daran machen und wirklich ein wenig besser aufräumen :-)
Vielen Dank auch noch einmal für die Links, die werden mir bestimmt noch sehr hilfreich sein.
Viel Spaß noch.
Lieben Gruß Jörg
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige