Anzeige
Archiv - Navigation
1660to1664
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 beginnt nicht mit der richtigen Seite

Makro beginnt nicht mit der richtigen Seite
28.11.2018 13:39:04
Meli
Hallo,
ich habe in der gleichen Datei wie das selbst geschriebene Makro ein sheet "Makros", wo ich ein Command-Button eingefügt habe und das Makro "ÜbersichtErstellen" zugewiesen habe.
Nun wird das Ergebnis im Blatt "Makros" gezeigt und nicht im Blatt "Übersicht". Wenn ich es aber im VBA-Editor die Einzelne Schritte meines Makros mit F8 durchgehe, dann passt alles wunderbar.
FRAGE: Wie löse ich das Problem? Ich dachte mit "ThisWorkbook.Sheets("Übersicht").Range("A1").Select", aber es funktioniert nicht :-(
Sub ÜbersichtErstellen()
'Inhalte in Blätter "Abzug" und "Übersicht" leeren
ThisWorkbook.Sheets("Übersicht").Range("A1").Select
ThisWorkbook.Sheets("Abzug").Range("A1:AB200").Clear
ThisWorkbook.Sheets("Übersicht").Range("A1:AB200").Clear
ThisWorkbook.Sheets("Abzug").Range("A1:AB200").Copy Destination:=ThisWorkbook.Sheets("Übersicht" _
).Range("A1:AB200")
'Spalten löschen
ActiveSheet.Columns("A:A").Delete
ActiveSheet.Columns("B:C").Delete
ActiveSheet.Columns("C:C").Delete
ActiveSheet.Columns("D:N").Delete
ActiveSheet.Columns("H:J").Delete
ActiveSheet.Columns("J").Delete
'Zahl vom Textformat ins Zahlenformat umwandeln
Dim LetzteZeile As Long
Dim x As Long
LetzteZeile = Range("C200").End(xlUp).Row
For x = 2 To LetzteZeile
Cells(x, 3) = CLng(Cells(x, 3))
Cells(x, 3).NumberFormat = "General"
Next
'Werte dazuschreiben
ActiveSheet.Range("k1").Value = "Summe"
ActiveSheet.Range("N1").Value = "check"
'falls neue KST dazu kommen, dann Range "J4:J6" anpassen
ThisWorkbook.Sheets("Makros").Range("J4:J6").Copy Destination:=ThisWorkbook.Sheets("Übersicht"). _
Range("K2")
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 13:43:23
PeterK
Hallo
Activate statt Select
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 13:59:41
Meli
Hallo Peter,
mit Activate habe ich früher auch probiert, leider erfolglos. Sorry, habe vergessen noch zu schreiben, Wenn ich "activate" oder "select" schreibe, dann kommt Fehlermeldung "Die Activate Methode des RangeObjectes konnte nicht ausgeführt werden".
Ich sehe nicht das Problem?
Sub ÜbersichtErstellen()
'Inhalte in Blätter "Abzug" und "Übersicht" leeren
ThisWorkbook.Sheets("Übersicht").Range("A1").Activate
'ThisWorkbook.Sheets("Abzug").Range("A1:AB200").Clear
ThisWorkbook.Sheets("Übersicht").Range("A1:AB200").Clear
ThisWorkbook.Sheets("Abzug").Range("A1:AB200").Copy Destination:=ThisWorkbook.Sheets("Übersicht").Range("A1:AB200")
Anzeige
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 13:59:48
Meli
Hallo Peter,
mit Activate habe ich früher auch probiert, leider erfolglos. Sorry, habe vergessen noch zu schreiben, Wenn ich "activate" oder "select" schreibe, dann kommt Fehlermeldung "Die Activate Methode des RangeObjectes konnte nicht ausgeführt werden".
Ich sehe nicht das Problem?
Sub ÜbersichtErstellen()
'Inhalte in Blätter "Abzug" und "Übersicht" leeren
ThisWorkbook.Sheets("Übersicht").Range("A1").Activate
'ThisWorkbook.Sheets("Abzug").Range("A1:AB200").Clear
ThisWorkbook.Sheets("Übersicht").Range("A1:AB200").Clear
ThisWorkbook.Sheets("Abzug").Range("A1:AB200").Copy Destination:=ThisWorkbook.Sheets("Übersicht").Range("A1:AB200")
Anzeige
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 14:07:18
Werner
Hallo Meli,
da ist mir einiges unklar.
1. es sollen die Daten aus dem Blatt Abzug ins Blatt Übersicht kopiert werden ?!?
2. in welchem Blatt willst du die Spalten löschen?
3. es sollen die Textzahlen im Blatt Übersicht umgewandelt werden?!?
4. das ginge vermutlich auch ohne eine Schleife über alle Zellen
Am besten wäre es, wenn du mal deine Datei mit anonymisierten Daten hochladen würdest.
Gruß Werner
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 14:21:05
Meli
Hallo Werner,
ich habe hier nur ein Auszug vom Makro reinkopiert, da das Makro an sich gut funktioniert - wenn ich mit VBA-Editor die einzelnen Schritte durchgehe (und auch beim Testen von Teilmakros hat es funktioniert).
Aber nicht wenn ich mit dem Button das Makro anstossen möchte.
Also in einer Datei habe ich 3 sheets ("Makros", "Übersicht", "Abzug"). Die Daten werden von "Abzug" zur "Übersicht" kopiert und weiterverarbeitet. Um einige Makros seitens user zu starten, habe ich ein extra Blatt mit Command-Button erstellt. Und da habe ich mein Problem!! Das Makro fängt nicht mit Schritt 1 " Textinhalt leeren" und arbeitet sich ab:-(((
Anzeige
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 14:29:38
Werner
Hallo Meli,
teste mal (aber natürlich mit einer Kopie deiner Datei):
Sub ÜbersichtErstellen()
Dim LetzteZeile As Long, x As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ThisWorkbook.Worksheets("Abzug").Range("A1:AB200").ClearContents
ThisWorkbook.Worksheets("Übersicht").Range("A1:AB200").ClearContents
With ThisWorkbook.Worksheets("Abzug")
.Range("A1:AB200").Copy _
Destination:=ThisWorkbook.Worksheets("Übersicht").Range("A1")
'Spalten löschen ### in welchem Blatt? derzeit im Blatt Abzug###
'Blattnamen vor Columns schreiben
.Columns("A:N").Delete
End With
'Zahl vom Textformat ins Zahlenformat umwandeln
'### ich bin mal davon ausgegangen im Blatt "Übersicht" ###
With ThisWorkbook.Worksheets("Übersicht")
LetzteZeile = .Cells(.Rows.Count, 3).End(xlUp).Row
For x = 2 To LetzteZeile
.Cells(x, 3) = CLng(.Cells(x, 3))
Next
.Columns(3).NumberFormat = "General"
'Werte dazuschreiben
.Range("K1") = "Summe"
.Range("N1") = "check"
Worksheets("Makros").Range("J4:J6").Copy _
.Range ("K2")
End With
Application.Calculation = xlCalculationSemiautomatic
End Sub
Mehr kommt von mir ohne Datei nicht. Meine Frage hast du nicht wirklich beantwortet. So weiß ich immer noch nicht sicher, in welchem Blatt die Spalten gelöscht werden sollen.
Gruß Werner
Anzeige
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 15:41:12
Meli
Hallo Werner,
also mit dem Tipp "Application.ScreenUpdating = False" und noch aus Google-Recherche "Thisworkbook" weglassen,scheint das Makro ohne zu Meckern zu laufen.
ALLERDINGS einige Formatierungsteile vom Makro "Übersichterstellen" macht er nicht im Blatt "Übersicht" - wie es geschrieben ist-, sondern im Blatt "Makros" :-( (z.B. erste Zeile fest und gelb markieren). Dafür die Zeilen mit Werte dazuschreiben macht er es wieder im richtigen Blatt "Übersicht".
.....Ich bin ratlos!!! finde den Fehler nicht, warum er das macht.
HIer ein Testdatei und der Code
https://www.herber.de/bbs/user/125724.xlsm
Sub ÜbersichtErstellen()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("Abzug").Range("A1:AB200").Copy Sheets("Übersicht").Range("A1")
'Spalten löschen
With Sheets("Übersicht")
.Columns("A:A").Delete
.Columns("B:C").Delete
.Columns("C:C").Delete
.Columns("D:N").Delete
.Columns("H:J").Delete
.Columns("J").Delete
End With
'Formatieren()
With Sheets("Übersicht")
Columns("A:A").EntireColumn.AutoFit
Columns("B:B").ColumnWidth = 10
Columns("C:C").ColumnWidth = 9
Columns("D:D").EntireColumn.AutoFit
Columns("E:E").EntireColumn.AutoFit
Columns("J:J").ColumnWidth = 3.44
Columns("K:K").ColumnWidth = 8
Columns("M:M").ColumnWidth = 3.44
End With
With Sheets("Übersicht")
Range("A1:AB1").Font.Bold = True
Range("A1:AB1").Interior.ColorIndex = 6
End With
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
.FirstPage.CenterFooter.Text = "Übersicht der My-Taxi-Kosten"
.CenterHorizontally = True
.PrintArea = ActiveSheet.UsedRange.Address
End With
'Werte dazuschreiben
Sheets("Übersicht").Range("k1").Value = "Summe"
Sheets("Übersicht").Range("N1").Value = "check"
'falls neue KST dazu kommen, dann Range "J3:J5" anpassen
Sheets("Makros").Range("J3:J5").Copy Sheets("Übersicht").Range("K2")
'Errechnen der Summen pro Kostenstelle
Dim Arg1 As Range 'the range I want to sum
Dim Arg2 As Range 'criteria range
Dim Arg3 As Variant 'the criteria as VARIANT
Dim i As Integer
Dim LastColumn As Integer: LastColumn = 12
Set Arg1 = Sheets("Übersicht").Range("H1:H200") 'Arg1 and Arg2 must be the same size
Set Arg2 = Sheets("Übersicht").Range("C1:C200") 'Arg1 and Arg2 must be the same size
Set Arg3 = Sheets("Übersicht").Range("K2:K13")  'criteria can have different size
'falls neue KST dazu kommen, dann Range letzten Wert von i anpassen - je nach Zeilenanzahl
For i = 2 To 4
Sheets("Übersicht").Cells(i, LastColumn) _
= Application.WorksheetFunction.SumIfs(Arg1, Arg2, Arg3.Cells(i - 1, 1).Value)
Next
'Errechnen der Gesamtsumme + Check
Sheets("Übersicht").Cells(1, 12).Formula = "=SUM(L2:L15)"
Sheets("Übersicht").Cells(1, 15).Formula = "=SUM(H:H)-L1"
Application.Calculation = xlCalculationSemiautomatic
'ActiveWorkbook.Save
End Sub

Anzeige
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 15:50:02
Werner
Hallo Meli,
meine Lust hier weiter zu machen hält sich stark in Grenzen.
Warum:
Der Grund ist Crossposting. Du bist mit dem gleichen Problem in einem weiteren Forum unterwegs, ohne daß ich, oder Helfer im anderen Forum davon etwas wissen. Im anderen Forum hat sich auch schon jemand mit dem Problem beschäftigt.
Einer von uns beiden arbeitet dann jetzt wohl für den Papierkorb. Das scheint dir aber egal zu sein, kostet ja nichts.
Zudem hat der Code hier jetzt nicht viel bis fast gar nichts mit dem Eingangs geposteten Code zu tun. Und die Änderungen/Anregungen von mir bzw. vom Helfer im anderen Forum sind so gut wie überhaupt nicht umgesetzt.
Freut mich alles sehr und motiviert mich ungemein hier weiter zu machen.
Gruß Werner
Anzeige
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 16:13:53
Meli
Hallo Werner,
erstens war meine Vorgabe heute Vormittag, eine Lösung noch heute zu liefern, deswegen habe ich in 2 Foren diese Frage fast zeitgleich gestellt - ich weiß nicht wann jemand Zeit hat mir zu antwortet.
Zweitens bin ich anfangs davon ausgegangen, dass es an einer Kleinigkeit liegen muss, da ich mein Code schon fertig hatte und inhaltlich das gemacht hat was ich ursprünglich wollte. Aber im Nachhinein stelle ich fest, dass ich es wohl nicht so einfach ist.
Drittens ich habe alle Anregungen von anderem Helfer auch übernommen, nämlich u.a. überall ThisWorksheet in sheets umgewandelt!! Aber das hat einiges gelöst aber nicht alles. Mit deinem Tipp "Application.ScreenUpdating = False" bin fast ans Ziel gekommen. NUR nicht diese Formatierunggeschichte...
Viertens, ich kann dein Ärger verstehen, wenn du das Gefühl hast für Papierkorb zu arbeiten, aber dem ist es nicht so!!!
Wenn du noch Lust hast, mir auf den Fehler zu hinweisen, warum die Formatierung nicht funktioniert, dann würde ich mich freuen. Wenn keine, dann werde ich die nächsten Tage noch darüber grübeln und ggf. nochmal die Frage ins Forum stellen.
Gruß
Meli
Anzeige
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 16:04:51
Bernd
Servus Meli,
da müssen auch die Blätter richtig referenziert sein.
Falsch:

With Sheets("Übersicht")
Columns("A:A").EntireColumn.AutoFit

With Sheets("Übersicht")
Range("A1:AB1").Font.Bold = True
Richtig:

With Sheets("Übersicht")
.Columns("A:A").EntireColumn.AutoFit

With Sheets("Übersicht")
.Range("A1:AB1").Font.Bold = True
Grüße, Bernd
AW: Makro beginnt nicht mit der richtigen Seite
28.11.2018 16:23:20
Meli
Hallo Bernd,
das war´s!!! Der Punkt hat gefehlt!!! Jetzt läuft alles perfekt!!!
DANKE BERND!!
DANKE WERNER!!!
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
29.11.2018 08:46:39
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige