Clever-Excel-Forum

Normale Version: Werte löschen ohne Blatt anzuzeigen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
hi, wie kann ich in Tabelle2 die Felder B3:B5 löschen, ohne dass das Tabellenblatt angezeigt wird?

So wird ja Tabelle2 angezeigt:
Code:
Worksheets("Tabelle2").Select
Range("B3:B5").Select
Selection.ClearContents
Hallo Julia,

die einfachste Möglichkeit, mit Application.ScreenUpdating. Wie das funktioniert,
habe ich Dir eigentlich soeben in Deinem Nachbarthread erklärt  :19:  Da komme
ich nämlich gerade her  :05:
Probiere es mal aus.
Hi Julia,


Code:
Option Explicit

Sub LoeschenWS2()
   With Worksheets("Tabelle2")
   .Range("B3:B5").ClearContents
   End With
End Sub


Code in 'Diese Arbeitsmappe'. Egal in welchem Blatt du bist; es werden die angegebenen Bereich gelöscht, ohne Tabelle2 zu zeigen (es sei denn, du bist gerade in diesem Blatt).
Hallo Günter,

(16.11.2017, 08:13)WillWissen schrieb: [ -> ]
Code:
Option Explicit

Sub LoeschenWS2()
   With Worksheets("Tabelle2")
   .Range("B3:B5").ClearContents
   End With
End Sub


Code in 'Diese Arbeitsmappe'.

Ich würde deinen Code in ein allgemeines Modul einfügen, denn in diese Arbeitsmappe hat er eigentlich nichts zu suchen.
Hi Stefan,

danke für deine Verbesserung (du weißt ja, VBA und ich...  :32:)
Kannst du mir bitte noch erklären, warum der Code in einem allg. Modul besser aufgehoben ist? Danke dir schon mal.
Moin Günter!
Bin zwar nicht der Stefan, aber:
In Objekt-Klassen wie Tabelle, Workbook, UserForm sollte auch nur Code stehen, der Bezug zum Objekt hat.
Dazu gehören vor allem Ereignis-Makros.

Hier mal eine korrekte Referenzierung zum Problem des TE:
Code:
Application.ThisWorkbook.Worksheets("Tabelle2").Range("B3:B5").ClearContents

Was im linken Bereich weggelassen werden kann, muss im Zweifel überprüft werden.
Hier reicht sicherlich:
Code:
Worksheets("Tabelle2").Range("B3:B5").ClearContents

Gruß Ralf
Hi Ralf,

vielen Dank für die prima Erklärung; das hilft mir sehr.
jo, danke euch!