Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Inhalt aus Zeilen und Spalten Löschen die nicht gesperrt sind
#1
Hallo zusammen, 
ich bin neu hier da ich vor einem Excel/ VBA Problem stehe. 

Für die Arbeit habe ich eine Entscheidungsmodell aufgebaut, welches verschiedene Lieferanten betrachtet und bewertet. Zwischen den einzelnen Lieferanten sind ausgeblendete Spalten und Zeilen mit Formeln, welche gesperrt sind. 
Mein Plan im Kopf ist, dass beim Drücken einer Schaltfläche (nennen wir sie "Blatt leeren") der Zellinhalt der nicht gesperrten Zellen gelöscht wird. Der Bereich wäre von J9:AL74
ich habe schon verschiedene Makros gefunden aber leider hat nichts davon geklappt.  20
Danke im Voraus. 

Dobi
Antworten Top
#2
Pseudocode:

Von i = 1 bis Bereich-Zeilen
Von j = 1 bis Bereich-Spalten
Wenn Bereich(i,j).Schutz = Falsch Dann Bereich(i,j).Leeren
Nächstes j
Nächstes i
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • Dobi
Antworten Top
#3
Hallo,

das VBA-Schlüsselwort ist "Range.locked". Also sollen alle Zellen gelöscht werden, deren Wert "false" ist.

Pseudocode

Code:
for each ar in activesheet.usedrange.cells
     if ar.locked = false then ar.clear
next ar

mfg
Antworten Top
#4
Danke Fennek, 
leider kommt bei mir die Meldung dass dies bei verbundenen Zellen nicht möglich ist. Muss ich das nun durch einen weiteren Code ergänzen?

Grüße
Dobi
Antworten Top
#5
Auf welchen Teil in #4 reagieren wir vermutlich allergisch?
Antworten Top
#6
Hallöchen,

Code:
For Each ar In ActiveSheet.UsedRange.Cells
     If ar.Locked = False And ar.MergeCells = False Then ar.Clear
Next ar

Wenn Du was in den verbundenen Zellen entfernen willst muss man sich was anderes einfallen lassen, z.B.

Code:
For Each ar In ActiveSheet.UsedRange.Cells
     If ar.Locked = False And ar.MergeCells = False Then ar.Clear
     If ar.Locked = False And ar.MergeCells = True Then ar.Value = ""
Next ar
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste