Avatar billede p-j-dk Nybegynder
30. marts 2006 - 00:57 Der er 25 kommentarer og
1 løsning

Faneblads farve betinget af feltværdi

Jeg har en del faneblade der opdateres fra en database hvert 10 minut. For hurtigt at kunne se at der er rettelser ønsker jeg at farven på faneblad ændres ved værdiændring af eks. A1?
Avatar billede excelent Ekspert
30. marts 2006 - 06:04 #1
Avatar billede excelent Ekspert
08. april 2006 - 08:06 #2
svar
Avatar billede p-j-dk Nybegynder
09. april 2006 - 13:07 #3
Undskyld det sene svar har været i udlandet hele ugen.
Jeg kan godt se at dette virker men kan det gøres pr. automatik hver gang der sker en ændring? (uden at jeg skal taste noget for at se at der er ændret)
Avatar billede excelent Ekspert
09. april 2006 - 15:32 #4
makro som spørger om ark nr. er blot med for at demonstrere demoen
denne skal naturligvis ikke med i dit projekt
jeg går ud fra at dine databaseopdateringer får fanebladene til at
ændre farve.

obs nyt navn: (changes2)

http://pmexcelent.dk/changes2.xls
Avatar billede excelent Ekspert
09. april 2006 - 15:37 #5
de 2 følgende makroer skal ligges ind i alle arks kodemodul
du skal blot ændre arknavnene i makroerne til de aktuelle (dine)

Private Sub Worksheet_Activate()
ActiveWorkbook.Sheets("Ark1").Tab.ColorIndex = 15
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveWorkbook.Sheets("Ark1").Tab.ColorIndex = 3
End Sub
Avatar billede excelent Ekspert
09. april 2006 - 15:42 #6
sig til hvis jeg skal hjælpe med at indsætte makroerne
Avatar billede p-j-dk Nybegynder
09. april 2006 - 17:00 #7
Jeg har lagt koden på hvert ark under "VBAProject (Mappe1.xls)"Microsoft Exel Objects" "Ark1 (Ark1) til "Ark3" (Ark3)
For at teste koden har jeg et "Ark4" der opdaterer ind i Ark1 til 3. Men dette giver ikke en farveændring. Hvis jeg derimod ændre i div. faner sker der en farveændring
Er det mig der ikke har lagt koden rigtigt??
Avatar billede excelent Ekspert
09. april 2006 - 17:04 #8
hvor helt præsis har du lagt koden ?
Avatar billede p-j-dk Nybegynder
09. april 2006 - 17:11 #9
Hvis jeg højreklikker på fanebladene og viser koden i changes2.xls er koden lagt nøjagtigt som dit.
Avatar billede excelent Ekspert
09. april 2006 - 17:12 #10
ok det lyder som det rigtige sted
Avatar billede excelent Ekspert
09. april 2006 - 17:14 #11
hvad gør du helt præsis i Ark4, - det kunne jo tyde på der ikke sker ændring i de øvrige ark siden farven ikke ændres
Avatar billede excelent Ekspert
09. april 2006 - 17:18 #12
her er min makro som laver ændring i de øvrige ark
Sub Makro1()
Dim x
x = InputBox("Vælg Ark nr.: ")
Sheets("Ark" & x).Range("a1").Value = ""
End Sub
Avatar billede p-j-dk Nybegynder
09. april 2006 - 17:22 #13
Jeg har somend bare lavet en =Ark4!A1, =Ark4!B1 og =Ark4!A3 i Ark4 der derved indsætter i Ark1/2/3 hvad jeg skriver i Ark4 A1/2/3
Avatar billede p-j-dk Nybegynder
09. april 2006 - 17:24 #14
Ikke i Ark4 som skrevet men i Ark1 står =Ark4!A1 etc.
Avatar billede excelent Ekspert
09. april 2006 - 17:29 #15
nå ok det tror jeg ikke den kan registrere
har du prøvet ved databaseopdatering ?
Avatar billede p-j-dk Nybegynder
09. april 2006 - 19:59 #16
Nej men jeg giver det et forsøg senere, Du hører fra mig.
Avatar billede p-j-dk Nybegynder
09. april 2006 - 21:05 #17
Så fik jeg prøvet det, men det var ingen succes! Farvemarkering sker hver gang der opdateres og ikke kun ved rettelser.
Avatar billede excelent Ekspert
09. april 2006 - 21:26 #18
så kan jeg desværre ikke hjælpe
Avatar billede excelent Ekspert
10. april 2006 - 04:14 #19
Og dog, hvis jeg forstår dit indlæg rigtigt så registrerer makroen alle opdateringer.
Så skal vi blot teste om der er sket ændring i det aktuelle område.
Det gørs med følgende linie :

If Intersect(Target, Range("C1:H100")) Is Nothing Then Exit Sub

Den tester i område C1:H100 for evt. ændringer, - rettes til dit aktuelle område
(det område der kan forekomme ændringer i ved databaseopdateringer)

Linien indsættes i alle ark i denne makro :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1:H100")) Is Nothing Then Exit Sub
ActiveWorkbook.Sheets("dit arknavn").Tab.ColorIndex = 3
End Sub
Avatar billede p-j-dk Nybegynder
10. april 2006 - 18:13 #20
Jeg kan godt se meningen med den kode, men den skifter stadig til rødt faneblad, ved hver opdatering, selv om der ikke er ændringer i arket.
Avatar billede excelent Ekspert
10. april 2006 - 18:25 #21
ok sidste bud (går ud fra du har rettet område til hvor ændringer kan komme)

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1:H100")) Is Nothing Then
Exit Sub
End if
ActiveWorkbook.Sheets("dit arknavn").Tab.ColorIndex = 3
End Sub
Avatar billede excelent Ekspert
10. april 2006 - 19:07 #22
prøv evt. også lige denne (allersidste bud) :-)

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1:H100")) ="" Then
Exit Sub
End if
ActiveWorkbook.Sheets("dit arknavn").Tab.ColorIndex = 3
End Sub
Avatar billede p-j-dk Nybegynder
10. april 2006 - 19:25 #23
Samme resultat det må være excel der ikke kun opdaterer ændringer men åbenbart hele arket.
Avatar billede excelent Ekspert
10. april 2006 - 19:31 #24
hmm ja måske - kan ikke greje den
Avatar billede excelent Ekspert
10. april 2006 - 19:47 #25
jeg vil foreslå, at du selv lægger et svar, og så kan du evt.
oprette spørgsmål igen- måske er der nogen som har erfaring med dette.
Avatar billede p-j-dk Nybegynder
10. april 2006 - 19:57 #26
Det gør jeg mentak for hjælpen!!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester