Anzeige
Archiv - Navigation
1920to1924
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

Zellen nicht mehr löschbar nach Prozdeur

Zellen nicht mehr löschbar nach Prozdeur
23.02.2023 16:17:41
Marc
Hallo zusammen,
ich habe aktuells das Problem, dass jedes Mal wenn mein Makro durchgelaufen ist ein bestimmter Zellbereich im aktiven Workbook nicht mehr löschbar ist. Das heißt auf den Delete-Key reagiert die Zelle bzw. der Zellbereich einfach nicht mehr. Man kann jedoch schreiben in die Zellen und wenn man erstmal ein paar Zellen beschrieben hat dann lassen sich die Inhalte auch wieder löschen mit dem Delete-Key.
Ich vermute es hat etwas damit zu tun, dass ich eine Pivot im Makro erstellen lasse, die ich anschließend kopiere, lösche und den kopierten Inhalt wieder einfüge bzw. formatiere. Ich habe die Prozedur vollständig aufgenommen mit dem Makro-Rekorder.
Sub Pivot()
    Range("A1:Z1").Font.Bold = True
    Range("A1:C10000").Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "StocksInformation!A1:C10000", Version:=6).CreatePivotTable _
        TableDestination:="StocksInformation!R1C8", TableName:="PivotTable6", _
        DefaultVersion:=6
    Sheets("StocksInformation").Select
    Cells(1, 8).Select
    With ActiveSheet.PivotTables("PivotTable6").PivotFields("Date")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable6").PivotFields("Date").AutoGroup
    ActiveSheet.PivotTables("PivotTable6").AddDataField ActiveSheet.PivotTables( _
        "PivotTable6").PivotFields("High"), "Anzahl von High", xlCount
    ActiveSheet.PivotTables("PivotTable6").AddDataField ActiveSheet.PivotTables( _
        "PivotTable6").PivotFields("Low"), "Anzahl von Low", xlCount
    With ActiveSheet.PivotTables("PivotTable6").PivotFields("Anzahl von High")
        .Caption = "Maximum von High"
        .Function = xlMax
    End With
    With ActiveSheet.PivotTables("PivotTable6").PivotFields("Anzahl von Low")
        .Caption = "Minimum von Low"
        .Function = xlMin
    End With
    ActiveSheet.PivotTables("PivotTable6").RowGrand = False
    Columns("H:J").Select
    Selection.Copy
    Columns("K:K").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("H:J").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("H1").Select
    ActiveCell.FormulaR1C1 = "Jahr"
    Range("I1").Select
    ActiveCell.FormulaR1C1 = "High"
    Range("J1").Select
    ActiveCell.FormulaR1C1 = "Low"
    Range("H1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Font.Bold = True
    Range("I1:J1").Select
    Selection.Font.Bold = True
    Range("I2:J2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.NumberFormat = "0.00"
  
    
End Sub

Hat jemand etwas in der Art schonmal gehabt oder weiß jemand genau woran das liegen könnte?
VG
Marc

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen nicht mehr löschbar nach Prozdeur
23.02.2023 16:54:02
ReginaR
Hi,
zunächst Mal wäre es wichtig zu wissen, welcher Bereich sind nicht mehr löschen lässt.
Außerdem wird das Ganze ohne Beispieldatei kaum nachvollziehbar sein. Also bitte Datei (anonymisiert) hochladen.
Gruß Regina
AW: Zellen nicht mehr löschbar nach Prozdeur
23.02.2023 17:37:01
Marc
Hi Regina,
lieben Dank aber es wird nicht möglich sein, die ganze Datei hochzuladen weil ich teilweise Bezug nehme auf exklusive Datenquellen, die ich nicht teilen kann/darf.
Ich dachte vielleicht ist jemandem ein ähnliches Problem schonmal begegnet.
VG
Marc
AW: Zellen nicht mehr löschbar nach Prozdeur
23.02.2023 18:52:45
Luschi
Hallo Marc,
diese Info von Regina: zunächst Mal wäre es wichtig zu wissen, welcher Bereich sind nicht mehr löschen lässt
hast Du damit aber immer noch nicht beantwortet. Vielleicht willst Du den für die PivotTabelle vorgesehenen Daten-Cache manuell verändern?
fragt sich Luschi
aus klein-Paris
Anzeige
AW: Zellen nicht mehr löschbar nach Prozdeur
23.02.2023 22:32:27
Marc
Helau Luschi,
sorry, und danke für den Hinweis. Ich hab es eben nochmal geprüft und es ist tatsächlich das ganze Blatt betroffen und nach ca 1 bis 2 Minuten geht es dann wieder, ohne irgendein Zutun.
Woran kann sowas liegen?
AW: Zellen nicht mehr löschbar nach Prozdeur
23.02.2023 22:56:59
Marc
Das Workbook lässt sich in diesem Zustand auch nicht mehr schließen fällt mir eben auf. Also irgendwas ist da im Hintergrund aktiv, was Excel teilweise blockiert.
AW: Zellen nicht mehr löschbar nach Prozdeur
23.02.2023 23:01:52
onur
Wo und wie genau wird denn der Code aufgerufen?
AW: Zellen nicht mehr löschbar nach Prozdeur
24.02.2023 00:27:33
Marc
Hi Onur,
ich durchlaufe mehrere Subs, wobei aus der initialen Sub mehrere andere in Folge durch Calls aufgerufen werden um Daten zu ziehen aus unterschiedlichen Quellen und diese in einem Sheet zusammen zu führen:
Ein Http Request, ein QueryTableRequest und ein XML-File das ausgelesen wird.
Ich dachte die aneinander gereiten Calls könnten vielleicht das Problem sein und hab es mit einer do-loop Schleife nach jedem Call versucht. Das Ergebnis war das gleiche.
Anzeige
AW: Zellen nicht mehr löschbar nach Prozdeur
24.02.2023 00:30:40
onur
Das beantwortet aber nicht wirtklich meine Frage: "Wo und wie genau wird denn dieser Code aufgerufen?"
AW: Zellen nicht mehr löschbar nach Prozdeur
24.02.2023 01:08:19
Marc
Sorry, ich hatte Deine Frage falsch verstanden.
Der Code liegt in einem Modul und wird aus der folgenden Sub aufgerufen:
Sub getYahoo()
' Kurse abrufen
Dim aSheet As Worksheet
Dim UnixStart As Long
Dim UnixEnd As Long
Dim Diff As Long
Dim Ticker As String
Dim stocksinfo As Worksheet
Dim lastrow As Long
Dim row As Long
Dim Tag As Variant
Dim Monat As Variant
Dim Datum As Date
Dim Hilfsdatum As Date
Dim Projektname As String
Projektname = ThisWorkbook.Name
Dim QT As QueryTable
Set aSheet = Workbooks(Projektname).Worksheets("Prozessbeschreibung")
Set stocksinfo = Workbooks(Projektname).Worksheets("Stocksinformation")
Ticker = aSheet.Range("J15").Value
' Periode (Startdatum & Enddatum) ermitteln und Unix Datum ermitteln für "Kursdaten" !
FiscalDate = CDate(aSheet.Range("J17").Value)
Diff = DateDiff("yyyy", "1.1.2000", aSheet.Range("J17").Value) * (-1)
Enddatum = CDate(FiscalDate)
UnixEnd = DateDiff("d", "1.1.1970", Enddatum) * 86400
Startdatum = DateAdd("yyyy", Diff, Enddatum)
Startdatum = DateAdd("d", 1, Startdatum)
UnixStart = DateDiff("d", "1.1.1970", Startdatum) * 86400
'Kurse abrufen
With stocksinfo
.Activate
.Range("A1:Z20000").ClearContents
.Range("A1:Z20000").ClearFormats
End With
Set QT = stocksinfo.QueryTables.Add(Connection:="TEXT;https://query1.finance.yahoo.com/v7/finance/download/" & Ticker & "?period1=" & UnixStart & "&period2=" & UnixEnd & "&interval=1d&events=history", Destination:=Range("$A$1"))
  With QT
  
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = False
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(4, 1, 1, 1, 1, 1, 1)
        .TextFileThousandsSeparator = " "
        .TextFileDecimalSeparator = "."
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
' Warteschleife
Dim Countdown As Single, i As Long
Countdown = Timer + 5
Do While Timer = Countdown
  i = i + 1
Loop
'--------Überflüssige Kursspalten löschen----------
Columns("B:B").Select
    Selection.Delete Shift:=xlToLeft
    Columns("D:F").Select
    Selection.Delete Shift:=xlToLeft
    Range("B2:C2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.NumberFormat = "0.00"
    Range("B1:C1").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
'--------------------------------------------------
Set QT = Nothing  ' Querytable Object zurücksetzen
' Aktiensplits abrufen
Set QT = stocksinfo.QueryTables.Add(Connection:="TEXT;https://query1.finance.yahoo.com/v7/finance/download/" & Ticker & "?period1=" & UnixStart & "&period2=" & UnixEnd & "&interval=1d&events=split&includeAdjustedClose=true", Destination:=Range("$E$2"))
        
 With QT
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = False
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 2
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(4, 1)
        .TextFileThousandsSeparator = False
        .TextFileDecimalSeparator = "."
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    
' Warteschleife
Countdown = Timer + 2
Do While Timer = Countdown
  i = i + 1
Loop
Set QT = Nothing  ' Querytable Object zurücksetzen
' Alle Verbindungen wieder löschen.
For Each QT In stocksinfo.QueryTables
QT.Delete
Next
' Splits absteigend sortieren nach Datum
    Range("D1").Value = "Abweichendes FJ"
    Range("E1").Value = "Yahoo-Splits"
    Range("F1").Value = "Ratio"
    Columns("E:F").Select
    Selection.AutoFilter
    ActiveWorkbook.Worksheets("StocksInformation").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("StocksInformation").AutoFilter.Sort.SortFields.Add _
        Key:=Range("E1:E10000"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("StocksInformation").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Columns("D:F").EntireColumn.AutoFit
    Selection.AutoFilter
' Wenn Fiskaljahr und Kalenderjahr identisch sind dann Aufruf von Pivot
If Day(Enddatum) = 31 And Month(Enddatum) = 12 Then
Call Pivot
Countdown = Timer + 2
Do While Timer = Countdown
  i = i + 1
Loop
Else
' Ansonsten zunächst das Fiskaljahr deklarieren und anschließend PivotAbweichend aufrufen
lastrow = stocksinfo.Cells(Rows.Count, 1).End(xlUp).row
For row = 2 To lastrow
Datum = CDate(stocksinfo.Cells(row, 1).Value)
Hilfsdatum = CDate(Day(FiscalDate) & "." & Month(FiscalDate) & "." & year(stocksinfo.Cells(row, 1).Value))
If Datum = Hilfsdatum Then
stocksinfo.Cells(row, 4).Value = year(stocksinfo.Cells(row, 1).Value) - 1
Else
stocksinfo.Cells(row, 4).Value = year(stocksinfo.Cells(row, 1).Value)
End If
Next row
Call PivotAbweichend
End If
' Warten bis Aufgabe erledigt wurde
Countdown = Timer + 2
Do While Timer = Countdown
  i = i + 1
Loop
' Letzte überflüssige Zeile der Pivot entfernen ("Gesamtergebnis")
lastrow = stocksinfo.Cells(Rows.Count, 8).End(xlUp).row
stocksinfo.Range(stocksinfo.Cells(lastrow, 8), stocksinfo.Cells(lastrow, 10)).Clear
' Events ziehen
Call getEvents
' XML High/Low ziehen
Call xmlQuotes
' BasicSharesOut ziehen
Call getshares
' Stocknews ziehen
Call getStocknews
' DividendPayment ziehen
Call getDividendPayment
End Sub

Anzeige
AW: Zellen nicht mehr löschbar nach Prozdeur
24.02.2023 03:04:32
onur
Und warum glaubst du, dass es ausgertechnet an Sub Pivot() liegt?
AW: Zellen nicht mehr löschbar nach Prozdeur
24.02.2023 08:55:50
Marc
Das war nur eine Vermutung weil man ja in einer Pivot auch keine Werte löschen kann aber mittlerweile hab ich ja festgestellt, dass das ganze Workbook spinnt wenn der Code durchgelaufen ist. Ich kann es anschließend nicht mal mehr schließen, zumindest eine Zeit lang.
AW: Zellen nicht mehr löschbar nach Prozdeur
24.02.2023 10:11:40
Marc
Ich hab den Fehler nun weiter eingrenzen können. Offenbar gibt es einen Konflikt zwischen zwei Worksheets. In dem einen befindet sich der Button, mit dem die Sub gestartet wird und in dem anderen befindet man sich wenn die Sub durchgelaufen ist. Letzteres wurde auch zuletzt aktiviert.
Um das Problem zu beheben muss ich zunächst einmal in das Sheet mit dem Button klicken und wenn ich dann wieder zurück gehe in das Sheet mit den Daten dann ist das Problem gelöst. Jetzt ist die Frage weshalb das Sheet mit dem Button meint es wäre aktiv.
Anzeige

133 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige