14. september 2015 - 11:52Der er
7 kommentarer og 1 løsning
VBA hjælp
Jeg har en fil med to ark, første ark hedder "Caselist", det andet ark hedder "Filed cases". Jeg har forsøgt at lave makro der skal gøre nedenstående, men kan ikke få det til at virke. Hjælp ønskes, håber nogen kan hjælpe ;-) » Find x i kolonne K i arket "Caselist", klip rækken væk hvori x'et findes. » msg box "Er du sikker du vil arkiver række (aktuel række)" » Indsæt tom række under række 5 i arket "Filed cases" og indsæt klippet række
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Dim ræk As Integer, antalRækker As Integer Public Sub arkivering() antalRækker = ActiveSheet.Range("K99999").End(xlUp).Row ræk = findRække(Sheets("CaseList"), "K1:K" & CStr(antalRækker), "x")
If ræk > 0 Then svar = MsgBox("Er du sikker på at du vil arkivere række " & CStr(ræk), vbYesNo, "Arkivering") If svar = 6 Then Rows(ræk & ":" & ræk).Select Selection.Cut Sheets("Filed Cases").Select ActiveSheet.Rows("6:6").Select Selection.Insert Shift:=xlDown
Sheets("CaseList").Select Selection.Delete Shift:=xlUp End If End If End Sub Private Function findRække(ark, område, id) With ark.Range(område) Set c = .Find(id, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then findRække = c.Row Else findRække = 0 End If End With End Function
Hej supertekst Koden virker perfekt, godt lavet. Dog får jeg nogle betinget formater med over i "FiledCases" som jeg gerne vil undgå, kan du rette det? Mange 1000 tak for hjælpen
Hej supertekst Det må jeg desværre ikke. Måske du kan hjælpe mig, hvis jeg formulerer mig anderledes.
Det jeg mener er, at den række der skal arkiveres, skal indsættes "specielt værdier" i arket "FiledCases" så der ikke kommer nogen formater med over i arket "FiledCases".
Rem Version 2 Dim ræk As Integer, antalRækker As Integer Public Sub arkivering() antalRækker = ActiveSheet.Range("K99999").End(xlUp).Row ræk = findRække(Sheets("CaseList"), "K1:K" & CStr(antalRækker), "x")
If ræk > 0 Then svar = MsgBox("Er du sikker på at du vil arkivere række " & CStr(ræk), vbYesNo, "Arkivering") If svar = 6 Then Rem indsæt ny række 6 på Filed Cases Sheets("Filed Cases").Select ActiveSheet.Rows("6:6").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlNone
Sheets("CaseList").Select Selection.Cut Selection.Delete Shift:=xlUp End If End If End Sub Private Function findRække(ark, område, id) With ark.Range(område) Set c = .Find(id, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then findRække = c.Row Else findRække = 0 End If End With End Function
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.