Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Endlos Schleife

Forumthread: Endlos Schleife

Endlos Schleife
02.07.2024 08:19:33
Günther
Guten Morgen VBA Profis,

ich hoffe Ihr seid schon fit.
Mit meiner Datei/Makro produziere ich eine Endlos Schleife. Natürlich kommt dann die Meldung "Nicht genügend Arbeitsspeicher....".
Ich finde aber keinen Fehler. Wo liegt das Problem?

https://www.herber.de/bbs/user/170617.xlsm


Sub oez_uebersicht1()

Dim ws As Worksheet
Dim i As Integer
Dim z As Integer
Dim anztbl As Integer
Dim tbl As Integer

i = 3
z = 4
tbl = 1
anztbl = ThisWorkbook.Sheets.Count

For Each ws In Worksheets

If tbl >= anztbl Then Exit For

If ws.Name > "URL" And _
ws.Name > "START" And _
ws.Name > "OEZ_UEBERSICHT" And _
ws.Name > "URL_KOMMUNE" Then


Cells(i, "B") = ws.Name


Sheets(ws.Name).Select

Range("Table_Query__" & ws.Name & "[[#Headers],[Tag]]").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("OEZ_Uebersicht").Select
Range("B" & z).Select
ActiveSheet.Paste

i = i + 8
z = z + 8
tbl = tbl + 1

End If

Application.CutCopyMode = False

Next

End Sub


Grüße
Günther
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Endlos Schleife
02.07.2024 08:37:16
peter
Hallo

z.B.: Deine Tabelle heisst "Start" und nicht "START". Bei solchen Abfragen solltest Du UCASE verwenden.




If Ucase(ws.Name) > "URL" And _
Ucase(ws.Name) > "START" And _
Ucase(ws.Name) > "OEZ_UEBERSICHT" And _
Ucase(ws.Name) > "URL_KOMMUNE" Then



Peter
Anzeige
AW: Endlos Schleife
02.07.2024 09:14:34
GerdL
Moin Günther,

teste mal an einer Dateikopie.
Sub oez_uebersicht2()

'
' oez_uebersicht2 Makro
'
Dim ws As Worksheet
Dim i As Long
Dim Lio As ListObject

i = 3

For Each ws In ThisWorkbook.Worksheets

Select Case UCase(ws.Name)
Case "URL", "START", "OEZ_UEBERSICHT", "URL_KOMMUNE"
'mach nix
Case Else

If ws.ListObjects.Count > 0 Then
Set Lio = ws.ListObjects(1)
End If

If Not Lio Is Nothing Then
Worksheets("OEZ_Uebersicht").Cells(i, "B") = ws.Name
Lio.Copy Worksheets("OEZ_Uebersicht").Cells(i + 1, "B")
Application.CutCopyMode = False
i = i + 8
Set Lio = Nothing
End If

End Select

Next

End Sub


Gruß Gerd
Anzeige
AW: Endlos Schleife
02.07.2024 09:55:18
Günther
Hallo Gerd,
es erscheint die Meldung "Laufzeitfehler 438 .. Objekt unterstützt diese Eigenschaft oder Methode nicht.

Lio.Copy Worksheets("OEZ_Uebersicht").Cells(i + 1, "B")


Grüße
Günther
AW: Endlos Schleife
02.07.2024 10:15:39
daniel
Hi
Lio ist ein Listobjekt und diese kann man in VBA nicht kopieren.
du musst hier den Zellbereich des Listobjekts kopieren.

Lio.Range.Copy


Gruß Daniel
Anzeige
AW: Endlos Schleife
02.07.2024 10:18:47
GerdL
Hallo Günther,
ergänze bitte.
Lio.Range.Copy Worksheets("OEZ_Uebersicht").Cells(i + 1, "B")
Gruß Gerd
AW: Endlos Schleife
02.07.2024 09:25:09
Yal
Hallo Günther,

es ist ein bisschen krank: Du benutzt eine PW-Abfrage, die per VBA gesteuert wird, um je eine Blatt zu erzeugen, um danach diese Daten aus verschiedene Blätter zusammenzufassen.

Warum nicht direkt mit einer PQ-Abfrage alle Daten direkt in den Übersicht?

VG
Yal


Anzeige
AW: Endlos Schleife
02.07.2024 12:30:51
Günther
Danke Euch allen. Dies ist ein tollen Forum. Hier fühle ich mich wohl und gut betreut.

Viel Spaß noch ... bis zum Nächsten mal.

Günther
AW: Endlos Schleife
02.07.2024 11:01:49
Yal
Hallo Günther,

anbei die Version "nur Power Query Abfrage". Kein VBA.
Einfach auf die Tabelle im Blatt URL rechtsklicken und "aktualisieren".

https://www.herber.de/bbs/user/170619.xlsx


VG
Yal
Anzeige
AW: Endlos Schleife
02.07.2024 09:11:33
Günther
Hallo Peter,
Danke für den Tipp.
Der Fehler kommt trotzdem.

Laufzeitfehler 1004: Die Methode Range für das Objekt _Global ist fehlgeschlagen.......
Excel wird anschl. beendet.

Günther
AW: Endlos Schleife
02.07.2024 09:46:43
peter
Hallo

Da Du bei deinem Kopiervorgang auch die Verbindung (Abfrage) mitkopierst kommt es zu diesem Fehler.




Sheets(ws.Name).Select

Range("Table_Query__" & ws.Name & "[[#Headers],[Tag]]").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets("OEZ_Uebersicht").Select

Range("B" & z).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("B" & z).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False



Peter
Anzeige
AW: Endlos Schleife
02.07.2024 11:07:03
Günther
Hallo Peter,
Besten Dank für Deinen Tipp. Funktioniert so weit wunderbar.

Nur die if Abfrage
If UCase(ws.Name) > "URL" And _
UCase(ws.Name) > "Start" And _
UCase(ws.Name) > "OEZ_Uebersicht" And _
UCase(ws.Name) > "URL_Kommune" Then

wird komplett ignoriert. Sobald das Makro auf das Tabellenblatt "Start" trifft (was er ja eigentlich ignorieren soll). bleibt es mit dem Hinweis "laufzeitfehler 1004.. die Methode Range für das Objekt _Global ist fehlgeschlagen.

Range("Table_Query__" & ws.Name & "[[#Headers],[Tag]]").Select 'Als Wert steht hier das Tabellenblatt Start drin

Versteh ich nicht.

Hast dafür auch noch eine Idee?

Grüße
Günther
Anzeige
AW: Endlos Schleife
02.07.2024 11:18:44
hary
Moin
Wenn du auf Grossschreibung pruefst:
UCase(ws.Name) > "START" 

gruss hary
AW: Endlos Schleife
02.07.2024 09:13:16
Beverly
Hi Günther,

noch ein Tipp am Rande: in einer For Each-Schleife benötigt man keinen zusätzlichen Zähler um die Anzahl der durchlaufenen Objekte hochzuzählen, denn damit werden ausschließlich die angesprochenen Objekte (in deinem Fall alle Tabellenblätter, und nur diese) abgedeckt. Die Zeile If tbl >= anztbl Then Exit For, die Zeile tbl = tbl + 1 sowie die Zähl-Variable tbl an sich benötigst du deshalb gar nicht.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Endlos Schleife
02.07.2024 12:28:38
Günther
Danke Peter. Hat funktioniert. Man lernt nie aus.
...schönen Tag noch.

Grüße Günther
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige