24. september 2009 - 21:54Der er
5 kommentarer og 1 løsning
Sammensmeltning af kode
Hej Eksperter.
Jeg har følgende kodestump, som jeg ikke kan få til at virke, jeg har ikke kodet VB før, så er meget på bar bund.
Min opbygning af arket ser således ud: ----------------------------------------- | C | D | E | F | ----------------------------------------- | Felt 1 | Felt 2 | Brugern.| Idag | -----------------------------------------
Og laver man så en rettelse i enten felt 1 eller 2, skal den indsætte Bnavn og Dagsdato.
Private Sub Worksheet_Change(ByVal Target As Range) 'Sæt variabler Dim idag As Date idag = Format(Now, "dd-mm-yy") 'sætter dags dato bruger = Application.UserName 'henter brugernavn
If Intersect(Target, Range("C4:C8,C12:C24,C28:C30,C34:C41,C45:C46,C50,C54,C58:C60")) Is Nothing Then Target.Offset(0, 3) = idag Target.Offset(0, 2) = bruger ElseIf Intersect(Target, Range("D4:D8,D12:D24,D28:D30,D34:D41,D45:D46,D50,D54,D58:D60")) Is Nothing Then Target.Offset(0, 2) = idag Target.Offset(0, 1) = bruger Else: Exit Sub
Private Sub Worksheet_Change(ByVal Target As Range) 'Sæt variabler Dim idag As Date idag = Format(Now, "dd-mm-yy") 'sætter dags dato bruger = Application.UserName 'henter brugernavn
If Intersect(Target, Range("C4:C8,C12:C24,C28:C30,C34:C41,C45:C46,C50,C54,C58:C60")) Is Nothing Then Target.Offset(0, 3) = idag Target.Offset(0, 2) = bruger Exit Sub End if
If Intersect(Target, Range("D4:D8,D12:D24,D28:D30,D34:D41,D45:D46,D50,D54,D58:D60")) Is Nothing Then Target.Offset(0, 2) = idag Target.Offset(0, 1) = bruger Exit Sub End If
Den kode giver mig samme problem som det jeg har i forvejen, den laver en uendelig løkke det første lange stykke smider datoen ind på hver 3 felt, og til sidst crasher excel.
Dette sker i hvert fald når jeg gør det hos mig, ved ikke om du har en anden reaktion?
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 Or Target.Column = 4 Then Dim Kolonne As Integer If Intersect(Target, Range("C4:D8,C12:D24,C28:D30,C34:D41,C45:D46,C50:D50,C54:D54,C58:D60")) Is Nothing Then
If Target.Column = 3 Then Kolonne = 2 Else Kolonne = 1 Target.Offset(0, Kolonne + 1) = Format(Now, "dd-mm-yy") Target.Offset(0, Kolonne) = Application.UserName End If
End If End Sub
hvis den skal virke modsat, altså inden for området, skal der et NOT ind her
If Not Intersect(Target, Range("C4:D8,C12:D24,C28:D30,C34:D41,C45:D46,C50:D50,C54:D54,C58:D60")) Is Nothing Then
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.