Print side | Luk vindue

Påmindelser

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=717
Udskrevet den: 18.Maj.2024 kl. 17:23


Emne: Påmindelser
Besked fra: finn.lauridsen
Emne: Påmindelser
Posteringsdato: 20.Mar.2012 kl. 10:16
Jeg har lavet regneark over hvornår noget værktøj skal calibreres, men jeg har lavet det med betinget formatering
Det er besværligt at taste alt nyt værktøj ind
kan man ikke lave en macro der virker sådan:?
 
G 1= grøn hvis tiden er over 60 dage fra Idag 
G 1= Gul hvis tiden er under 45 dage fra Idag
G 1= Rød hvis tiden er Idag eller over
 
G1 = kolonne
J 1=kolonne med calibrerings dato
 
På forhånd tak



Svar:
Besked fra: rassten
Posteringsdato: 20.Mar.2012 kl. 21:13
Jeg ved ikke om jeg helt har forstået dit problem. Men alligevel har jeg lavet et eksempel.
uploads/107/P%C3%A5mindelse_makro_v1.xlsm" rel="nofollow - uploads/107/Påmindelse_makro_v1.xlsm
Hver gang du åbner filen, kører en makro, den kikker i kolonne J, hvis den finder en dato/tal farver makroen den tilsvarende celle i kolonne G.


Private Sub Workbook_Open()

Worksheets("Værktøj").Activate ' bør ændres til dit arks navn
lr = Cells(Rows.Count, 10).End(xlUp).Row

For i = 2 To lr
    If WorksheetFunction.IsNumber(Range("j" & i)) = True Then
        If Range("j" & i).Value > Now + 60 Then Range("g" & i).Interior.Color = 5287936
        If Range("j" & i).Value < Now + 45 Then Range("g" & i).Interior.Color = 65535
        If Range("j" & i).Value <= Now Then Range("g" & i).Interior.Color = 255
    End If
Next
End Sub





-------------
VH rassten

Arbejde excel 2010
Privat excel 2010


Besked fra: finn.lauridsen
Posteringsdato: 21.Mar.2012 kl. 10:26
Det er præsis det jeg ønskede Mange tak, dog ændre den ikke farve når jeg ændre dato på computer og trykker F9


Besked fra: Kurt Kubik
Posteringsdato: 21.Mar.2012 kl. 20:31
Hvorfor ændrer du også dato på din PC? 


Besked fra: rassten
Posteringsdato: 21.Mar.2012 kl. 21:53
Kurt, jeg tror ikke at han lave om på computerens interne dato. Men lave om på en dato i kolonne J.

Finn, det oprindelige eksempel gjorde som jeg skrev, makroen kører kun hver gang filen åbnes. Men da du gerne vil kunne have arket aktiv og se en umiddelbar reaktion. Vil jeg anbefale en anden makro. Eks:
uploads/107/P%C3%A5mindelse_makro_v2.xlsm" rel="nofollow - uploads/107/Påmindelse_makro_v2.xlsm
Bemærk at denne makro er placeret under selve arket.
Højre klik på arkets navn, vælg "Vis programkode"


Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next

Columns("G:G").Interior.Color = xlNone

lr = Cells(Rows.Count, 10).End(xlUp).Row

For i = 2 To lr
    If WorksheetFunction.IsNumber(Range("j" & i)) = True Then
        If Range("j" & i).Value > Now + 60 Then Range("g" & i).Interior.Color = 5287936
        If Range("j" & i).Value < Now + 45 Then Range("g" & i).Interior.Color = 65535
        If Range("j" & i).Value <= Now Then Range("g" & i).Interior.Color = 255
    End If
    If WorksheetFunction.IsNumber(Range("j" & i)) = False Then Range("g" & i).Interior.Color = xlNone
Next
End Sub








-------------
VH rassten

Arbejde excel 2010
Privat excel 2010


Besked fra: finn.lauridsen
Posteringsdato: 22.Mar.2012 kl. 08:42
Jeg ændre kun datoen for at kontrollere at farverne også skifter som de skal
Jeg prøver lige at forklare det på en anden måde:
Datoerne i J kollonne ændres aldrig, det er den dag certifikatet skal fornys
Farverne i kolonne g skal ændre sig i forhold til dags dato.altså:
hvis datoen er over 60 dage fra dags dato i forhold til kolonne J skal farven være grøn
hvis datoen er under 45 dage fra dags dato i fohold til kolonne J skal farven skifte til Gul   osv.
Jeg takker for den tolmodighed  du udviser, rassten
 
 


