Forum des VBA-Tutorials

VBA Vlookup Laufzeitfehler 4 - Nicht genügend Speicher (VBA)

Maximilian, Mittwoch, 11. Januar 2017, 10:47 (vor 138 Tagen)

Hallo Zusammen,

ich verzweifel gerade ein wenig an der Umsetzung folgenden Codes:


Sub Aufbereitung_CN43()

'###############################################
Dim WBSFMB As Workbook, WBCN43 As Workbook
Dim ExportDatei As Variant
Dim text_Feld As String
Dim SuchProjekt As String
'###############################################


Set WBSFMB = ThisWorkbook
   
'DateiÖffnen Dialog anbieten
                            ChDrive "H"
                            ChDir "H:\CN43" 'nur ein Bsp-Pfad
                            ExportDatei = Application.GetOpenFilename("Excel-Dateien, *.xl*", , "Bitte wählen sie die aktuelle CN43-Auswertung aus:")
                            ExportDatei = CStr(ExportDatei)
                            
                            If ExportDatei = "Falsch" Then Exit Sub
                            Set WBCN43 = Workbooks.Open(ExportDatei)
                            
      
' löschen aller Projekte mit dem Status TECO/FMBL/CLSD
                            lastZ = WBCN43.Sheets("Tabelle1").Range("A65536").End(xlUp).Row
                        
                            For i = lastZ To 2 Step -1
                                text_Feld = WBCN43.Sheets("Tabelle1").Cells(i, "F")      'Auswahl des Feldes das überprüft werden soll
                                If InStr(text_Feld, "TECO") Or InStr(text_Feld, "FNBL") Or InStr(text_Feld, "CLSD") > 0 Then Rows(i).Delete 'Zeile wird gelöscht, wenn in der Statusspalte CLSD/FNBL/TECO auftaucht
                            Next
        
' Cycle Meetingdatei wird geöffnet und als Cycledatei deklariert

                            vFile = "H:\PP_Daily_new.xlsm" 'nur ein Bsp-Pfad
                            Set WBCycledatei = Workbooks.Open(Filename:=vFile, ReadOnly:=True, UpdateLinks:=0)
                            
'Abgleich der P-Projekte in welchem Cycle diese sind:
                            WBCN43.Sheets("Tabelle1").Cells(1, "O") = "Cycle"
                            For i = 2 To lastZ
                            SuchProjekt = WBCN43.Sheets("Tabelle1").Cells(i, "C")
                            SuchMatrix = WBCycledatei.Worksheets("3rd Party Meeting").Range("G:AV")
                            WBCN43.Sheets("Tabelle1").Cells(i, "O").Value = Application.WorksheetFunction.VLookup(SuchProjekt, SuchMatrix, 42, False)
                            Next


End Sub

Ziel ist es über den Vergleich in die Spalte O des Arbeitsblattes WBCN43.Sheets("Tabelle1") den Inhalt der Spalte AV aus dem Arbeitsblatt WBCycleDatei.Sheets("3rd Party Meeting") zu kopieren.

Vielen Dank für eure Hilfe bereits im Voraus

VBA Vlookup Laufzeitfehler 4 - Nicht genügend Speicher

Martin Asal, Mittwoch, 11. Januar 2017, 13:23 (vor 138 Tagen) @ Maximilian

Hallo Maximilian,

laut dem Betreff hast du also eigentlich nur ein Speicherproblem, ansonsten müsste es klappen. Dann verzichte doch auf Vlookup, und baue dort eine zweite Schleife ein:

For j = 2 to lastZ


Martin

VBA Vlookup Laufzeitfehler 4 - Nicht genügend Speicher

Maximilian, Mittwoch, 11. Januar 2017, 13:34 (vor 138 Tagen) @ Martin Asal

Gibt es eine Alternative zu Vlookup? Da nicht jedes Projekte der Datei A auch in der Suchmatrix B enthalten ist. Oder habe ich jetzt deine Antwort Missverstanden???

VBA Vlookup Laufzeitfehler 4 - Nicht genügend Speicher

Martin Asal, Mittwoch, 11. Januar 2017, 13:57 (vor 138 Tagen) @ Maximilian

Ich meinte, du kannst Vlookup per VBA nachbilden. Dazu musst du den letzten Abschnitt deines Codes umschreiben: Die Schleife for i = 2 to lastZ geht ja durch alle Einträge in WBCN43.Sheets("Tabelle1"). Innerhalb dieser Schleife baust du eine weitere Schleife, die durch WBCycledatei.Sheets("3rd Party Meeting") läuft und wenn dort der gesuchte Eintrag gefunden wurde, ihn entsprechend übernimmt.

Martin

RSS-Feed dieser Diskussion
powered by my little forum