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

Excel cannot complete this task.....

Excel cannot complete this task.....
abu
Hallo Zusammen,
habe dank der Mithilfe dieses Forums ein Makro gebastelt das auf eine geschlossene Date eine S-Verweis startet:
vErgebnis = ExecuteExcel4Macro("VLOOKUP(" & sSuchwert & "," & sFormelString & ",10,FALSE)")
Das Makro ist so aufgebaut das er (pro Woche eine Datei) die aktuelle Woche berechnet und rueckwaerts (also mit der aktuellen Woche) alle Dateien durchsucht bis er einen Treffer findet.
Beim testen hab ich nun mal eine Wert suchen lassen der erst in Woche 3 steht. Bei Woche 21 gibt er folgende Fehlermeldung aus:
Excel cannot complete this task with available resources. Choose less data or close other applications.
Suchwert ist eine 10-Stellige Zahl.
Kann man diese Problem irgendwie loesen? Vllt. den Speicher nach jedem Schleifendurchlauf leeren oder so...?
Wuerde mich ueber Hilfe freuen.
Gruss
Abu

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Excel cannot complete this task.....
13.10.2010 14:37:13
Luschi
Hallo Abu,
wenn ich diese Fehlermeldung mal google, dann kommt dieser Link:
http://support.microsoft.com/kb/331863
Gruß von Luschi
aus klein-Paris
AW: Excel cannot complete this task.....
13.10.2010 15:26:15
abu
Hallo Luschi aus klein-Paris (und wo soll das sein?),
die Suchdateien sind weder shared noch prtected und ich arbeite mit Excel 2003 nicht wie im Artikel angegeben 2002.
Also ich glaube nicht das das mein Problem loest.
Hast Du noch eine andere Idee?
Gruesse
abu
Hat S-Verweis grenzen?
13.10.2010 16:23:19
abu
Hallo Zusammen,
Da er ja immer bei einer bestimmten Datei haengen bleibt, habe ich mir die mal angeschaut.
Ich stelle fest, dass alle Datei ca. 5000 Zeilen haben, bis auf ein paar Ausnahmen. Die wo er stecken bleibt aber mehr als 7000.
Hab diese mal auf 5000 gekuerzt und dann blieb er bei einer Datei stecken die 9000 Zeilen hat.
Wo liegt denn nun das Problem? Beim Sverweis selber? Oder an meinem Speicher?
Merkwuerdig ist auch das ich gestern schon Testlaeufe gemacht habe und er nicht gemuckt hat.
Hoffentlich hat jemand eine Idee.
Gruss
Abu
Anzeige
AW: Hat S-Verweis grenzen?
13.10.2010 18:20:29
Tino
Hallo,
ich gehe mal davon aus wie in dem anderen Beitrag, dass Du die Daten über VBA rein holst.
Unter xl2003 funktioniert dies ab einer bestimmten Datenmenge nicht mehr,
xl2007 kann damit besser umgehen.
Ich denke Excel behält sich ein größeres Stück vom Speicher für seine Berechnungen.
Vorschlag wäre eine Hilfszelle für diese Abfrage irgendwo einzubauen (über VBA) und dies über normale Formel auslesen zu lassen, diese Hilfszelle kannst Du ja wieder löschen.
Gruß Tino
AW: Hat S-Verweis grenzen?
14.10.2010 08:36:26
abu
Hallo Tino,
deine Annahme ist richtig. Wenn ich deinen Loesungsansatz nehme, dann muss ich aber die Suchdatei oeffnen oder nicht?
Hast Du eine Ahnung ab welcher Zeilenzahl die S-Verweis-Funktion nicht mehr laeuft oder ist das vom Speicher abhaengig?
Gruss
Abu
Anzeige
AW: Hat S-Verweis grenzen?
14.10.2010 09:25:43
Tino
Hallo,
ich denke dies ist vom speicher abhängig.
Bei mir Steigt er bei unter xl2003 mit der ExecuteExcel4Macro Variante im VBA bei etwa 5000 Zeilen aus.
Wenn ich die Formel in eine Zelle über VBA schreibe, komme ich bis etwa 15000 Zeilen.
In beiden Fällen ist die Datei in der gesucht wird geschlossen, ist Sie offen geht´s über alle Zeilen.
In xl2007 gibt es hingegen bei mir keinerlei Probleme egal ob offen oder nicht.
Gruß Tino
ein Vorschlag habe ich noch...
14.10.2010 10:25:10
Tino
Hallo,
öffne die Datei in eine anderen Application Schreibgeschützt und unsichtbar.
Suche die Daten und schließe diese wieder.
Damit sollte das Problem mit dem speicher vom Tisch sein.
Sub Schaltfläche1_KlickenSieAuf()
Dim sPfad$, sDatei$, sTab$, sRange$, vSuchwert$
Dim vErgebnis, oApp As Excel.Application, rngFund As Range
Dim sPath$

sPath = ThisWorkbook.Path
sPath = IIf(Right$(sPath, 1) = "\", sPath, sPath & "\")
sPath = sPath & "Express file\"

sPfad = sPath 'Pfad 
sDatei = "2010 Week 38.xls" 'Datei 
sTab = "Sheet1" 'Tabelle 
sRange = Range("I:I").Address 'Suchbereich 
vSuchwert = "7772032554" 'Suchwert 

Set oApp = New Excel.Application

With oApp.Workbooks.Open(sPfad & sDatei, ReadOnly:=True)
    With .Sheets(sTab)
        vErgebnis = True
        Set rngFund = .Range(sRange).Columns(1).Find(What:=vSuchwert, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
        
        If Not rngFund Is Nothing Then
            vErgebnis = rngFund.Offset(0, 2)
        End If
    End With
    .Close False
End With

oApp.Quit
Set oApp = Nothing

If Not TypeName(vErgebnis) = "Boolean" Then
    MsgBox "Ergebnis: " & vErgebnis, vbInformation
Else
    MsgBox "Suchwert: " & vSuchwert & " wurde nicht gefunden!", vbExclamation
End If

End Sub
Gruß Tino
Anzeige
Danke
14.10.2010 15:30:49
abu
Hallo Tino,
vielen Dank fuer die Muehen die Du dir gemacht hast.
Habe noch keine Zeit gehabt es zu testen aber werde ich alsbald machen.
Beste Gruesse
Abu
Autofilter setzen
19.10.2010 10:59:55
abu
Hallo Tino und auch Alle,
danke fuer deinen Code. Funktioniert 1a.
Nun moechte ich ich gerne einen Autofilter setzten da der Suchwert in der Datei haeufuger vorkommen kann. Macht er aber nicht. Hast Du eine Idee warum ich immer wieder eine Fehlemeldung bekomme?
Do
Set oApp = New Excel.Application
sDatei = "2010 Week " & woche & ".xls" 'Datei
With oApp.Workbooks.Open(sPfad & sDatei, ReadOnly:=True)
With .Sheets(sTab)
vErgebnis = True
Set rngFund = .Range(sRange).Columns(1).Find(What:=vSuchwert, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not rngFund Is Nothing Then
vErgebnis = rngFund.Offset(0, 6)
Range("C1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=vSuchwert
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row, Rows.Count)
UserForm5.ListBox1.List = .Range("I2:I" & loLetzte).Value
End If
End With
.Close False
End With
oApp.Quit
Set oApp = Nothing
woche = woche - 1
Loop Until TypeName(vErgebnis) "Boolean" Or woche = 0
Oder ist es vllt. klueger einfach den nachsten Treffer zu suchen? Wenn ja wie uebergebe ich diese Daten dann?
Beste Gruesse
Abu
Anzeige
geloest aber sehr umstaendlich, 2 Fragen
19.10.2010 16:32:28
abu
Hallo Zusammen,
nach gefuehlten 15 Stunden habe ichs jetzt soweit das es funktioniert. Wohl sehr umstaendlich.
Zwei Fragen hab ich da noch:
Warum kann ich denn den Code fuer die Filterfunktion nicht in der unsichtbaren geoeffneten Datei anwenden? Bekomme da immer eine Fehlermeldung.... Ich loese das indem er nochmals diese Datei oeffnet aber eigentlich will ich das nicht.
Da ich mir nicht zu helfen wusste habe ich die gefilterten Daten ins Arbeitsblatt kopiert. Sie dann in Array gelesen und dann mit einer Schleife in die Textbox. Geht das nicht auch anders/besser?
Hoffe das hier jemand helfen kann.
Beste Gruesse
Abu
Do
Set oApp = New Excel.Application
sDatei = "2010 Week " & woche & ".xls" 'Datei
With oApp.Workbooks.Open(sPfad & sDatei, ReadOnly:=True)
With .Sheets(sTab)
vErgebnis = True
Set rngFund = .Range(sRange).Columns(1).Find(What:=vSuchwert, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not rngFund Is Nothing Then
vErgebnis = rngFund.Offset(0, 6)
End If
End With
.Close False
End With
oApp.Quit
Set oApp = Nothing
woche = woche - 1
Loop Until TypeName(vErgebnis) "Boolean" Or woche = 0
If Not TypeName(vErgebnis) = "Boolean" Then
woche = woche + 1
Pfad1 = "xxxxxxx"
Workbooks.Open Filename:=Pfad1
With Worksheets("Sheet1")
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=vSuchwert
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row, Rows.Count)
Range("A2:A" & loLetzte).Copy
Range("X1:X" & loLetzte).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
Range("I2:I" & loLetzte).Copy
Range("Y1:Y" & loLetzte).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
True, Transpose:=False
Selection.AutoFilter
leZeile = CLng(Range(ActiveSheet.Range("X:X").Find(What:="*", _
After:=Range("X65536"), LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Address).Row)
For x = 1 To leZeile
ReDim Preserve BereichJD(x)
BereichJD(x) = Range("X" & x)
Next x
For x = 1 To leZeile
geber = BereichJD(x) & vbLf
nehmer = nehmer & geber
Next x
UserForm7.TextBox1.Value = nehmer
For x = 1 To leZeile
ReDim Preserve BereichDel(x)
BereichDel(x) = Range("Y" & x)
Next x
nehmer = ""
geber = ""
For x = 1 To leZeile
geber = BereichDel(x) & vbLf
nehmer = nehmer & geber
Next x
Workbooks("2010 Week " & woche & ".xls").Close SaveChanges:=False
UserForm7.TextBox2.Value = nehmer
UserForm7.Label2.Caption = vSuchwert
UserForm7.Show
End With
'If Not TypeName(vErgebnis) = "Boolean" Then
' 'MsgBox "Ergebnis: " & vErgebnis, vbInformation
' UserForm5.Show
Else
MsgBox "Suchwert: " & vSuchwert & " wurde nicht gefunden!", vbExclamation
End If
End Sub
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige