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

Fehlermeldung beim zweiten Durchlauf

Fehlermeldung beim zweiten Durchlauf
11.02.2015 14:34:32
Werner
Hallo!
Ich verstehe nicht, warum mein Code bei einem zweiten Durchlauf nicht funktioniert.
Public MA_Datensätze_Bereich As Variant
Public Type myType
a As String
End Type
Public Sub MA_Datensätze_suchen()
Dim I As Integer
Dim Anfangsblatt As Worksheet
Dim rZelle    As Range
Dim sFundst   As String
Dim Suchtext     As String
Dim sText     As myType
Dim reset_sText As myType
Dim MA_Datensätze  As Range
Dim rBereich_MA As Range
Set Anfangsblatt = Application.ActiveSheet
Suchtext = Environ("Username")
Worksheets("bearbeitete Fälle").Range("A2:Z1000").Clear
Application.Visible = True
For I = 1 To Application.Worksheets.Count - 4
Worksheets(I).Select
Range("A1").Select
sText = reset_sText
With ActiveSheet.Columns(ActiveCell.Offset(14, 13).Column)
Set rBereich_MA = Range("N14:N5000")
Set rZelle = rBereich_MA.Find(What:=Suchtext, LookAt:=xlWhole, LookIn:=xlValues) ', After: _
=.Cells(.Cells.Count))
If Not rZelle Is Nothing Then
Set rZelle = rBereich_MA.Find(What:=Suchtext, LookAt:=xlWhole, LookIn:=xlValues)
sFundst = rZelle.Address
Do
If MA_Datensätze Is Nothing Then
Set MA_Datensätze = .Range("A" & rZelle.Row)
sText.a = rZelle.Row
Else
Set MA_Datensätze = Union(MA_Datensätze, .Range("A" & rZelle.Row))
sText.a = sText.a & vbLf & rZelle.Row
End If
Set rZelle = rBereich_MA.Cells.FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
End If
If rZelle Is Nothing Then GoTo Weiter
If InStr(sText.a, vbLf) > 0 Then
MA_Datensätze.Select
MA_Datensätze.EntireRow.Select
MA_Datensätze.EntireRow.Copy
MA_Datensätze_Bereich = InStr(sText.a, vbLf)
Kopieren_MA_Datensätze
Else
End If
Blatt:
End With
Weiter:
Set rZelle = Nothing
Next I
Set MA_Datensätze = Nothing
Set rZelle = Nothing
Anfangsblatt.Activate
End Sub
Ich möchte damit Datensätze eines Users suchen und in ein anderes Blatt kopieren.
Das klappt auch beim ersten Durchlauf.
Wenn dann aber das 2. Blatt aktiviert wird, bleibt es hier stehen:
Set MA_Datensätze = Union(MA_Datensätze, .Range("A" & rZelle.Row))
Meldung 1004:
Die Methode 'Union' für das Objekt '_Global' ist fehlgeschlagen.
Was mache ich falsch?
Gruß und Danke!
Werner

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung beim zweiten Durchlauf
11.02.2015 16:16:01
Arthur
Hallo Werner.
Vermutlich liegt das daran, dass in der zweiten Schleife ein anderes Worksheet ausgewählt ist. In dem zweite Worksheet ist der benannte Bereich MA_Datensätze nicht definiert.
Gruß, Arthur

AW: Fehlermeldung beim zweiten Durchlauf
12.02.2015 06:54:31
Werner
Hallo Arthur
Danke für deine Antwort.
Wie kann ich das denn korrigieren?
Gruß
Werner

AW: Fehlermeldung beim zweiten Durchlauf
12.02.2015 13:52:27
Werner
Hallo
Ich habe eine Lösung gefunden...
Sub Suche_alle_Tabellen()
Dim Suchbegriff, NewWB, sh, i, ErsterTreffer
Dim Anfangsblatt As Worksheet
i = 1
Suchbegriff = Environ("Username")
For Each sh In ActiveWorkbook.Sheets
If sh.Visible Then
Set suche = sh.Range("N14:N5000").Find(Suchbegriff)
If Not suche Is Nothing Then
ErsterTreffer = suche.Address
Do
i = i + 1
suche.EntireRow.Copy ThisWorkbook.Sheets("bearbeitete Fälle").Range("A" & i)
Set suche = sh.Range("N14:N5000").FindNext(suche)
Loop While Not suche Is Nothing _
And suche.Address  ErsterTreffer
End If
End If
Next
Master_schliessen
Sortieren_MA_Datensätze
Worksheets(1).Activate
End Sub
Das macht genau das was ich möchte.
Gruß und Danke
Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige