06. december 2012 - 15:01Der 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
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.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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
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?
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
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?
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.
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.
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.
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..
Synes godt om
Ny brugerNybegynder
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.