Avatar billede marvinq Nybegynder
14. november 2008 - 12:37 Der er 15 kommentarer og
1 løsning

Problem med Makro hvis felt er tomt

Hej,

Jeg har endelig fået lavet en helvedes masse makroer som laver det ene og andet ved et excelark, når værdierne skifter...

MEN... når jeg sletter et felt, så fejler den. Hvordan kan jeg lave en kontrol for at feltet ikke er tomt.!??

Min kode starter sådan her (i de fleste tilfælde)

Private Sub Worksheet_Change(ByVal Target As Range)
    If ((Target.Column = 10) Or (Target.Column = 15)) Then
        d = Target.Value


/MHQ
Avatar billede jkrons Professor
14. november 2008 - 14:10 #1
Prøv med

Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsEmpty(Target) Then
    If ((Target.Column = 10) Or (Target.Column = 15)) Then
        d = Target.Value
        MsgBox d
Avatar billede jkrons Professor
14. november 2008 - 14:10 #2
Msgbox d skal ikke med. Det var fra min test :-9
Avatar billede marvinq Nybegynder
14. november 2008 - 14:37 #3
Fungerer desværre ikke... Den fortsætter ind i if-sætningen selv om jeg er ved at slette.

Det er når jeg vil tømme et fyldt felt. Altså vha. backspace/delete.
Avatar billede kabbak Professor
14. november 2008 - 15:16 #4
If Not IsEmpty(Target) or Target <>"" Then
Avatar billede marvinq Nybegynder
17. november 2008 - 11:21 #5
Samme fejl :( Den fejler når jeg vil slette indholdet af et felt som er omfattet af koden.


Private Sub Worksheet_Change(ByVal Target As Range)
If Not IsEmpty(Target) Or Target <> "" Then
    If ((Target.Column = 10) Or (Target.Column = 15)) Then
        d = Target.Value             
...
    End If
End If
End Sub


HJÆLP!!
Avatar billede jkrons Professor
17. november 2008 - 16:31 #6
Jeg kan ikke se, hvad der skulle være galt. Denne kode virker fint

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not IsEmpty(Target) Or Target <> "" Then
        If ((Target.Column = 10) Or (Target.Column = 15)) Then
            d = Target.Value
        MsgBox d
        End If
    End If
End Sub

så måske ligger problemet i selve dine kodelinjer. I hvilkenc linje fejler den?
Avatar billede marvinq Nybegynder
18. november 2008 - 09:46 #7
Altså det kan godt være jeg er komplet åndssvag, men nu har jeg kogt koden ned til følgende (Det er alt koden). Har vendt rundt på tjek for tomt felt.

Private Sub Worksheet_Change(ByVal Target As Range)
If ((Target.Column = 10) Or (Target.Column = 15)) Then
    If Not IsEmpty(Target) Or Target <> "" Then

    End If
End If
End Sub

Denne fejler hvis jeg sletter indholdet i et felt (delete). Får en "Run-Time error '13': Type mismatch. Og så markerer den med gult linjen hvor der tjekkes for IsEmpty.!

/MHQ
Avatar billede jkrons Professor
18. november 2008 - 14:27 #8
H'øjasr besyndetligt. Hos mig kører din kode helt perfekt uden fejl. Har du evt. mulighed for at sende mig dit konkrete regneark?
Avatar billede marvinq Nybegynder
20. november 2008 - 14:26 #9
Hej igen,

Tror sq jeg har fundet ud af det... Det sker kun når jeg rammer et felt som er flettet over flere rækker... eks. (C1,C2,C3) flettet til et felt. Det virker perfekt bortset fra når man deleter... findes der en work-around til det??

/MHQ
Avatar billede jkrons Professor
20. november 2008 - 18:14 #10
Problemet ligger i, at Excel ikke opfatter en flettet celle som én celle, men som et range besåtende af alle de celler, der er flettet sammen.

Flettede celler giver tit problemer i makroer, men jeg kigger lige lidt nærmere på den.
Avatar billede marvinq Nybegynder
21. november 2008 - 09:04 #11
Ja, det kunne jeg næsten forstå. Jeg kan bare ikke rigtig komme udenom det. Det virker sjovt nok fint i alle andre tilfælde end ved at slette.

/MHQ
Avatar billede jkrons Professor
21. november 2008 - 11:27 #12
Prøv med

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
    If Target.Column = 10 Or Target.Column = 15 Then
        If Not IsEmpty(Target) Or Target <> "" Then
            MsgBox "The cell content has been changed"
        End If
    End If
End Sub
Avatar billede marvinq Nybegynder
21. november 2008 - 13:31 #13
SÅDAN!! Det er simpelthen kanon !

Godt klaret !

Smid et svar!
Avatar billede jkrons Professor
21. november 2008 - 14:13 #14
et svar :-)
Avatar billede marvinq Nybegynder
21. november 2008 - 14:40 #15
en rigtigt svar :D
Avatar billede jkrons Professor
21. november 2008 - 14:54 #16
Sådan kan det gå, når eftermiddagstræthende sænker sig :-)
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