Microsoft Excel

Herbers Excel/VBA-Archiv

Macro Feld löschen wenn...

Betrifft: Macro Feld löschen wenn... von: Erik
Geschrieben am: 15.03.2016 10:43:13

Hallo zusammen.

Ich bräuchte ein Makro das die Felder M & N löscht wenn zuvor die Felder D bis K markiert und durch drücken der Entf Taste gelöscht wurden.

Feld L ist für die Bearbeitung gesperrt deshalb sollte das Makro die beiden letzten Felder autom. löschen.

Ist das möglich ?

Gruß

Erik

  

Betrifft: AW: Macro Feld löschen wenn... von: ChrisL
Geschrieben am: 15.03.2016 11:00:45

Hi Erik

Vielleicht so...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 3 And Target.Column < 12 Then
    If WorksheetFunction.CountBlank(Range(Cells(Target.Row, 4), Cells(Target.Row, 11))) = 8  _
Then
        ActiveSheet.Unprotect
        Range(Cells(Target.Row, 13), Cells(Target.Row, 14)).ClearContents
        ActiveSheet.Protect
    End If
End If
End Sub

Alt + F11, links Doppelklick auf die Tabelle, Code einfügen.

cu
Chris


  

Betrifft: AW: Macro Feld löschen wenn... von: Erik
Geschrieben am: 15.03.2016 11:52:23

Hallo Chris,

vielen Dank funktioniert.
Allerdings habe ich bemerkt, das das löschen von Feld M nicht genwünschten Effekt bringt, den ich brauch.
kann man auch anstelle des Clear Befehls einen Doppelklick simmulieren?

Gruß Erik


  

Betrifft: AW: Macro Feld löschen wenn... von: Erik
Geschrieben am: 15.03.2016 11:53:48

Hallo Chris,

vielen Dank funktioniert.
Allerdings habe ich bemerkt, das das löschen von Feld M nicht genwünschten Effekt bringt, den ich brauch.
kann man auch anstelle des Clear Befehls einen Doppelklick simmulieren?

Gruß Erik


  

Betrifft: AW: Macro Feld löschen wenn... von: ChrisL
Geschrieben am: 15.03.2016 12:45:17

Hi Erik

Hast du da ein DoubleClick Event?
Lagere den Code aus dem Event in eine separate Prozedur aus und rufe diese mittels Call im Event auf. Nach dem gleichen Prinzip kannst du dann das Change Ereignis steuern.

Oder lade einfach mal ein Beispiel hoch.

cu
Chris


  

Betrifft: AW: Macro Feld löschen wenn... von: Erik
Geschrieben am: 15.03.2016 14:21:34

Hallo Chris,

anbei hier der Link zu meiner Tabelle.

https://www.herber.de/bbs/user/104352.xls


Das ist leider schon zu kompliziert für mich.


Gruß und Danke vorab

Erik


  

Betrifft: AW: Macro Feld löschen wenn... von: ChrisL
Geschrieben am: 15.03.2016 14:48:23

Hi Erik

Probier mal so...

If Not Intersect(Target, Range("D7:K200")) Is Nothing Then
If WorksheetFunction.CountBlank(Range(Cells(Target.Row, 4), Cells(Target.Row, 11))) = 8 Then
Range(Cells(Target.Row, 13), Cells(Target.Row, 14)).ClearContents
Rows(Target.Row).Interior.Pattern = xlNone
End If
End If


Ich glaube das DoubleClick Event spielt keine Rolle. Der Ansatz mit Target.Column geht in die Hose, wenn ab z.B. Spalte A markiert wird, darum mit Intersect.

cu
Chris


  

Betrifft: AW: Macro Feld löschen wenn... von: Erik
Geschrieben am: 15.03.2016 15:07:42

Hallo Chris,

Danke geht !! Genial

Gruß

Erik


  

Betrifft: AW: Macro Feld löschen wenn... von: Erik
Geschrieben am: 15.03.2016 16:29:43

Hallo Chris,

noch eine Frage (dann nerv ich nicht mehr ;-) )

Wenn ich oben den Code für eine Zelle brauche

If Not Intersect(Target, Range("I7:I200")) Is Nothing Then
If WorksheetFunction.CountBlank(Range(Cells(Target.Row, 9)) = 1 Then
Range(Cells(Target.Row, 13).ClearContents
Rows(Target.Row).Interior.Pattern = xlNone
End If
End If

Funktioniert aber so nicht.

Was ist falsch?

Gruß

Erik


  

Betrifft: AW: Macro Feld löschen wenn... von: ChrisL
Geschrieben am: 15.03.2016 17:12:24

Hi Erik

so...

If Not Intersect(Target, Range("I7:I200")) Is Nothing Then
If WorksheetFunction.CountBlank(Cells(Target.Row, 9)) = 1 Then
Cells(Target.Row, 13).ClearContents
Rows(Target.Row).Interior.Pattern = xlNone
End If
End If

cu
Chris


 

Beiträge aus den Excel-Beispielen zum Thema "Macro Feld löschen wenn..."