I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jer har et ark hvor jeg smider data i 3 celler A1:B1:C1, jeg har så lavet en macro som kopier de 3 celler og smider dem ned i række 10 hvor den der efter rykker alt fra række 10 ned en gang og går til bage til A1. det jeg gerne vil have den skal er når de 3 celler har værdi skal den automatisk køre min macro.
Når jeg i Verktøy -> Alternativer -> Rediger Har satt flueben for Flytt merket område etter Enter Og valgt retning Høyre.
Kan et eksempel på tvc's kode i Ark1 bli slik: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim vTmp() As Variant If Target.Address = "$D$1" Then vTmp() = Range(Cells(1, 1), Cells(1, 3)) Rows(10).Insert shift:=xlDown Range(Cells(10, 1), Cells(10, 3)) = vTmp() Range(Cells(1, 1), Cells(1, 3)).ClearContents Cells(1, 1).Select End If End Sub
Rettelse Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim vTmp() As Variant If Target.Address = "$D$1" Then Call Add_vognløb End If End Sub
Du kan evt. gøre din makrokørsel afhængig af om de 3 celler er udfyldt. Her et ex. med udgangspunkt i din kommentar 23/10-2005 15:01:06...
Private Sub Worksheet_Change(ByVal Target As Range) Dim tmp() If Range("A1").Value <> "" And Range("B1").Value <> "" And Range("C1").Value <> "" Then tmp() = Range(Cells(1, 1), Cells(1, 3)) Range(Cells(1, 1), Cells(1, 3)).Value = "" If Range("A10").Value = "" Then Range(Cells(10, 1), Cells(10, 3)) = tmp() Range("A1").Select Else Rows(10).Insert shift:=xlDown Range(Cells(10, 1), Cells(10, 3)) = tmp() Range("A1").Select End If End If End Sub
ja nå er det mange muligheter: Hvis du ikke ønser å tenke på innstillingene i excel, kan du skrive denne koden i modulet til ThisWorkbook:
'** DENNE KOEN KAN STÅ I ThisWorkbook modulen Private Sub Workbook_Open() '** ETTER ENTER FLYTTES AKTIV CELLE TIL HØYRE Application.MoveAfterReturn = True Application.MoveAfterReturnDirection = xlToRight End Sub
som brynil skriver kan man teste at alle 3 celler er utfylt. koden kan stå i modluen til ditt sheet(vognløb) Den kan også se slik ut:
'** DENNE KODE MÅ STÅ I SHEET("Vognløb") Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Cells(5, 6).Address Then
'*** MAN KOMMER IKKE VIDERE FØR ALLE 3 CELLER ER FYLT UT For Each c In Range(Cells(5, 3), Cells(5, 5)) If IsEmpty(c) Then Cells(5, 3).Select: Exit Sub Next
Cells(5, 6).FormulaR1C1 = "=now()" Call Add_vognløb End If End Sub
til sist har jeg tatt en titt på din egen kode, tor den også kan skrives slik:
Sub Add_vognløb()
Rows(10).Insert With Range(Cells(10, 3), Cells(10, 6)) .Value = .Offset(-5).Value .Offset(-5).ClearContents .HorizontalAlignment = xlCenter 'hvis man ønsker With .Font .Bold = False .Name = "Arial" .Size = 10 End With .Copy End With
Ser at dine data kommer likt i to forskejllige sheets Hvis det ikke er nødvendig, kan du bytte ut siset kode med denne:
Sub Add_vognløb()
Dim vDb() As Variant vDb() = Range(Cells(5, 3), Cells(5, 6)) Range(Cells(5, 3), Cells(5, 6)).ClearContents
Sheets("PrintListe").Select With Sheets("PrintListe").Range(Cells(1, 1), Cells(1, 4)) .Value = vDb .HorizontalAlignment = xlCenter 'hvis man ønsker With .Font .Bold = False .Name = "Arial" .Size = 10 End With .Rows(1).Insert End With
Oki men det skal ud på to sheets for ikke at lave for meget i vognløb!!
Ellers mange tak....... Splokit Out
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.