18. maj 2017 - 12:47Der er
7 kommentarer og 1 løsning
Flytte data automatisk fra 1 ark til et andet efter udløbsdato
Jeg er lidt af en nybegynder, og ønsker brændende at få hjælp til at få data til at flytte automatisk fra 1 ark til et andet i Excel via udløbsdato... Jeg har lavet en kolonne "j" i ark 1 som skifter farve fra grøn til gul ved 30 dage til udløb og til rød ved udløb - det som er udløbet vil jeg gerne have flyttet automatisk til et andet ark 5 - Gør man dette vha. betinget formatering eller makroer... jeg er total novice mht. "kodesproget" i Excel - jeg håber at der er en som kan hjælpe her inde - sig endelig til hvis du/i mangler nogle informationer:-) Mvh Julie
Det er nok kodesproget (aka vba) som kan gøre det automatisk for dig. Hvis du kan overskue en manuel proces kan du vælge et filter på dine data og så søge efter de røde farve og klippe det over i nyt ark på een gang.
Hvis du gerne vil automatik har vi brug for at kende din datastruktur, måske et eksempel på data uploadet til dropbox eller lignende.
Hvis du ikke har beregninger i dine data, kan du lave et ark2, hvor hver celle i ark2 = tilsvarende celle i ark1, og al tekst-farve er hvid (usynlig). Du laver derefter betinget formattering i ark1, hvor Tekst-farve i forældede data bliver hvid, mens Tekst-farven i forældede data i ark2 bliver sort.
Løsningen kan være to vba'er. Den første er nødvendig fordi vba ikke kan "se" farven på tekst lavet via betinget formattering.
Sub mark_date() ' definer variable Dim intRaekke As Integer Dim rngCelle As Range Dim intSidsteRaekke As Integer
' find sidste række i listen for ikke at køre flere rækker end nødvendigt. intSidsteRaekke = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
' strukturen af arket starter i række 3 med data For intRaekke = 3 To intSidsteRaekke
Set rngCelle = Cells(intRaekke, 10)
If IsEmpty(rngCelle.Value) Then rngCelle.Font.Color = vbBlack ElseIf rngCelle.Value > Date Then rngCelle.Font.Color = vbGreen ElseIf rngCelle.Value < Date Then rngCelle.Font.Color = vbRed Else: rngCelle.Font.Color = vbYellow End If Next intRaekke
End Sub
Kopiering til fane 5 (ikke brugt navn, men 5 kan erstattes via "arknavn" Sub move_red_dates()
Dim intRaekke As Integer Dim intSidsteRaekke As Integer
For intRaekke = 3 To intSidsteRaekke If Cells(intRaekke, 10).Font.Color = vbRed Then Rows(intRaekke).EntireRow.Cut Sheets(5).Select Range("A1").Select Selection.End(xlDown).Select Selection.End(xlUp).Select ActiveSheet.Paste
End If Next intRaekke MsgBox ("Rows moved to Sheet: " & Sheets(5).Name) End Sub
Jeg har på stående fod ikke checket om det giver udfordringer at jeg selecter ark 5 i if sætningen. Du må lige sige til hvis det skaber sig, så skal der en lille krølle på.
Hej Kim Det ser ud til vi næsten er i mål, men når jeg åbner databasen så er der fortsat røde datoer i det første ark, og intet i ark 5 (udløbne)? Er der noget jeg har misforstået? Skal jeg fysisk gøre noget med VBA koden for at få det til at virke? Fortsat tusinde tak for alt din hjælp og tålmodighed med mig:-) Mvh Julie
Det virker!!!! Tusinde tak Kim - jeg er ovenud taknemmelig for din hjælp! MVH Julie
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.