Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1676to1680
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

Makro läuft bei Aufruf nicht sauber ab

Makro läuft bei Aufruf nicht sauber ab
06.03.2019 15:12:26
Philipp
Hallo,
ich habe folgendes Makro, das ich gerne aufrufen möchte.

Sub ablauf()
Call kopieren
Call bereinigen
Call txterstellen
MsgBox "Ich bin fertig", vbInformation, "Info"
End Sub

Das ganze ist einfach nur um weitere zusammenzufassen.
Wenn ich das laufen lasse, wird jedoch Call bereinigen nicht sauber verarbeitet.
Rufe ich dies jedoch für sich auf, bzw gehe es in einzelnen Schritten mit F8 durch, klappt es ohne Probleme.

Sub bereinigen()
Dim letzteZeileA As Long
Dim a, k As Long
Dim tmpA, tmpB As String
letzteZeile = LastRow(Worksheets(Worksheets.Count))
For k = 4255 To 2 Step -1
If Worksheets(Worksheets.Count).Cells(k, 1).Value  "" Then
Else
Range(Cells(k, 1), Cells(k, 5)).EntireRow.Delete
tmpA = Worksheets(Worksheets.Count).Cells(k - 1, 5).Value
tmpB = Worksheets(Worksheets.Count).Cells(k, 1).Value
Worksheets(Worksheets.Count).Cells(k - 1, 5).Value = tmpA & tmpB
Range(Cells(k, 1), Cells(k, 5)).EntireRow.Delete
End If
Next
End Sub

Hat jemand eine Idee wie das kommt?
Danke und viele Grüße

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro läuft bei Aufruf nicht sauber ab
06.03.2019 16:03:27
Luschi
Hallo Philip,
prüfe doch mal, ob Du mit Range(Cells(k, 1), Cells(k, 5)) überhaupt das richtige Tbellenblatt ansprichst:
Debug.Print Range(Cells(k, 1), Cells(k, 5)).Parent.Name
Range & Cells ohne Referenz auf die entsprechende Tabelle ist sehr leichtsinnig
weitere festgestellte Ungenauigkeiten:
Dim a, k As Long - nur die Variable 'k' ist vom Typ Long, 'a' ist vom Typ Variant
Variable 'letzteZeileA' definiert aber 'letzteZeile' wird verwendet
statt: Range(Cells(k, 1), Cells(k, 5)).EntireRow.Delete würde auch Cells(k, 1).EntireRow.Delete
reichen
Worksheets(Worksheets.Count) kann sehr schnell ins Auge gehen, wenn der User das gemeinte Tabellenblatt per Maus verschiebt, und das geht schneller als man denkt.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Makro läuft bei Aufruf nicht sauber ab
06.03.2019 16:24:23
Philipp
Vielen Dank für das Feedback.
Es war das Problem mit dem richtigen Tabellenblatt.
Die anderen Punkte habe ich glattgezogen. Waren zwischendurch Dinge die ich bei der Fehlersuche probiert habe.
Worksheet.Count ist bei mir nicht das Problem. Da das Sheet hier erstellt aber auch wieder gelöscht wird.
Nochmals vielen Dank und viele Grüße, Philipp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige