Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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
Laufzeitfehler 1004 - Select-Methode bei Range
17.04.2009 13:12:05
Steffen
Hi zusammen,
habe ein minder wichtiges Problem mit einer Sortierung, die ich im Anschluss an das Füllen einer Liste vornehmen möchte.
Habe schon ein paar Forenbeiträge durchforstet und bei mir scheint es nicht nur das übliche Problem zu sein, dass der Pfad nicht genau angegeben wird.
Hier mein Code

Private Sub CommandButton1_Click()
With Sheets("Cutoff-Time Datenbank")
Startreihe = .Range("Q1").Value
Dim Uebereinstimmung As Boolean
Dim Uebereinstimmung_Val As Integer
If Sheets("Eingabe").Range("A2").Value = "" Or Sheets("Eingabe").Range("B2").Text = " _
xyz.." Or Sheets("Eingabe").Range("C2").Text = "xzy..." Or Sheets("Eingabe").Range("D2").Text = "yzx..." Or Sheets("Eingabe").Range("E2").Text = "zxy..." Then
MsgBox ("Bitte Zeile 2 komplett ausfüllen")
Exit Sub
End If
For i = 2 To 500
If Sheets("Eingabe").Range("B2").Value = .Cells(i, 1).Value And Sheets("Eingabe" _
).Range("C2").Value = .Cells(i, 2).Value And Sheets("Eingabe").Range("D2").Value = .Cells(i, 3).Value And Sheets("Eingabe").Range("E2").Value = .Cells(i, 4).Value Then
' Vergleicht  "Eingabe".Zeile2 mit der Datenbank
Uebereinstimmung = True
Uebereinstimmung_Val = i
Exit For
End If
Next
If Uebereinstimmung = False Then ' "Eingabe".Zeile2 übertragen, Zähler (in  _
Spalte E) auf 1 setzen, WKN schreiben
.Range("A" & Startreihe).Value = Sheets("Eingabe").Range("B2").Value
.Range("B" & Startreihe).Value = Sheets("Eingabe").Range("C2").Value
.Range("C" & Startreihe).Value = Sheets("Eingabe").Range("D2").Value
.Range("D" & Startreihe).Value = Sheets("Eingabe").Range("E2").Value
.Range("E" & Startreihe).Value = 1
.Range("F" & Startreihe).Value = Sheets("Eingabe").Range("A2").Value
Else
If .Range("E" & Uebereinstimmung_Val).Value > 2 Then ' mehr als 2 Werte, _
dann WKNs löschen und Zähler um eins hoch
.Range("F" & Uebereinstimmung_Val & ":H" & Uebereinstimmung_Val). _
ClearContents
.Range("E" & Uebereinstimmung_Val).Value = .Range("E" &  _
Uebereinstimmung_Val).Value + 1
End If
If .Range("E" & Uebereinstimmung_Val).Value = 2 Then ' schon 2 Werte,  _
dann WKN notieren und Zähler um eins hoch
If Sheets("Eingabe").Range("A2").Value  .Range("F" &  _
Uebereinstimmung_Val).Value And Sheets("Eingabe").Range("A2").Value  .Range("G" & Uebereinstimmung_Val).Value Then
.Range("H" & Uebereinstimmung_Val).Value = Sheets("Eingabe"). _
Range("A2").Value
.Range("E" & Uebereinstimmung_Val).Value = .Range("E" &  _
Uebereinstimmung_Val).Value + 1
Else
MsgBox ("Wert wurde schon eingetragen")
End If
End If
Debug.Print Uebereinstimmung_Val
Debug.Print Sheets("Eingabe").Range("A2").Value
Debug.Print .Range("F" & Uebereinstimmung_Val).Value
If .Range("E" & Uebereinstimmung_Val).Value = 1 Then ' schon 1 Wert,  _
dann WKN notieren und Zähler um eins hoch
If Sheets("Eingabe").Range("A2").Value  .Range("F" &  _
Uebereinstimmung_Val).Value Then
.Range("G" & Uebereinstimmung_Val).Value = Sheets("Eingabe"). _
Range("A2").Value
.Range("E" & Uebereinstimmung_Val).Value = .Range("E" &  _
Uebereinstimmung_Val).Value + 1
Else
MsgBox ("Wert wurde schon eingetragen")
End If
End If
End If
End With
ActiveWorkbook.Sheets("Cutoff-Time Datenbank").Range("A2:H200").Select
Selection.Sort Key1:=Sheets("Cutoff-Time Datenbank").Range("A2"), Order1:=xlAscending,  _
_
Key2:=Sheets("Cutoff-Time Datenbank").Range("B2"), Order2:=xlAscending,  _
_
Key3:=Sheets("Cutoff-Time Datenbank").Range("C2"), Order3:=xlAscending,  _
_
Header:=xlNo, MatchCase:=False
ActiveWorkbook.Sheets("Cutoff-Time Datenbank").Range("A1").Activate
Application.CutCopyMode = False
Debug.Print "Debug beendet"
End Sub


Alles bis auf das Sortieren funktioniert wunderbar. Beziehungsweise funktioniert es nur hin und wieder nicht. Wenn ich die Range ein wenig hin und her verändere (auch mal nur eine Zelle angebe) dann klappt es plötzlich wie es soll. Nur nach dem Neustart erhalte ich wieder einen Fehler.
Desweiteren scheint es mir fast so, dass wenn ich diesen Fehler erhalte, er schon im stark gekürzten Code


Private Sub CommandButton1_Click()
With Sheets("Cutoff-Time Datenbank")
End With
ActiveWorkbook.Sheets("Cutoff-Time Datenbank").Range("A2:H200").Select
End Sub


auftaucht. (Btw. Hatte das Sortieren nachdem es anfangs schon nicht geklappt hatte aus der With-Klammer herausgenommen)
Vielen vielen Dank für die Hilfe!
Steffen

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 - Select-Methode bei Range
17.04.2009 13:46:13
Rainer
Änder mal ab auf folgt:
ActiveWorkbook.Sheets("Custoff-Time Datenbank").Activate
Range("A2:H200").Select
Sehe bei Dir nämlich auf die Schnelle nix wo das Sheet aktiviert wird und select funktioniert nur wenn das Sheet auch aktiv ist.
Hilfts?
Gruß
Rainer
AW: Laufzeitfehler 1004 - Select-Methode bei Range
17.04.2009 14:16:35
Steffen
Habe deinen Code noch um folgendes erweitert
ActiveWorkbook.Sheets("Cutoff-Time Datenbank").Activate
Sheets("Cutoff-Time Datenbank").Range("A2:H200").Select
und damit funktioniert es im Moment. Er scheint zwischen den Schritten schon wieder zu vergessen um welches Sheet es sich handelt.
Vielen Dank!!
Schöne Grüße,
Steffen
Anzeige
AW: Laufzeitfehler 1004 - Select-Methode bei Range
17.04.2009 17:27:48
Rainer
Das Problem dabei ist, dass Select und Activate unterschiedliche Auswirkungen haben.
Nur weil Du das Sheet per Select auswählst, weiß Excel zwar wo es sich die Daten her holen muss, aber
das Sheet ist eben noch nicht für einen Range - Select Zugriff bereit. Das wird es erst wenn es per Activate aktiviert wird.
Gruß
Rainer

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige