Frage von LGTipps, 89

Excel 13- alle nicht gesperrten Zellen auswählen?

Hallo zusammen,

gibt es eine Möglichkeit in einem Excel 13 Dokument mit Blattschutz alle nicht geschützten Zellen auszuwählen?

STR+A funktioniert nicht und jede Zelle manuell auszuwählen ist ganz schöne Arbeit...

Vielen Dank für eure Hilfe! ^^

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Oubyi, Community-Experte für Excel, 62

Wenn Du das öfter brauchst, dann kannst Du EINMAL alle Zellen manuell mit STRG auswählen und dann dafür einen Namen vergeben (im Adressfeld links oben). Dann brauchst Du später nur den Namen ins Adressfeld einzugeben und hast alle markiert.
Sonst sehe ich da nur den Weg über einen VBA-Code.
Dieser sollte eigentlich funktionieren:

Sub AlleMarkieren()
Dim Zelle As Range
Dim Bereich As Range
Dim Erste As Boolean
Erste = True

For Each Zelle In UsedRange
If Zelle.Locked = False Then
If Erste = True Then
Erste = False
Set Bereich = Zelle
Else:
Set Bereich = Union(Bereich, Zelle)
End If
End If
Next Zelle
Bereich.Select
End Sub
Aber vielleicht kennt der Excel Profi table1 hier doch noch eine elegantere Möglichkeit?

Wenn Du noch Hilfe zu einer der beiden Möglichkeiten brauchst, dann frage einfach nach.

Kommentar von dkilli ,

Das war wie immer von dir eine ausgezeichnete Antwort. Diese Antwort hat es verdient als "Hilfreichste Antwort" ausgezeichnet zu werden.

Kommentar von Oubyi ,

@dkilli: Danke! (:o)

Kommentar von LGTipps ,

Vielen Dank für den Vorschlag- da Excel jedoch ohnehin nur zusammenhängende Bereiche kopieren kann, nützt mir das Markieren aller nicht gesperrten Zellen ohnehin nichts... :/

Kommentar von Oubyi ,

Gern geschehen.
Von kopieren war in Deiner Frage auch keine Rede.
Ich war von - zum Beispiel - Formatierungen ausgegangen.
Kopieren kann man das natürliche - Zelle für Zelle - auch über einen erweiterten VBA Code.

Kommentar von Oubyi ,

Danke fürs

Kommentar von Oubyi ,

Mit kopieren sähe der Code dann so aus:

Sub AlleMarkieren()
Dim Zelle As Range
Dim Bereich As Range
Dim Erste As Boolean
Erste = True

For Each Zelle In UsedRange
If Zelle.Locked = False Then
If Erste = True Then
Erste = False
Set Bereich = Zelle
Else:
Set Bereich = Union(Bereich, Zelle)
End If
End If
Next Zelle

For Each Zelle In Bereich
Zelle.Copy Sheets("Tabelle2").Range(Zelle.Address)
Next Zelle

End Sub

Muss ggf. noch genauer referenziert werden.

Kommentar von LGTipps ,

Und damit kann ich alle nicht gesperrten Zellen an gleiche Stelle in ein anderes Excel Dokument übertragen? Auch wenn diese nicht aneinander grenzen..?

Kommentar von Oubyi ,

Ja, kannst Du.
Im obigen Code allerdings erstmal in eine anderes Tabellenblatt ("Tabelle2").
Das lässt sich aber auch auf ein anderes (geöffnetes) Dokument erweitern.

Antwort
von table1, 65

Versuche es mit STRG+Linke Maustaste auf die jeweiligen Zellen. Das sollte gehen. 

Kommentar von LGTipps ,

Ja, aber dann mus ich jede Zelle einzeln auswählen- diesen Arbeitsaufwand will ich ja gerade vermeiden. :)

Kommentar von table1 ,

Ja aber anders geht es nicht? Akzeptiere es doch einfach... 

Kommentar von LGTipps ,

Ganz entspannt, ich habe lediglich gefragt, ob es eine andere Lösung gibt... :D

Kommentar von NMirR ,

nur weil du die Lösung nicht kennst, heißt es ja nicht, dass es keine gibt.

Kommentar von table1 ,

Doch, ich bin Excel Profi. Was erlaubst du dir eigentlich? 

Kommentar von flowerwithloser ,

Und dann noch frech werden, als "Profi". Haha.

Keine passende Antwort gefunden?

Fragen Sie die Community