Avatar billede kgndksv Juniormester
19. oktober 2011 - 21:29 Der er 6 kommentarer og
1 løsning

Autodato når der indtastes i række, men hvis det der indtastes er "" skal der ikke autodato

Jeg har et problem med nedenstående kode.
Jeg vil have at hvis der indtastes i en række skal der i rækkens A-kolonne stemples med dagsdato, men hvis det der indtastes blot er et "enter" altså ingenting skal skal der ikke stemples med dagsdato alligevel.

Jeg ved ikke om det er den helt forkerte tilgang jeg har til koden... :-(


Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B20:DA105")) Is Nothing Then
    R = Target.Row
   
    AllCol = Cells(19, 256).End(xlToLeft).Column
   
    For i = 2 To AllCol
   
        If Cells(R, i).HasFormula Then GoTo XX

            If Not Cells(R, i).Value = "" Then
                flag = False
            End If
XX:

    Next i

    If flag = False Then
       
    Cells(R, 1).Value = Now
       
    Else
   
    Cells(R, 1).Value = ""
   
    End If
 
End If



End Sub
Avatar billede store-morten Ekspert
19. oktober 2011 - 21:59 #1
Prøv med:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B20:DA105")) Is Nothing Then
R = Target.Row
If Target = "" Then
    End If
    Cells(R, 1).Value = Now
    End If
End Sub
Avatar billede kgndksv Juniormester
20. oktober 2011 - 15:17 #2
Det virker ikke, den stempler med dato, men sletter ikke hvis hele rækken er tom, men jeg skal lige tilføje at der er nogle celler i rækken som indeholder formler. Det virker dog heller ikke når jeg sletter formlerne.

hvad er det intersect gør?
Avatar billede H_Klein Novice
21. oktober 2011 - 19:22 #3
Hejsa,

Er der en celle i rækken som altid vil blive udfyldt hvis der i det hele taget skal skrives i nogle celler i rækken?

Ved ikke om jeg formulerer det forståeligt...

Med venlig hilsen

Henrik
Avatar billede kgndksv Juniormester
22. oktober 2011 - 01:58 #4
Nej, ikke nødvendigvis.
Forestil dig følgende i A1:1H:

A1 skal stemples med dato, hvis der indtastes 1B:1E og så indeholder F1 =1B+1C og til sidst skal der også stemples dato, hvis der indtastes i 1G:1H

Der skal altså stemples i 1A, hvis der indtastes 1B:1E eller 1G:1H, men hvis ingen af cellerne indholder noget skal stemplingen slettes igen. Ved ikke om det giver mere mening...
Avatar billede kgndksv Juniormester
23. oktober 2011 - 14:05 #5
Store-morten sender du et svar - tilføjede lige en enkelt kommando i din kode og så virker det :-)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B20:DA105")) Is Nothing Then
R = Target.Row
    If Target = "" Then
    Exit Sub
    End If
    Cells(R, 1).Value = Now
    End If
End Sub
Avatar billede store-morten Ekspert
23. oktober 2011 - 19:16 #6
Ok, her er et 'Svar '
Nu stemples i B1 hvis der indtastes i B20 til DA105
Hvis der tastes "enter" altså ingenting, eller der slettes, stemples ikke.
Men stemplingen slettes ikke?
Avatar billede kgndksv Juniormester
24. oktober 2011 - 21:08 #7
Korrekt, ved nærmere eftertanke er denne løsning mest brugbar :-)
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
Kurser inden for grundlæggende programmering

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