Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketkontroler for x hvis der ikke er x så slet

 Besvar Besvar
Forfatter
icet Se dropdown
Bronze bruger
Bronze bruger


Medlem: 08.Nov.2013
Status: Offline
Point: 95
Direkte link til dette indlæg Emne: kontroler for x hvis der ikke er x så slet
    Sendt: 18.Nov.2018 kl. 12:41

roder med at man klikker på knap1 og så skal koden kigge på x'er og slette der hvor der ikke er x'er og til sidst x'er
der kan være x i den første eller de 2 første eller kun i den 3 Confused
Til top



Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 10:39
Hvorfor ikke bare køre hver sektion enkeltvis ?

Private Sub CommandButton1_Click()
'-----------------------------------------------------------'
' Ark1 udskiftes med det rigtige ark-navn                   '
' x'et skal være et lille bogstav, både i cellerne og koden '
'-----------------------------------------------------------'

    If Sheets("Ark1").Range("B2").Value <> "x" Then '...........Hvis B2 er forskelligt fra "x"
        Sheets("Ark1").Range("B4:B8").Value = ClearContents '...Så slet B4 til B8
    End If
    
    If Sheets("Ark1").Range("D2").Value <> "x" Then
        Sheets("Ark1").Range("D4:D8").Value = ClearContents
    End If
    
    If Sheets("Ark1").Range("F2").Value <> "x" Then
        Sheets("Ark1").Range("F4:F8").Value = ClearContents
    End If
    
    If Sheets("Ark1").Range("H2").Value <> "x" Then
        Sheets("Ark1").Range("H4:H8").Value = ClearContents
    End If
    
    Sheets("Ark1").Range("B2, D2, F2, H2").ClearContents '......Slet til sidst x'er i B2-D2-F2-H2
End Sub

Bemærk at x'et skal være et lille bogstav i både kode og celle for at virke.

Hvis det skal være ligegyldigt hvad der skrives i cellerne, skal x'et fjernes fra koden i alle linjerne.
Herefter kan der skrives ABC eller hvad man lyster.
    If Sheets("Ark1").Range("B2").Value <> "" Then '............Hvis B2 er forskelligt fra ""
        Sheets("Ark1").Range("B4:B8").Value = ClearContents '...Så slet B4 til B8
    End If
Til top
icet Se dropdown
Bronze bruger
Bronze bruger


Medlem: 08.Nov.2013
Status: Offline
Point: 95
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 09:33
koden indtil nu, men sgu ette med multi select så jeg evt. kan vælge 3 der ikke skal slettes :-/


Sub Knap1_Klik()

Select Case test

Case Range("B2").Value = x
        Range("D4:D8,F4:F8,H4:H8").Select
   Selection.ClearContents
  
   Range("B2:F2").Select
   Selection.ClearContents
  
    Range("B4").Select
  
Case Range("D2").Value = x
   Range("B4:B8,F4:F8,H4:H8").Select
    Selection.ClearContents
   
    Range("B2:F2").Select
   Selection.ClearContents
  
   Range("B4").Select
 
Case Range("F2").Value = x
   Range("B4:B8,D4:D8,H4:H8").Select
    Selection.ClearContents
   
    Range("B2:F2").Select
   Selection.ClearContents
  
   Range("H4").Select
Case Range("H2").Value = x
   Range("B4:B8,D4:D8,F4:F8").Select
    Selection.ClearContents
   
    Range("B2:H2").Select
   Selection.ClearContents
  
   Range("B4").Select
  

End Select
End Sub
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 10:39
Hvorfor ikke bare køre hver sektion enkeltvis ?

Private Sub CommandButton1_Click()
'-----------------------------------------------------------'
' Ark1 udskiftes med det rigtige ark-navn                   '
' x'et skal være et lille bogstav, både i cellerne og koden '
'-----------------------------------------------------------'

    If Sheets("Ark1").Range("B2").Value <> "x" Then '...........Hvis B2 er forskelligt fra "x"
        Sheets("Ark1").Range("B4:B8").Value = ClearContents '...Så slet B4 til B8
    End If
    
    If Sheets("Ark1").Range("D2").Value <> "x" Then
        Sheets("Ark1").Range("D4:D8").Value = ClearContents
    End If
    
    If Sheets("Ark1").Range("F2").Value <> "x" Then
        Sheets("Ark1").Range("F4:F8").Value = ClearContents
    End If
    
    If Sheets("Ark1").Range("H2").Value <> "x" Then
        Sheets("Ark1").Range("H4:H8").Value = ClearContents
    End If
    
    Sheets("Ark1").Range("B2, D2, F2, H2").ClearContents '......Slet til sidst x'er i B2-D2-F2-H2
End Sub

Bemærk at x'et skal være et lille bogstav i både kode og celle for at virke.

Hvis det skal være ligegyldigt hvad der skrives i cellerne, skal x'et fjernes fra koden i alle linjerne.
Herefter kan der skrives ABC eller hvad man lyster.
    If Sheets("Ark1").Range("B2").Value <> "" Then '............Hvis B2 er forskelligt fra ""
        Sheets("Ark1").Range("B4:B8").Value = ClearContents '...Så slet B4 til B8
    End If
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
icet Se dropdown
Bronze bruger
Bronze bruger


Medlem: 08.Nov.2013
Status: Offline
Point: 95
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 10:47
at tænke sig at det var så simpelt hmmmmmmm men fedt og tak for hjælpen SmileSmile
Til top
icet Se dropdown
Bronze bruger
Bronze bruger


Medlem: 08.Nov.2013
Status: Offline
Point: 95
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 10:48
Smile
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 11:34
Velbekom Wink

Jeg er ikke "nørd" og det jeg lavede er helt simpel og grundlæggende kodning, der kan bruges over alt.

I stedet for = Clearcontents kan man også skrive = 2 oppestrofer "" - der betyder "ingenting".
Og så skal man kun defienere området, der skal slettes, som B4, hvis B4:B8 er flettede celler, da B4 dækker alle de flettede celler.

Sheets("Ark1").Range("B4").Value = ""

Grundlæggende tegn der kan bruges og som man lærte i matematik i skolen
=    Lig med
""    Lig med ingenting
<    Mindre end
>    Større end
<=  Mindre end og lig med
>=  Større end og lig med
<>  Forskellig fra

Hvis der bruges en IF sætning, skal den som minimum indeholde IF - THEN - END IF.

Med disse simple grundregler, kan man lave mange koder.
Det er kun fantasien, der sætter grænser LOL
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
icet Se dropdown
Bronze bruger
Bronze bruger


Medlem: 08.Nov.2013
Status: Offline
Point: 95
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 13:10
kan sagtens se det nu Smile og mere simpelt end den "Case" ting jeg var ved at bygge op Smile
og tak igen

Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 13:42
Nå undskyld.. Havde ikke set, det også var dig, der havde tastet CASE koden, men troede det var en andens forslag LOL

Så havde jeg jo ikke behøves forklare en masse om grundlæggende VBA, da du helt sikkert er mere ekspert end mig Thumbs Up  
Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
icet Se dropdown
Bronze bruger
Bronze bruger


Medlem: 08.Nov.2013
Status: Offline
Point: 95
Direkte link til dette indlæg Sendt: 19.Nov.2018 kl. 13:43
det er fint nok jeg havde aligevel stirreret mig blind :-)
jeg bruger det ikke så tit så man ruster lidt :-)
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2025 Dansk Regneark Forum - en del af Excel-regneark.dk