Besked fra: rassten
Posteringsdato: 22.Mar.2012 kl. 23:40
For det tilfælde vil begge makroer virke, men jeg vil anbefale den sidste.
Men jeg undre mig nu alligevel over du ikke ønske cellerne farve markeret under 60 dage og over 45 dage


-------------
VH rassten

Arbejde excel 2010
Privat excel 2010


Besked fra: finn.lauridsen
Posteringsdato: 23.Mar.2012 kl. 14:50

Det kan du have ret i det giver et mærkeligt hul , det kan jeg vel bare rette i makroen fra 45 til 60

jeg tror jeg har fundet ud af hvorfor jeg ikke kan få det til at virke . Når jeg for at prøve det ændrer datoen på pc , skal jeg over på arket og dobbeltklikke flere gange inden farverne ændre sig , det ser ikke ud til at arket opdaterer sig selv


Besked fra: rassten
Posteringsdato: 23.Mar.2012 kl. 14:57
Ja, du kan bare ændre i makroen.
Det er en makro som kører hver gang som der sker en ændring i arket.
Som hvis du skriver noget i en celle så  trykker enter, så kører makroen. Klik i en celle, klik ind i en anden celle vil også få makroen til at kører.


-------------
VH rassten

Arbejde excel 2010
Privat excel 2010


Besked fra: finn.lauridsen
Posteringsdato: 23.Mar.2012 kl. 18:55
Kan man lave en knap der får makroen til at køre med det samme , ala Opdater ark  ?


Besked fra: finn.lauridsen
Posteringsdato: 23.Mar.2012 kl. 19:00
Jeg har lavet en optælling af hvor mange der snart skal til eftersyn Gul farve sådan: =ColorCount(G9:G318;F4)
men den vil heller ikke opdatere, så derfor en knap der opdaterer hele arket


Besked fra: rassten
Posteringsdato: 23.Mar.2012 kl. 19:31
Selvfølgelig kan man det.

Men for at kode 2 skulle virke ordentlig skal den ikke placeres i et modul, men under selve arket. Og det vil typisk være problemet.

Men hvis du gerne vil have en knap i stedet, start med at slette den oprindelige kode, og så:
gå til fanen "udvikler" under "indsæt" vælg "kommandoknap" under ActiveX-objekt, tegn nu din knap hvor du vil have knappen. højreklik på den nye knap, vælg egneskaber, i det vindue som nu kommen op, ved siden af "caption" skriv hvad du vil kalde knappen. Luk vinduet, højre klik igen på knappen, vælg "vis programkode" i vba editoren som nu skulle åbne indsæt koden

Private Sub CommandButton1_Click()
On Error Resume Next

Columns("G:G").Interior.Color = xlNone

lr = Cells(Rows.Count, 10).End(xlUp).Row

For i = 2 To lr
    If WorksheetFunction.IsNumber(Range("j" & i)) = True Then
        If Range("j" & i).Value > Now + 60 Then Range("g" & i).Interior.Color = 5287936
        If Range("j" & i).Value < Now + 45 Then Range("g" & i).Interior.Color = 65535
        If Range("j" & i).Value <= Now Then Range("g" & i).Interior.Color = 255
    End If
    If WorksheetFunction.IsNumber(Range("j" & i)) = False Then Range("g" & i).Interior.Color = xlNone
Next
End Sub

Luk vba editor vinduet. Tilbage i excel skulle under fanen "udvikler" skulle "Designtilstand" være markeret, klik på den, så den ikke er aktiv.

Men jeg forstå ikke helt hvorfor det skulle være nemmere at klikke på en knap, end at vælge en celle, tryk F2 knappen på tastaturet og så trykke enter knappen.

Skriv endeligt igen hvis det ikke virker.


-------------
VH rassten

Arbejde excel 2010
Privat excel 2010


Besked fra: finn.lauridsen
Posteringsdato: 24.Mar.2012 kl. 12:58
Din nye makro er ok, virker efter hensigten , nu er det bare min egen ColorCount der ikke opdaterer
før jeg trykker F9 , kan man bygge det ind i den samme knap?


Besked fra: rassten
Posteringsdato: 24.Mar.2012 kl. 14:56
ret koden til

Next

Calculate

End Sub



-------------
VH rassten

Arbejde excel 2010
Privat excel 2010


Besked fra: finn.lauridsen
Posteringsdato: 24.Mar.2012 kl. 17:08
Nu er den 100%  takker rigtigt meget for din tålmodighed   Wink


Besked fra: rassten
Posteringsdato: 25.Mar.2012 kl. 00:37
Du er velkommen
Tak for tilbagemeldingen



-------------
VH rassten

Arbejde excel 2010
Privat excel 2010



Print side | Luk vindue