Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Grande Katastophe

Forumthread: Grande Katastophe

Grande Katastophe
16.07.2024 13:13:03
Nordic
Hallo,
nach dem ich heute früh einen VBA-Code verbaut habe, der abhängig von einem Suchergebnis in der Spalte A eine Zelle grün markiert und bei Worksheet_SelectionChange wieder entfernt (zuvor hatte ich gesamte Trefferzeile selektiert, was bei Unachtsamkeit auch mal zum Überschreiben von Zellinhalten führte) hat's geknallt.
Die Datei benötigte extrem viel Zeit zum Öffnen und jeder Aktion führte zum "einfrieren" (keine Rückmeldung).
Auffällig war\ist auch, dass die Datei von ursprünglich 740KB auf 9MB angewachsen ist.
Mit abgesichertem Modus und deaktivierten Makros konnte ich die Datei leidlich wieder öffnen.
Da auch das auskommentieren des zuletzt hinzugefügten Code keinen Erfolg brachte habe ich alle Daten gelöscht (diese können einfach wieder hergestellt werden), sowie den kompletten VBA Code aller Tabellen, Formulare und Module gesichert und ebenfalls aus dem Projekt entfernt.
Leider blieb auch dies ohne wirklich sichtbaren Erfolg. Die Datei öffnet wieder etwas schnell ist aber trotz dem Entfernen der Daten und des VBA-Code immer noch knapp 9MB groß. Die Arbeitsmappenüberprüfung auf Probleme brachte mich ebenfalls nicht weiter.
Ich hoffe sehr, dass jemand eine Idee hat.
Grüße, Uwe

Bevor nun jemand ketzerisch nach einem Backup fragt ;)
Ich schwör, ich wollte das (vor einiger Zeit) machen :)
Anzeige

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grande Katastophe
16.07.2024 13:40:46
Onur
Poste sie mal auf Dropbox und hier den Link dazu.
AW: Grande Katastophe
16.07.2024 14:38:45
Nordic
Moin Onur :)
kann ich leider erst heute Abend von zuhause aus machen. :)
Gruß, Uwe
AW: Grande Katastophe
16.07.2024 17:03:03
Onur
Ist normal bei soooo vielen bedingten Formatierung.
Ohne ist die Datei nur noch 691 KB gross, was auch normal ist bei über 500 Spalten.
AW: Grande Katastophe
16.07.2024 17:28:38
Nordic
Bevor das heute früh völlig daneben ging hatte die Datei incl. Stammdaten, Makros etc 740KB.
Ich verstehe nicht wie sie sich um mehr als das 10fache vergrößern konnte.
Die bedingten Formatierungen benötige ich schon auf den beiden 119er Tabellenblättern.
Anzeige
AW: Grande Katastophe
16.07.2024 17:39:00
Onur
"hatte die Datei incl. Stammdaten, Makros etc 740KB" ?
Inkl. der über 60 bedForms?
Wenn du dauernd Bereiche, Zeilen oder Spalten kopierst (oder ausschneidest) und einfügst, werden auch die bedForms mit kopiert bzw deren Bereiche zerstückelt bzw dupliziert. Das beeinflusst Dateigrösse UND Berechnungsgeschwindigkeit.
Sowas sollte man nicht machen, höchstens WERTE einfügen.
Anzeige
AW: Grande Katastophe
16.07.2024 17:57:40
Nordic
Ah daher, es ist mir öfter mal aufgefallen, dass plötzlich mehr bed. Formatierungen da sind als sollten.
Hab gerade mal nachgeschaut und durchgezählt es dürften auf zwei Tabellenblätter nur je ~20 bzw 22 sein.
Insgesamt also knapp Ü40. In letzter Zeit wurden jedoch keine Spalten oder Zeilen gelöscht oder hinzugefügt.
Ich werd die bed. Formatierungen mal rausnehmen und dann mal sehen wo ich lande.
Danach den VBA-Code (zumindest der, der bisher problemlos lief) nach und nach wieder einbauen.
Anzeige
AW: Grande Katastophe
16.07.2024 18:04:03
peter
Hallo

Hab gerade folgendes probiert

Deine Datei geöffnet
Inquire aufgerufenn (ist AddIn, musst Du aktivieren)
Übermäßige Zellformatierung entfernen
Alle Blätter (Excel mault ständig)
Speichern

Die Datei kat 700KB


