50 Aufrufe
Gefragt in Tabellenkalkulation von addeguddi Experte (2.6k Punkte)
Ein nettes Hallo an die Experten.

Suche Lösung zum automatischen Löschen, habe schon zig Möglichkeiten ausprobiert, kriege es einfach nicht gebacken, dass sich diese vorgegebenen Zellen löschen. Vielleicht hat jemand von den Experten eine Lösung für mich: Diese Zellen sollen sollen, wenn in den Zellen LC9 ist 301 oder LE9 ist 301 dann diese Zellen löschen. "B19:x127,K11:JZ11,z19:jz127". Habe ein VBA erstellt aber es geschieht nichts. Wahrscheinlich wieder ein Gedanken Fehler aber ich weiß nicht mehr weiter. Den Button zum klicken möchte ich mir ersparen, den habe ich schon, da klappt es.

Das ist das VBA in einem separaten Modul.

Sub löschen2062023()
ActiveSheet.Unprotect

'Bildschirmaktualisierung ausschalten:

Application.ScreenUpdating = False

'automatische Berechnung ausschalten:

Application.Calculation = xlManual
'
' löschen2062023 Makro
'

'
    Range("B19:x127,K11:JZ11,z19:jz127").Select
    Selection.ClearContents
    Range("F1").Select
'automatische Berechnung einschalten:

Application.Calculation = xlAutomatic

'Bildschirmaktualisierung einschalten:

Application.ScreenUpdating = True
ActiveSheet.Protect
End Sub

F1 Sagt aus das es bis 90 Spiele geht

Mal schauen ob jemand mir helfen kann.

Gruß Adde

2 Antworten

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)

Hallo Adde,

dein Code funktioniert nicht automatisch. Du musst das Makro starten, damit der Code ausgeführt wird. Auch werden dort die Zellen LC9 und LE9 nicht abgefragt.

Da ich mal annehme, dass in diesen beiden Zellen eine Formel hinterlegt ist, habe ich dir folgendes Makro geschrieben:

Private Sub Worksheet_Calculate()

If Range("LC9").Value = 301 Or Range("LE9").Value = 301 Then
  ActiveSheet.Unprotect
  'Bildschirmaktualisierung ausschalten:
  Application.ScreenUpdating = False
  'automatische Berechnung ausschalten:
  Application.Calculation = xlManual
  'Bereiche löschen
  Range("B19:x127,K11:JZ11,z19:jz127").ClearContents
  Range("F1").Select
  ActiveSheet.Protect
  'automatische Berechnung einschalten:
   Application.Calculation = xlAutomatic
  'Bildschirmaktualisierung einschalten:
  Application.ScreenUpdating = True
End If

End Sub

Füge den Code in das VBA-Projekt des betreffenden Arbeitsblattes ein. Der Code löscht automatisch die Bereiche wenn in LC9 oder LE9 der Wert 301 erreicht ist.

Teste das aber erst einmal in einer Testtabelle.

Grüße

M.O.

0 Punkte
Beantwortet von addeguddi Experte (2.6k Punkte)
Guten Morgen MO

Vielen lieben Dank für deine Antwort,

Habe es umgesetzt, es Klappt.

Gruß Adde
...