Avatar billede mrkr Juniormester
03. oktober 2008 - 14:59 Der er 8 kommentarer og
1 løsning

fejl i makro der kopierer værdier fra celler ovenfor

Jeg har kontrueret denne makro der kopierer data fra linjen ovenfor, når jeg har indtastet data i kolonne A.
Men den går ned nogle gange hvis jeg sletter noget i kolonne A.
Deter som om den looper og så går ned
Er der nogen der kan se hvad jeg evt. gør galt?



Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo fejl
'ScrollArea = "A:G"
    If Not Intersect(Target, Range("A3:A500")) Is Nothing Then
        If ActiveCell.Offset(0, 0) = "" And ActiveCell.Offset(0, 1) = "" Then
            ' først kopieres dato
            ActiveCell.Offset(-1, 0).Range("A1").Select
            Selection.Copy
            ActiveCell.Offset(1, 0).Range("A1").Select
            ActiveSheet.Paste
            ActiveCell.Select
            ' så kopieres initialer
            ActiveCell.Offset(-1, 1).Range("A1").Select
            Selection.Copy
            ActiveCell.Offset(1, 0).Range("A1").Select
            ActiveSheet.Paste
            ActiveCell.Select
            ' går til celle med tid
            ActiveCell.Offset(0, 1).Range("A1").Activate
           
        End If
    End If

fejl:
End Sub
Avatar billede excelent Ekspert
04. oktober 2008 - 11:25 #1
Hvis du indtaster noget i celle A3 så skal den kopiere ....?
Hvor skal det kopierede indsættes ?
Avatar billede mrkr Juniormester
04. oktober 2008 - 13:35 #2
Hvis man indtaster et tal i a3 så skal følgende ske:

b3 skal være det samme som B2
c3 skal være det samme som c2

når makroen er færdig skal man stå i celle d3 (altså i samme linje som man lige har indtastet i)

Den makro jeg har lavet går i selvsving nogle gange når jeg sletter noget i kolonne A, ved ikke hvorfor.
Avatar billede excelent Ekspert
04. oktober 2008 - 14:14 #3
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A3:A500")) Is Nothing Then Exit Sub
Target.Offset(0, 1) = Target.Offset(-1, 1)
Target.Offset(0, 2) = Target.Offset(-1, 2)
Target.Offset(0, 3).Select
End Sub
Avatar billede excelent Ekspert
04. oktober 2008 - 14:23 #4
Skal koden teste om der er værdier i kolonne B og C først?
Avatar billede excelent Ekspert
04. oktober 2008 - 14:27 #5
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A3:A500")) Is Nothing Then Exit Sub
If Target.Offset(0, 1) = "" And Target.Offset(0, 2) = "" Then
Target.Offset(0, 1) = Target.Offset(-1, 1)
Target.Offset(0, 2) = Target.Offset(-1, 2)
Target.Offset(0, 3).Select
End If
End Sub
Avatar billede mrkr Juniormester
04. oktober 2008 - 15:01 #6
jep, den virker også lige efter hensigten.
Har stadig ikke fundet ud af hvorfor min kode gik kold.

Men det er jo også lige meget når jeg har en kode der virker.

Tak for hjælpen
Så mangler vi lige svaret :-)
Avatar billede excelent Ekspert
04. oktober 2008 - 15:09 #7
ActiveCell.Offset(-1, 1).Range("A1").Select
bør skrives sådan :
ActiveCell.Offset(-1, 1).Select

If ActiveCell.Offset(0, 0)
skrives normal sådan :
If ActiveCell

vær opmærksom på at når du taster noget i fx. A3 og afslutter med enter, så er det A4 som er den aktive celle
Avatar billede excelent Ekspert
04. oktober 2008 - 15:10 #8
og svar :-)
Avatar billede mrkr Juniormester
04. oktober 2008 - 15:19 #9
ja, den havde jeg godt set. :-)
Men det er lige som det skal være
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