Avatar billede FinnLauridsen Forsker
26. juni 2016 - 17:23 Der er 7 kommentarer og
2 løsninger

Clear alle felter

Jeg har denne formel:


Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
  If Target.Validation.Type = 3 Then
  Application.EnableEvents = False
  Target.Offset(0, 1).ClearContents
  End If
End If

exitHandler:
  Application.EnableEvents = True
  Exit Sub

End Sub

Men den sletter kun de to første kolonner, men jeg har fire kolonner der gerne skulle slettes hvis kolonne et slettes

er der nogen løsning/ Hjælp på dette ?
Avatar billede claes57 Ekspert
26. juni 2016 - 19:29 #1
test lige selv:
ret linje 3 til
If Target.Column = 2 or Target.Column = 3 or Target.Column = 4 Then
Avatar billede FinnLauridsen Forsker
26. juni 2016 - 22:06 #2
Desværre tager den kun de 2 første kolonner
Avatar billede jens48 Ekspert
26. juni 2016 - 22:41 #3
Det er ikke helt klart hvad du ønsker, men hvis jeg forstår dig korrekt vil udskiftning af linie 6 med nedenstående klare problemet. Ellers må du forklare nøjere.

Range(Target.Offset(0, 1), Target.Offset(0, 3)).ClearContents
Avatar billede store-morten Ekspert
26. juni 2016 - 22:50 #4
Tilføj:
  Target.Offset(0, 1).ClearContents 'slet 1. celle til højre
  Target.Offset(0, 2).ClearContents 'slet 2. celle til højre
Avatar billede store-morten Ekspert
26. juni 2016 - 23:25 #5
Synes ikke det helt spiller!

If Target.Validation.Type = 3 Then

Skal stoppe makroen hvis ikke cellen indeholder en liste, det gør den ikke, hvis cellen ikke har en Datavalidering?

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler
If Target.Column = 2 Then
  If Target.Validation.Type = 3 Then
  Application.EnableEvents = False
  Target.Offset(0, 1).ClearContents
  End If
End If

exitHandler:
  Application.EnableEvents = True
  Exit Sub

End Sub

On Error GoTo exitHandler, ser ud til at virke, da If Target.Validation.Type = 3 giver en fejl, hvis celle ikke har Datavalidering.
Avatar billede FinnLauridsen Forsker
26. juni 2016 - 23:45 #6
jens 48
Udskiftning af linie 6 virker efter hensigten
Tak
Avatar billede store-morten Ekspert
26. juni 2016 - 23:47 #7
Så den kunne se sådan ud:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo exitHandler 'hvis fejl, eks. ingen Datavalidering
If Target.Column = 2 Then 'hvis der ændres i kolonne B
  If Target.Validation.Type = 3 Then  'hvis cellen har en Liste
  Application.EnableEvents = False
  Target.Offset(0, 1).ClearContents 'sletter i C
  Target.Offset(0, 2).ClearContents 'sletter i D
  Target.Offset(0, 4).ClearContents 'sletter i E
  End If
End If

exitHandler:
  Application.EnableEvents = True
  Exit Sub

End Sub
Avatar billede FinnLauridsen Forsker
27. juni 2016 - 06:28 #8
Hej Store Morten
formlen virker som du har lavet den men hvis:
Target.Offset(0, 4).ClearContents 'sletter i E  laves om til
Target.Offset(0, 3).ClearContents 'sletter i E så sletter den alle kolonnerne

Takker
Avatar billede store-morten Ekspert
27. juni 2016 - 11:19 #9
Hej Finn
Godt du så fejlen ;-)
Jeg ville have skrevet:
Target.Offset(0, 4).ClearContents 'sletter i F
Som eks. på hvordan man selv bestemmer celle.

Du køre makroen ved ændring i hele kolonne B med denne:
If Target.Column = 2 Then 'hvis der ændres i kolonne B

Det kan evt. rettes til enkelte celler med:
If Not Intersect(Target, Range("B2, B4")) Is Nothing Then 'ved ændring i B2 og B4
Eller et område med:
If Not Intersect(Target, Range("B2:B10")) Is Nothing Then 'ved ændring i B2 til B10
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester