Visningen viser rigtigt, men når man vælger en art fra dropdown boksen, så "dør" excel og efter et stykke tid lukker den ned. Nogle gange så virker den fint i en periode. Kan tyde på en løkke, som jeg ikke har fundet.
Denne lille kode fejler, når man skal videre. Den kan finde værdien og splitte den op samt placere den i den forrige celle, men får ikke lov til at forlade cellen igen.
Private Sub Worksheet_Change(ByVal Target As Range) Split arten op i nummer og navn og indsæt værdien i kolonne 3 artnr If Target.Column = 4 And Cells(x, 4).Value <> "" And Target.Row > 9 Then Projektnr = splitProjekt(Target.Value) Worksheets("Løn og timebudget").Cells(x, y - 1).Value = Projektnr Exit Sub End If End Sub
Public Function splitProjekt(proj As String) As String Dim projekt() As String projekt() = Split(proj, " | ") splitProjekt = projekt(0) End Function
Tak for info - det er korrekt at jeg at makroen kører igen - er kommet uden om det ved at gøre følgende Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 And Cells(x, 3).Value <> "" And Target.Row > 9 Then Dim projekt() As String Projektnr = splitProjekt(Worksheets("Indtægt og omkostningsbudget").Cells(x, y - 1).Value) If IsEmpty(projekt) = False Then SQL_Connection Set rs = c.Execute("SELECT artsnavn FROM arter INNER JOIN projart ON arter.artnr = projart.artnr WHERE projektnr = " & "'" & Projektnr & "' AND projart.artnr = " & "'" & Target.Value & "'") If (Not rs.BOF) Then Worksheets("Indtægt og omkostningsbudget").Cells(x, y + 1).Value = Target.Value & " | " & rs![artsnavn] ElseIf Target.Value <> "" Then MsgBox "Det valgte artsnummer er ikke gyldigt i AX" End If SQL_Close End If Exit Sub End If end sub
Årsagen til koden er at vis de kan huske artnr så kan de taste det direkte og så finder den værdien i næste felt - hvis de ikke kan huske artnr, så kan de stå op i listen og artnr placeres i cellen før.
Skal bruge det til et budgetskema, hvor jeg skriver direkte til en database. Det er en ny udvikling for mig at kode sådan, men indtil videre har det virket.
' Split arten op i nummer og navn If Target.Column = 4 And Cells(x, 4).Value <> "" And Target.Row > 9 Then Projektnr = splitProjekt(Target.Value) If Projektnr = Cells(x, y - 1).Value Then Worksheets("Indtægt og omkostningsbudget").Cells(x, y - 1).Value = Projektnr End If Exit Sub End If
Private Sub Worksheet_Change(ByVal Target As Range) ' ved taste art-nummer, så står den navnet op i databasen og smider det ind. If Target.Column = 3 And Cells(x, 3).Value <> "" And Target.Row > 9 Then Dim projekt() As String If Projektnr <> Cells(x, y - 1).Value Then Projektnr = splitProjekt(Worksheets("Indtægt og omkostningsbudget").Cells(x, y - 1).Value) If IsEmpty(projekt) = False Then SQL_Connection Set rs = c.Execute("SELECT artsnavn FROM arter INNER JOIN projart ON arter.artnr = projart.artnr WHERE projektnr = " & "'" & Projektnr & "' AND projart.artnr = " & "'" & Target.Value & "'") If (Not rs.BOF) Then Worksheets("Indtægt og omkostningsbudget").Cells(x, y + 1).Value = Target.Value & " | " & rs![artsnavn] ElseIf Target.Value <> "" Then MsgBox "Det valgte artsnummer er ikke gyldigt i AX" End If SQL_Close End If End If Exit Sub End If
' Split arten op i nummer og navn If Target.Column = 4 And Cells(x, 4).Value <> "" And Target.Row > 9 Then Projektnr = splitProjekt(Target.Value) If Projektnr <> Cells(x, y - 1).Value Then Worksheets("Indtægt og omkostningsbudget").Cells(x, y - 1).Value = Projektnr End If Exit Sub End If end sub
altså ved at tage højde for om artnr er ens i begge celler, så den ikke går i løkke. Vil prøve at teste det lidt mere.
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.