Peter
AW: Grande Katastophe
16.07.2024 13:46:16
daniel
Hi
Excel speichert normalerweise nur den Bereich der Tabelle, der auch genutzt wird, nie die ganze Tabelle.
für den genutzten Bereich sind nicht nur Inhalte relevant, sondern auch Formatierungen.
Hierbei werden allerdings Formatierungen für ganze Zeilen oder Spalten als solche erkannt, dh diese führen dann nicht dazu, dass auch die ganze Spalte zum genutzten Bereich gehört. Wenn man jetzt allerdings hier intensiv mit Formaten arbeitet, kann es sein, dass Excel dieses "Format für ganze Spalte" vergisst und dann hat auch die unterste Zeile dieser Spalte ein Format und damit zählen dann alle Zeilen zum genutzten Bereich.

zum Reparieren versuche mal, eine neue Datei anzulegen und dann die Inhalte rüber zu kopieren. Markiere dabei nur den tatsächlich genutzten Bereich.

für deine eigentliche Aufgabe:
nutze zum temporären Markieren die Bedingte Formatierung. Dann musst du nichts löschen oder wiederherstellen.
Gruß Daniel

Anzeige
AW: Grande Katastophe
17.07.2024 06:46:51
Nordic
Guten Morgen :)
Ich habe nun mit Dokumentenprüfung, mit Inquire "rumgetüddelt" und alle bedingten Formatierungen rausgenommen.
Nach dem ich die Scroll Restrictions entfernt hatte, wurde offenbar, was ich ahnte...
Beim Testen des Stammdatenimport hatte ich wohl das eine oder andere mal Daten im oberen Bereich übersehen, die neuen wurden angehängt - über die Scroll Restriction hinaus. Also habe ich auch das alles gelöscht. Außer ein paar KB brachte das nicht viel. Es blieb bei nun ~8,5MB (ursprünglich ~ 750KB)
Zuletzt habe ich alle Tabellenblätter jedes für sich in eine neue Mappe kopiert...
Ergebnis: Der Wurm ist in den ersten beiden (Stammdaten 2,6MB, 119-16-23 5,5MB), alle anderen haben eine erwartbare Größe ( alle zusammen ~440KB)
Die Einzelteile hab ich mal in der Dropbox abgelegt:
https://www.dropbox.com/scl/fo/710j56r2b8prw7kx1x3hz/AFr1iN_r68qzOWSbQqdjixU?rlkey=bl62ipte6rfmr0ybzosmi4ly0&dl=0

Kann es irgendwo noch einen versteckten Bereich geben, in dem Daten abgelegt wurde?
Um die Stammdaten vom System in die Exceldatei zu bekommen kann ich nur über den Weg gehen, mir für alle markierten Teilnehmer einen Stammdatenbericht genieren zu lassen und diesen als PDF zu speichern. Mit Hilfe von pdftotext und einem Phython-Script zieh ich dort die benötigten Daten raus und lass mir eine Exceldatei erstellen, die fix und fertig nur noch importiert werden muss
Sub DataImport()

Dim wsDest As Worksheet
Dim wsSrc As Worksheet
Dim wbSrc As Workbook
Dim lastRowDest As Long
Dim lastRowSrc As Long
Dim lastColSrc As Long
Dim nextRowDest As Long
Dim srcRange As Range
Dim cell As Range
Dim i As Long, j As Long
Dim duplicate As Boolean
Dim importFilePath As String
Dim backupFilePath As String
Dim newFileName As String
Dim timestamp As String
Dim newRows As Collection
Dim newRow As Long
Dim fso As Object
Dim logFilePath As String
Dim logMessage As String

Set wsDest = ThisWorkbook.Sheets("Stammdaten")

importFilePath = ThisWorkbook.Path & "\Import\Stammdaten.xlsx"
logFilePath = ThisWorkbook.Path & "\Bin64\Logs\error_log.txt"

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FileExists(importFilePath) Then
logMessage = GetCurrentTimestamp() & " - ImportStammdaten - Import file not found: " & importFilePath
WriteToLog logFilePath, logMessage
MsgBox "Die Importdatei wurde nicht gefunden.", vbCritical
Exit Sub
End If

Set wbSrc = Workbooks.Open(importFilePath)
Set wsSrc = wbSrc.Sheets(1)

lastRowSrc = wsSrc.Cells(wsSrc.Rows.Count, 1).End(xlUp).Row
lastColSrc = wsSrc.Cells(2, wsSrc.Columns.Count).End(xlToLeft).Column

nextRowDest = wsDest.Cells(wsDest.Rows.Count, 3).End(xlUp).Row + 1
If nextRowDest 7 Then nextRowDest = 7

Set srcRange = wsSrc.Range(wsSrc.Cells(2, 1), wsSrc.Cells(lastRowSrc, lastColSrc))

Set newRows = New Collection

For Each cell In srcRange.Rows
duplicate = False

For i = 7 To wsDest.Cells(wsDest.Rows.Count, 3).End(xlUp).Row
duplicate = True
For j = 1 To lastColSrc
If wsDest.Cells(i, j + 2).value > cell.Cells(1, j).value Then
duplicate = False
Exit For
End If
Next j
If duplicate Then Exit For
Next i

If Not duplicate Then
wsDest.Cells(nextRowDest, 3).Resize(1, lastColSrc).value = cell.Resize(1, lastColSrc).value
newRows.Add nextRowDest
nextRowDest = nextRowDest + 1
End If
Next cell

wbSrc.Close SaveChanges:=False

CopyNewRowsToSpecificSheets wsDest, newRows

timestamp = Format(Now, "yyyy.mm.dd_hh.mm.ss")

newFileName = timestamp & ".xlsx"
backupFilePath = ThisWorkbook.Path & "\Import\Backup\" & newFileName
Name importFilePath As backupFilePath

logMessage = GetCurrentTimestamp() & " - ImportStammdaten - Import and processing completed successfully."
WriteToLog logFilePath, logMessage

MsgBox "Import- und Kopiervorgang abgeschlossen!", vbInformation
End Sub

Sub CopyNewRowsToSpecificSheets(wsDest As Worksheet, newRows As Collection)
Dim ws119_16_23 As Worksheet
Dim ws119_6_24 As Worksheet
Dim rowNum As Variant
Dim nextRow119_16_23 As Long
Dim nextRow119_6_24 As Long
Dim dateValue As Date

Set ws119_16_23 = ThisWorkbook.Sheets("119-16-23")
Set ws119_6_24 = ThisWorkbook.Sheets("119-6-24")

nextRow119_16_23 = ws119_16_23.Cells(ws119_16_23.Rows.Count, 2).End(xlUp).Row + 1
If nextRow119_16_23 7 Then nextRow119_16_23 = 7

nextRow119_6_24 = ws119_6_24.Cells(ws119_6_24.Rows.Count, 2).End(xlUp).Row + 1
If nextRow119_6_24 7 Then nextRow119_6_24 = 7

For Each rowNum In newRows
dateValue = wsDest.Cells(rowNum, 14).value

If wsDest.Cells(rowNum, 13).value = "119-16-23" Then
ws119_16_23.Cells(nextRow119_16_23, 2).value = wsDest.Cells(rowNum, 3).value
ws119_16_23.Cells(nextRow119_16_23, 6).value = dateValue
ws119_16_23.Cells(nextRow119_16_23, 7).value = "x"
ws119_16_23.Cells(nextRow119_16_23, 14).value = "x"
nextRow119_16_23 = nextRow119_16_23 + 1
ElseIf wsDest.Cells(rowNum, 13).value = "119-6-24" Then
ws119_6_24.Cells(nextRow119_6_24, 2).value = wsDest.Cells(rowNum, 3).value
ws119_6_24.Cells(nextRow119_6_24, 6).value = dateValue
ws119_6_24.Cells(nextRow119_6_24, 7).value = "x"
ws119_6_24.Cells(nextRow119_6_24, 14).value = "x"
nextRow119_6_24 = nextRow119_6_24 + 1
End If
Next rowNum
End Sub


Was mir beim Testen aufgefallen ist:
Der jeweils erste Import und das Verteilen von rund 100 Datensätze in leere Tabellenblätter dauert nachvollziehbar ein paar Sekunden.
Lösche ich alle Daten und mach das ganze von vorn, ist es gefühlt nur ein "Wimpernschlag" bis sie im Blatt Stammdaten verfügbar sind.
Das Verteilen geht auch etwas schneller, aber nicht signifikant.
Speichere ich die Datei leer, schließe und öffne sie wieder, dauert der erste Import wieder ein paar Sekunden.
Es fühlt sich so an, als ob die Importdaten nach dem ersten Importieren zur Laufzeit irgendwo im Hintergrund liegen.
Der Gedanke: Vielleicht wurden diese beim "Crash" irgendwie "unsichtbar" mitgespeichert.
Kann das sein?

