Avatar billede tida Juniormester
07. juli 2005 - 11:13 Der er 4 kommentarer og
1 løsning

Fusion af 2 makroer

Kan man kun have 1 private sub pr. ark ?....i så fald har jeg brug for lidt hjælp til at samle 2 makro bidder til en, jeg har selv forsøgt dog uden held, de virker fint hver for sig....det drejer sig om følgende :

Private Sub Worksheet_Change(ByVal Target As Range)

Dim t(1 To 4)
  If Intersect(Target, Range("aa:aa")) Is Nothing Then Exit Sub
  If Target.Cells.Count > 27 Then Exit Sub
  If Len(Target) <> 16 Then Exit Sub
  application.EnableEvents = False
  t(1) = Mid(Target, 1, 4)
  t(2) = Mid(Target, 5, 4)
  t(3) = Mid(Target, 9, 4)
  t(4) = Mid(Target, 13, 4)
  Target = t(1) & "-" & t(2) & "-" & t(3) & "-" & t(4)
  application.EnableEvents = True
 
End Sub

Private Sub Worksheet_Change2(ByVal Target As Range)
Dim OldVal

On Error GoTo ExitHere
If Intersect(Target, Range("y:z")) Is Nothing Then Exit Sub
    If Target.Cells.Count = 1 Then
    OldVal = Target
        If Not Target.HasFormula Then
            If IsNumeric(Evaluate("=" & Target.Value)) Then
            Target = "=" & Target
            End If
        End If
    End If
Exit Sub
ExitHere:

Target = OldVal
End Sub



på forhånd tak
Avatar billede kabbak Professor
07. juli 2005 - 11:53 #1
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("aa:aa")) Is Nothing Then
Dim t(1 To 4)
    If Target.Cells.Count > 27 Then Exit Sub
  If Len(Target) <> 16 Then Exit Sub
  application.EnableEvents = False
  t(1) = Mid(Target, 1, 4)
  t(2) = Mid(Target, 5, 4)
  t(3) = Mid(Target, 9, 4)
  t(4) = Mid(Target, 13, 4)
  Target = t(1) & "-" & t(2) & "-" & t(3) & "-" & t(4)
  application.EnableEvents = True
  end if
Dim OldVal

On Error GoTo ExitHere
If not Intersect(Target, Range("y:z")) Is Nothing Then
    If Target.Cells.Count = 1 Then
    OldVal = Target
        If Not Target.HasFormula Then
            If IsNumeric(Evaluate("=" & Target.Value)) Then
            Target = "=" & Target
            End If
        End If
    End If
Exit Sub
end if
ExitHere:

Target = OldVal

End Sub
Avatar billede kabbak Professor
07. juli 2005 - 11:56 #2
lidt rettelser

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("aa:aa")) Is Nothing Then
Dim t(1 To 4)
    If Target.Cells.Count > 27 Then Exit Sub
  If Len(Target) <> 16 Then Exit Sub
  Application.EnableEvents = False
  t(1) = Mid(Target, 1, 4)
  t(2) = Mid(Target, 5, 4)
  t(3) = Mid(Target, 9, 4)
  t(4) = Mid(Target, 13, 4)
  Target = t(1) & "-" & t(2) & "-" & t(3) & "-" & t(4)
  Application.EnableEvents = True
  Exit Sub
  End If
 
 
If Not Intersect(Target, Range("y:z")) Is Nothing Then
  On Error GoTo ExitHere
  Dim OldVal
    If Target.Cells.Count = 1 Then
    OldVal = Target
        If Not Target.HasFormula Then
            If IsNumeric(Evaluate("=" & Target.Value)) Then
            Target = "=" & Target
            End If
        End If
    End If
Exit Sub
End If
Exit Sub

ExitHere:
Target = OldVal
End Sub
Avatar billede tida Juniormester
07. juli 2005 - 12:19 #3
perfekt kabbak...tak...send et svar
Avatar billede kabbak Professor
07. juli 2005 - 12:20 #4
et var ;-))
Avatar billede tida Juniormester
13. oktober 2005 - 14:43 #5
hov....jeg skylder vist, undskyld den lange ventetid :-)
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