Avatar billede hubertus Seniormester
29. oktober 2006 - 15:45 Der er 18 kommentarer og
1 løsning

hændelse når celle forlades

En lille nøde en søndag eftermiddag.

jeg har nedenstående kode, som bevirker at jeg kan lave et linieskift i en celle. pt. gælder den alle celler, men jeg vil gerne have den til kun at virke i kol. C. har forsøgt at definere kolonne c som et range, men det virker ikke.

Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long)As Integer

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If GetKeyState(13) Then
        Target.Activate
      Application.SendKeys ("{F2}{End}%{Enter}")
    End If
End Sub

hvordan klarer man det?
Avatar billede excelent Ekspert
29. oktober 2006 - 15:50 #1
prøv (ikke testet)

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Range("C:C")) Is Nothing Then  Exit Sub
    If GetKeyState(13) Then
        Target.Activate
      Application.SendKeys ("{F2}{End}%{Enter}")
    End If
End Sub
Avatar billede hubertus Seniormester
29. oktober 2006 - 16:45 #2
Det virker perfekt - tak for det :-)
lægger du et svar?
Avatar billede excelent Ekspert
29. oktober 2006 - 16:48 #3
ok
Avatar billede hubertus Seniormester
30. oktober 2006 - 15:28 #4
hej excelent
kan man i ovenstående modul have et range i kol. C og F - altså ikke D, samt teste på, i hvilken kolonne der trykkes enter. Kan du klare den iler jeg med nogle flere point.
Avatar billede excelent Ekspert
30. oktober 2006 - 16:11 #5
prøv:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, Range("C:C, F:F")) Is Nothing Then Exit Sub
MsgBox ("Input i kolonne ") & Target.Column
    If GetKeyState(13) Then
        Target.Activate
      Application.SendKeys ("{F2}{End}%{Enter}")
    End If
End Sub
Avatar billede hubertus Seniormester
30. oktober 2006 - 16:19 #6
Det virker jo fint, så mangler jeg blot at kunne teste på om det er kol C eller kol F den reagere på. Hændelsen er forskelligt afhængig af om det er den ene eller den anden kollonne.
Avatar billede excelent Ekspert
30. oktober 2006 - 16:25 #7
returneres der ikke et 3 (C) eller 6 (F) tal ?
Avatar billede hubertus Seniormester
30. oktober 2006 - 16:37 #8
du har ret!!
Et sidste problem er, hvis man vil slette en række, så reagere den også på rutinen, når der slettes i kol C og F. Kan jeg undgå det?
Avatar billede excelent Ekspert
30. oktober 2006 - 16:42 #9
indsæt lige før MsgBox....

If Target.Value = "" Then Exit Sub
Avatar billede hubertus Seniormester
30. oktober 2006 - 16:50 #10
den virker desværre ikke - jeg får en debug på linien if target.value="" then exit sub
Avatar billede excelent Ekspert
30. oktober 2006 - 16:50 #11
er det kolonne bogstav du skal bruge så anvend :

MsgBox ("Input i kolonne ") & Chr(Target.Column + 64)
Avatar billede excelent Ekspert
30. oktober 2006 - 16:52 #12
prøv istedet
If Target.Value = Empty Then Exit Sub
Avatar billede hubertus Seniormester
30. oktober 2006 - 16:56 #13
Den giver stadig en debug fejl. Kan man evt. blanke linien uden at slette de formler som ligger i nogle af cellerne?
Avatar billede excelent Ekspert
30. oktober 2006 - 16:58 #14
hmm det var mystisk, virker ok her

allerførst hvad gør denne sub/event egentlig :-) ?
Avatar billede hubertus Seniormester
30. oktober 2006 - 17:04 #15
jeg har et ark bestående af 6 kolonner, hvori jeg indtaster nogle medlemmer i en forening. Når jeg har indtastet i enten kolonne 3 eller 5, skal den springe til en ny linie. Det er ikke altid at kolonne 5 udfyldes (bemærk.) i kolonne 4 ligger en formel. jeg har så brug for at kunne slette nogle linier i eksisterende data. og det er her problemet opstår, hvis jeg markere en linien og vil slette hele rækken.
Avatar billede excelent Ekspert
30. oktober 2006 - 17:12 #16
ok got it, der skal lige tænkes lidt
Avatar billede excelent Ekspert
30. oktober 2006 - 17:38 #17
prøv indsæt denne som linie 3
On Error Resume Next
Avatar billede hubertus Seniormester
30. oktober 2006 - 18:06 #18
Det var godt tænk - nu virker det - :o)
Jeg opretter lige et spørgsmål, så kan du lægge et svar
ps. tak for hjælpen
Avatar billede excelent Ekspert
30. oktober 2006 - 18:06 #19
ok velbekom
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