Das Blöde ist, ich wechsle das Unternehmen zum 31.07. und hätte mein "Privatprojekt" (ich hatte nie einen offiziellen Auftrag dazu, aber die wohlwollendende Duldung auch mal in der Arbeitszeit mich dem ein paar Stunden zu widmen) schon gerne eine funktionstüchtige und in einem gewissen Rahmen komplette Version hinterlassen.

Viele Grüße und einen guten Start in den Tag, Uwe
Anzeige
AW: Grande Katastophe
17.07.2024 09:32:33
Oberschlumpf
Hi Uwe,

unabhängig von den anderen Antwortern ist mir noch aufgefallen:

Nach Drücken der Tastenkombi Strg-Ende lande ich in Zelle TH1048576

Hier also...
...1048576 (1,05 MILLIONEN) Zeilen in Gebrauch!
...528 Spalten in Gebrauch!
= Zeilen mit Spalten multipliziert = 553.648.128 (über 553 Mio!) Anzahl genutzer ZELLEN, die Excel mit Calculate, bed. Format., usw bearbeiten muss, sofern betroffen

Obwohl nur...
...91 Zeilen (7-97) farblich markiert sind!
...487 Spalten (Z-SS) und davon nur 5 Zeilen (2-6) farblich markiert sind!

Wieso brauchst du über 1 Mio Zeilen?
Wieso brauchst du 528 Spalten, obwohl "nur" 487 gefärbt sind...und von denen eben nur 5 Zeilen (ab Spalte Z) genutzt werden?

(M)eine Erklärung könnte sein:
Wenn du mal aus Testgründen viel mehr Zeilen/Spalten genutzt hast, als du eigentlich brauchst...
...dann - reicht es nicht - die "TestZellen" zu markieren und nur auf Entfenen drücken
...hier MUSST du wirklich alle nicht mehr benötigen ZEILEN markieren, mit Rechtsklick "Zelle löschen" auswählen und wenn noch ein zusätzliches Fenster erscheint, "ganze ZEILE" löschen
...hier MUSST du wirklich alle nicht mehr benötigen SPALTEN markieren, mit Rechtsklick "Zelle löschen" auswählen und wenn noch ein zusätzliches Fenster erscheint, "ganze SPALTE" löschen

Ich hab mal aus deiner 5MB-Datei nur die farblichen Bereiche markiert, kopiert und in eine neue Datei eingefügt
(die ActveX-Controls hab ich mal nicht mitgenommen)

Rausgekommen ist das hier:
https://www.herber.de/bbs/user/171050.xlsx = Dateigröße = nur 81KB = 0,081 MB!

Hilft meine Idee denn?

Ciao
Thorsten
Anzeige
AW: Grande Katastophe
18.07.2024 20:53:58
Nordic
Moin Thorsten,

tut mir leid, dass du mich erinnern musstest, gestern und heute hatte ich noch ein paar Sachen aufm Zettel, die Vorrang hatten bevor ich morgen meinen letzten Tag habe und nach dem "Kurzurlaub" den Arbeitsplatz wechsele.
Tatsächlich bin ich davon ausgegangen, dass ich nur dort löschen muss, wo auch etwas eingetragen wurde.
Beim Testen des Import war das im ersten Tabellenblatt C7:N106, auf dem zweiten B7:Q77 und im dritten B7:Q45.
Im zweiten und dritten Blatt werden ein paar Spalten automatisch berechnet, ab den Spalten Z:SS war noch gar nichts eingetragen.
Diese Spalten dienen den Modulanteilen (1-11) oder Fehlzeiten (u.a. dienen 13 bedingte Formatierungen), die dann auch Auswirkung auf das tatsächliche Ende und die Fälligkeit des Berichts haben.
Wie lässt es sich vermeiden, dass tatsächlich nicht mehr Zellen benutzt werden als vorgesehen?

Das Ganze Projekt hat mal kein angefangen und dann kam eins zum anderen.
Mit ein paar Gedanken in die Zukunft hätte ich wahrscheinlich am besten gleich ein Datenbankanwendung daraus gemacht.
Vor kurzem schwebt mir noch vor, die Daten komplett nach Access auszulagern und Excel nur zum "Rechnen" und Visualisieren zu nutzen.

Grüße und einen angenehmen Abend, Uwe
Anzeige
AW: Grande Katastophe
18.07.2024 18:28:04
Oberschlumpf
na Uwe, keine Lust mehr oder keine Zeit mehr zu antworten?
AW: Grande Katastophe
17.07.2024 08:34:25
peter
Hallo

Wie ich Dir schon geschrieben habe, konnte ich Deine Datei wieder auf 700Kb reduzieren (mit ALLEN bedingten Formatierungen). Excel hat scheinbar ein Problem bei Formatierung von Zellen. Im Normalfall wird in der XML Datei (je Tabelle ein File) immer ein Range benutzt wenn viele Zellen das selbe Format haben aber es kommt immer wieder vor, das das Format für jede einzelne Zelle eingetragen wird, dadurch wächst der XML File ins unendliche. Die 5MB die Du siehst entsprechen in Wirklichkeit ca. 100MB (XLSX ist ein gezippte Dateistruktur, kannst Du überprüfen in dem Du die Datei mit z.B. 7Zip öffnest). Microsoft hat das Problem erkannt (aber nicht gelöst) und hat daher in Inquire ein Behebungstool eingefügt.

Peter
Anzeige
AW: Grande Katastophe
17.07.2024 08:54:27
Nordic
Moin Peter,
ich dachte, dass ich wie von Dir beschrieben mit den einzelnen Schritten zum gleichen Ergebnis von 700kb komme.
Kannst Du mir Dein Ergebnis zur Verfügung stellen?
Evtl. kannst Du es auf meine Dropbox hochladen.
Lieber Gruß, Uwe
AW: Grande Katastophe
18.07.2024 21:02:44
Nordic
Moin Peter,
wie auch immer Du den alten Zustand wieder hergestellt hast (analog Deiner Beschreibung hatte ich das auch versucht), vielen lieben Dank dafür :)
Ich werd' , vermutlich aber erst am WE, den VBA Code Schritt für Schritt wieder einbauen.
Bis auf die nicht ganz so glückliche Idee der grünen Zellmarkierung vor der jeweiligen "Trefferzelle" lief alles soweit ohne Probleme.
Zumindest nicht, dass ich sie wahrgenommen hätte. Dass Scroll Restriktionen nicht davor schützen, dass die Zellen außerhalb trotzdem beschrieben werden ist mir jetzt erst in dem Zusammenhang aufgefallen als ich die Beschränkung aufgehoben habe...
Viele Grüße und einen entspannten Abend, Uwe
Anzeige
AW: Grande Katastophe
16.07.2024 14:53:45
Nordic
Moin Daniel,
das bringt mich auf eine Idee.
Ich hatte schon länger ein Set Scroll Restrictions via VBA hinterlegt.
Mit der Vermutung, dass in den "verbotenen" Bereichen was rumliegt, was da nicht sein sollte, wollte ich das irgendwie rückgängig machen.
In den jeweiligen Tabelleneigenschaften ist dort aber kein Eintrag zu finden.

Der Code in GerneralServices dazu:
Public Sub SetScrollRestrictions()

Dim maxScrollRow As Long
Dim ws As Worksheet
Set ws = ActiveSheet

ws.Unprotect password:="2024"

Select Case ws.name
Case "Stammdaten"
maxScrollRow = 166
Case "119-16-23", "119-6-24"
maxScrollRow = 97
Case "Unterrichtsplan"
maxScrollRow = 48
Case "Nachbetreuung"
maxScrollRow = 36
Case Else
maxScrollRow = ws.Rows.Count
End Select

ActiveWindow.ScrollRow = 1
If maxScrollRow ws.Rows.Count Then
ws.Rows(maxScrollRow + 1 & ":" & ws.Rows.Count).Interior.Color = RGB(255, 255, 255)
ws.Rows(maxScrollRow + 1 & ":" & ws.Rows.Count).EntireRow.Hidden = True
End If

ws.Protect password:="2024"
Application.ScreenUpdating = True
End Sub


Was das ganze zum "Crash" führte:

Ausgehend von der Suche auf einem Tabellenblatt (z.B. Stammdaten):
Private Sub txtSearch_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 13 Then
GeneralServices.HandleSearch 1, "C", txtSearch.value, 3, 14
txtSearch.Text = ""
End If
End Sub


Modul GeneralServices:
Public Sub HandleSearch(sheetIndex As Integer, searchColumn As String, searchValue As String, Optional selectRangeStart As Integer = 2, Optional selectRangeEnd As Integer = 13)

