Hvis det er ligegyldigt, hvad du taster, kan du bruge denen kode i mandags-arkets kodeark:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("M16")) Is Nothing Then If IsNumeric(Target.Value) Then Sheets("Materiale").Select End If End If End Sub
Hvis forskellige tal skal føre til forskellige ark, må du ogspå teste på, hvad der faktisk tastes. Ovenstående tester bare, om der tastes et tal.
Jeg har prøvet nedenstående, men det fungerer ikke:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("M16")) Is Nothing Then If IsNumeric(Target.Value) Then Sheets("Materiale").Select Range ("C12"). select End If End If End Sub
Laurbjerg, jeg mener at jeg før har fortalt at man ikke kan kode over på andre ark i et arkmodul.
denne i arkmodulet
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("M16")) Is Nothing Then If IsNumeric(Target.Value) Then FlytSide ("Materiale") ' kalder makroen i module1 End If End If End Sub
denne i et modul
Public Sub FlytSide(Arknavn) Sheets(Arknavn).Select Range("C12").Select End Sub
hvis du kun vil skrive til et andet ark, kan du godt gøre det i Arkmodulet, det du ikke kan er at aktivere og selecte i et andet ark.
her er en makro på dine 2 eksempler, den skal være i arkmodulet.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("M16")) Is Nothing Then If IsNumeric(Target.Value) Then Sheets("Materiale").Range("C12") = Target.Value End If End If
If Not Intersect(Target, Range("B5")) Is Nothing Then If IsNumeric(Target.Value) Then Sheets("Materiale").Range("B12") = Target.Value End If End If End Sub
Jeg tror på at kabbak's løsning er den rigtige for dig, men man kan godt få sig smidt over i en bestemt celle i et andet ark, hvis man bruger application.goto
Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address Case "$M$16": Application.Goto Sheets("Ark2").Range("A1") Case "$B$5": Application.Goto Sheets("Ark3").Range("B2") Case "$A$1": Application.Goto Sheets("Ark2").Range("c3") Case Else: Exit Sub End Select End Sub
når du har lavet om på værdierne i M16 og B5, i det ark koden ligger, hvis du så kikker på arket "Materiale" skulle værdierne i C12og B12 helst være ændret til det du skrev ,
kabak, det er ikke det den skal gøre. det skal være ligesom det første eksempel du gav, hvor den springer over i materiale, når man retter i de 2 felter. den skal ikke overfører tallet
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("M16")) Is Nothing Then If IsNumeric(Target.Value) Then Call FlytSide("Materiale", "$C$12") ' kalder makroen i module1 End If End If If Not Intersect(Target, Range("B5")) Is Nothing Then If IsNumeric(Target.Value) Then Call FlytSide("Materiale", "$B$12") ' kalder makroen i module1 End If End If End Sub
denne i et modul
Public Sub FlytSide(Arknavn, celle) Sheets(Arknavn).Select Range(celle).Select End Sub
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.