Avatar billede FewCastle Praktikant
06. december 2012 - 15:01 Der er 11 kommentarer og
1 løsning

Finde rækkenr i den celle man lige har ændret noget i

Ved godt overskriften lyder lidt mærkelig. Når en celle i mit ark bliver ændret har jeg behov for det rækkenr. for den celle jeg lige har ændret noget i. I vba bruger jeg funktionen "Private Sub Worksheet_Change" sammen med koden

ThisWorkbook.Sheets("Tidsregnskab").Range("AO" & ActiveCell.Row).Value = ThisWorkbook.Sheets("Timebank").Range("B9").Value

Det virker for så også hvis man trykker Tab eller pil højre efter indtastning. Men hvis man trykker enter, pil op eller pil ned efter indtastning i en celle, vil den aktive celle blive den celler der enten er over eller under den celle som man har tastet noget i.

Findes der en løsning på det lille problem?
Avatar billede supertekst Ekspert
06. december 2012 - 15:17 #1
Eksempel:

Dim retteRække As Long
Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox Target.Row
    retteRække = Target.Row  'hvis rækkenr, skal anvendes senere..
End Sub
Avatar billede FewCastle Praktikant
06. december 2012 - 15:34 #2
Tak, men nu står den med med msgBox hele tiden fordi arket åbentart ser det som en ændring hver gang man trykker OK. Hvordan starter jeg min excel.fil uden start af worksheet_change?
Avatar billede supertekst Ekspert
06. december 2012 - 15:37 #3
Det var kun et eksempel - du kan blot slette rækken med MsgBox..
Avatar billede FewCastle Praktikant
06. december 2012 - 15:42 #4
Har fundet ud af det. Deaktiver makros i excel hjalp.
Avatar billede FewCastle Praktikant
07. december 2012 - 09:38 #5
Det virker jo perfekt. Jeg har dog lige et tillægsspørgsmål som du sikkert kan svarer hurtigt på.

I mite ark "Tidsregnskab" skal antal timer, som står i "Timebank" B9, indstættes i "Tidsregnskab" AO&Target.Row.
Som du kan se i koden skal antal timer, som står i Timebank B9, kun sættes ind hvis der står noget i Tidsregnskab F&Target.Row.
Men det virker ikke efter hensigten.
Jeg har jo tydeligvis gjort et eller andet forkert, men jeg kan ikke lige se mig ud af problemet. Har du et bud?
Håber at spørgsmålet er til at forstå.

If Range("F" & Target.Row).Value = "" Then
    ThisWorkbook.Sheets("Tidsregnskab").Range("AO" & Target.Row).Value = ThisWorkbook.Sheets("Timebank").Range("B9").Value
Else
    Range("AO" & Target.Row).Value = ""
End If
Avatar billede supertekst Ekspert
07. december 2012 - 10:18 #6
Jeg har lagt denne kode ind og den virker:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("F" & Target.Row).Value = "" Then
        ThisWorkbook.Sheets("Tidsregnskab").Range("AO" & Target.Row).Value = ThisWorkbook.Sheets("Timebank").Range("B9").Value
    Else
        Range("AO" & Target.Row).Value = ""
    End If
End Sub

Skal det være i kolonne AO - det er jo noget langt ude til højre?
Avatar billede FewCastle Praktikant
10. december 2012 - 10:22 #7
Hej supertekst,
det er lidt underligt med den kode, for nogen gange virker den og andre gange ikke...noget pudsigt. Feks. koden i #6 virker ikke i nyt ark, men virker fint i min medarbejderrapport. Er det noget du selv har oplevet?
Du må forøvrigt gerne give svar så point kan tildeles. På forhånd tak for svar.
Avatar billede supertekst Ekspert
10. december 2012 - 10:46 #8
Hvad mener du med nyt ark? P.t. ligger koden under et bestemt ark.

Du får et svar
Avatar billede FewCastle Praktikant
10. december 2012 - 11:10 #9
Koden ligger under samme ark hele tiden, men jeg oplever bare at der er problemer med afvikling af koden en gang imellen. I hvert fald virker det nu, så det er super. Tak for din hjælp.
Avatar billede supertekst Ekspert
10. december 2012 - 11:30 #10
Selv tak - giv signal, hvis problemer
Avatar billede FewCastle Praktikant
24. januar 2013 - 10:38 #11
Hej supertekst,
jeg har stillet en problemstilling på denne tråd:
http://www.eksperten.dk/spm/975179#reply_8020196

Jeg har ikke fået noget bud på en løsning. Ved slet ikke om jeg må gøre sådan noget som jeg gør nu, men har du tid, lyst og mulighed til, at kigge på mit problem.
På forhånd tusind tak.
Avatar billede supertekst Ekspert
24. januar 2013 - 11:13 #12
Hej faaborg_fyn

Det er da ikke noget forbud med en direkte henvendelse - såvel som der ikke er nogen forpligtelse for modtageren at reagere..

P.t. har jeg ikke tid - sidder mere flere kundeopgaver..
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