Avatar billede gider_ikke_mere Nybegynder
23. februar 2004 - 22:53 Der er 12 kommentarer og
1 løsning

Datavalidering og cellefarver

Hvordan kan man lave datavalidering på en celle og samtidigt få ændret farven på cellen hvis værdien er udenfor valideringen? Der skal ikke være nogen kommandoknap el. lign. til at køre valideringen.
Hvor bliver koden for [Data]-> [Datavalidering] egentlig gemt?
Avatar billede jkrons Professor
23. februar 2004 - 23:19 #1
Du kan nok opnå det, du ønsker ved at kombinere datavalidering og betinget formatering, men så kan du ikke samtidigt forhindre indtastninger, der falder unden for valideringen (Stop). Du må nøjes med at bruge Information eller Advarsel.

Jeg har ingen anelse om, hvor valideringsreglerne gemmes. Sorry!
Avatar billede gider_ikke_mere Nybegynder
24. februar 2004 - 00:33 #2
Jeg kan ikke få det til at virke hvis værdien skal ligge inden for et navngivet celleområde!
Avatar billede jkrons Professor
24. februar 2004 - 00:34 #3
Kan du ikke prøve at forklare præcist hvad det er, du ønsker at opnå?
Avatar billede gider_ikke_mere Nybegynder
24. februar 2004 - 08:37 #4
Jeg har en række felter f.eks B25:B35. i disse felter skal der vælges værdier efter en datavalidering. Denne validering kommer fra et celleområde f.eks C50:C75 som kaldes CPU (=CPU i datavalidering). Jeg har ingen fejlmelding oprettet, da brugerne i princippet gerne må skrive noget andet end valideringen tillader, de skal da blot have en advarsel ved at farven på feltet skifter fra grøn til rød.
Det mit spørgsmål egentlig går på er hvorvidt det i Excel er muligt at få kørt en kontrol løbende i baggrunden uden at brugeren skal trykke på f.eks en knap
Avatar billede kabbak Professor
25. februar 2004 - 18:06 #5
Jeg går ud fra at du har navngivet området C50:C75 til CPU.

Sæt denne makro ind i dit arkmodul.
Udbyg den selv, med dine betingelser

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("CPU")) Is Nothing Then
If Target.Value > 100 Then
Target.Interior.Color = vbRed ' rød hvis over 100
Else
Target.Interior.Color = vbGreen ' ellers grøn
End If
End If
End Sub
Avatar billede jkrons Professor
25. februar 2004 - 18:40 #6
kabbak-> Måske har jeg misforstået problemet, men din kode løser det i hvert fald ikke som jeg opfatter det, nemlig at hvis der tastes et tal i en af cellerne B25:B35, skal der undersøges om det indtastede tal eksisterer sig i området CPU Hvis ikke, skal cellen farves. Din kode farver cellerne I CPU, hvis ikke en eller anden betingelse er opfyldt.
Avatar billede kabbak Professor
25. februar 2004 - 18:52 #7
OK jkrons, så skal den se sådan ud

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B25:B35")) Is Nothing Then
For Each c In Range("CPU")
If Target.Value = c.Value Then
Target.Interior.Color = vbGreen
Exit Sub
End If
Next
Target.Interior.Color = vbRed ' ellers grøn
End If
End Sub
Avatar billede jkrons Professor
25. februar 2004 - 18:56 #8
Smukt :-)
Avatar billede gider_ikke_mere Nybegynder
25. februar 2004 - 21:30 #9
Bravo!
Point til Kabbak
Lige det jeg manglede. Kan én af Jer anbefale en god bog om VB og Excel?
Avatar billede bak Forsker
25. februar 2004 - 21:43 #10
Problemet kan vel også klares uden makro, men med betinget formatering
stil dig i B25, vælg betinget formatring
vælg "Formel er =" og skriv =TÆL.HVIS(cpu;B25)<1
vælg en farve og tryk OK.
Kopier formatet nedad.
Avatar billede bak Forsker
25. februar 2004 - 21:55 #11
kan evt udbygges til
=OG(TÆL.HVIS(cpu;D1)<1;ER.TOM(D1)=FALSK)=SAND
Avatar billede kabbak Professor
25. februar 2004 - 21:55 #12
et svar ;-))
Avatar billede gider_ikke_mere Nybegynder
25. februar 2004 - 22:10 #13
Da jeg skal have bygget en masse andre argumenter ind i denne datavalidering er den eneste måde for mig nok at gøre det i VB. Derfor point til Kabbak!
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