Dim ws As Worksheet
Dim cell As Range
Dim found As Boolean
Application.ScreenUpdating = False

Set ws = Worksheets(sheetIndex)

If Trim(searchValue) = "" Then
Application.ScreenUpdating = True
Exit Sub
End If

ThisWorkbook.Unprotect password:="2024"
ws.Unprotect password:="2024"

RemovePreviousMarkings ws

found = False
For Each cell In ws.Columns(searchColumn).Cells
If InStr(1, cell.value, searchValue, vbTextCompare) > 0 And cell.Row >= 7 Then
ws.Cells(cell.Row, 1).Interior.Color = RGB(0, 255, 0)
found = True
Exit For
End If
Next cell

ws.Protect password:="2024", UserInterfaceOnly:=True
ThisWorkbook.Protect password:="2024"

Application.ScreenUpdating = True

If Not found Then
MsgBox "Suchbegriff nicht gefunden.", vbExclamation
End If
End Sub

Public Sub SelectionChangeHandler(ws As Worksheet)
On Error Resume Next
ws.Unprotect password:="2024"
RemovePreviousMarkings ws
ws.Protect password:="2024", UserInterfaceOnly:=True
On Error GoTo 0
End Sub

Public Sub RemovePreviousMarkings(ws As Worksheet)
Dim cell As Range
For Each cell In ws.Columns("A").Cells
If cell.Interior.Color = RGB(0, 255, 0) Then
cell.Interior.ColorIndex = xlNone
End If
Next cell
End Sub


Und am Ende des Tabellenblatt:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

GeneralServices.SelectionChangeHandler Me
End Sub


Ich weiß, ist nicht optimal, aber vielleicht sieht Du wo der Crash passiert ist, damit ich mir den nicht noch mal bau.

Grüße, Uwe
Anzeige
AW: Grande Katastophe
16.07.2024 15:10:46
Alwin Weisangler
Hallo Uwe,

was beim Flüchtigen drüber schauen auffällt:
Die optionalen Variablen gibst du zwar mit, werden aber nicht weiterverarbeitet. Das bedeutet, dass die komplette Spalte in der For Each Schleife verarbeitet wird.
Das wäre auf jeden Fall noch in die Prozedur "HandleSearch" einzubauen (For Each Schleife läuft damit schneller durch).
GeneralServices.HandleSearch brauchst du so nicht. Da diese Prozedur Public ist reicht: HandleSearch.

Gruß Uwe
Anzeige
AW: Grande Katastophe
16.07.2024 15:33:25
ralf_b
außerdem (siehe Alwin), wird immer die ganze Spalte durchsucht. und jede!! Zelle einzeln durchsucht und geändert. Wenn's mal bissel länger dauert dann auch deshalb.
Jede Zelländerung löst ein calculate aus. Bei vielen Formeln stehste da auch und wartest.
Tip: Die betreffenden Zellen in einer Range sammeln und diese dann nach der Schleife bearbeiten.
Anzeige
AW: Grande Katastophe
16.07.2024 17:43:20
Nordic
Sollte ich das Teil wieder "schlank" und wie bisher lauffähig bekommen, ist die "grüne Zelle" ohnehin Geschichte.
Ursprünglich wurde bei einem Suchtreffer die entsprechende Zeile bis zu einer bestimmten Spalte selektiert.
Das hatte aber gerade die Tage den Nachteil, dass ich mir den Inhalt der "Trefferzelle" überschrieben habe, da ich die Selektierung durch Klick ins Suchfeld nicht aufgehoben habe. Ich wäre vermutlich nicht der einzige dem das passiert.
Wahrscheinlich werde ich die gesamten Tabellenblätter sperren und mittels Checkbox die Sperre bestimmter Zellbereiche ein- und ausschalten - sofern diese Art von Sperre für separat handlebar ist, da ich nicht das gesamte Tabellenblatt entsperren möchte. Bereiche in die keine Daten eingetragen werden (dürfen) sollen weiterhin geschützt bleiben.
Anzeige
AW: Grande Katastophe
16.07.2024 17:48:06
Onur
Statt
In ws.Columns(searchColumn).Cells

DAS
In ws.UsedRange.Columns(searchColumn).Cells

bzw statt
In ws.Columns("A").Cells

DAS
In ws.UsedRange.Columns("A").Cells
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige