Avatar billede freestyle Nybegynder
10. oktober 2000 - 11:24 Der er 9 kommentarer og
1 løsning

Overflytte celle farve fra ark 1 til ark2

Jeg skal bruge en kode/formel for at kopiere celle farve fra en celle i et ark til en anden celle i et andet ark, både farve og tekst skal kunne kopieres, og det skal være sådan at når man ændre en farve på det ene ark så ændrer den også på det andet ark automatisk. PFT. :-)
Avatar billede nerøs Nybegynder
10. oktober 2000 - 16:49 #1
Du kan ikke lave en VBA funktion der ændrer formater.

Du kan godt lave noget kode til sheet_change eventet, sådan at hvergang en celle ændres checkes det i kode hvad det er for en celle og hvis det er de eller de ønskede udføres der formateringsændringer på en eller flere andre celler.

Jeg vil dog anbefale at du først prøver at bruge betinget formatering, hvis farven af cellerne er afhængig af bestemte værdier i regnearket.

Du kan med den betingede formatering definere forskellige formater som skal benyttes i cellen hvis betingelser du også definerer indtræffer.
Det kan f.eks være at cellen antager en bestemt værdi.
Det kan også være en formel. Så hvis f.eks du i det ene ark definerer at en celle når den bliver < 0 skal blive rød, kan du i et andet ark lave en betinget formatering der betyder at cellen bliver rød hvis den første celle bliver mindre end 0.



Avatar billede freestyle Nybegynder
11. oktober 2000 - 08:07 #2
Betinget formatering virker ikke i dette tilfælde. Det er en slags kalender som der er lavet og det farverne skal bruges til er at markere de dato hvor man er optaget af et projekt så det eneste der kommer til at stå sammen med farven er navnet på projektet. Håber i kan hjælpe.
Avatar billede ransborg Juniormester
11. oktober 2000 - 09:07 #3
nerøs, Jeg blev lige lidt nysgerrig, hvordan laver man den betingede formatering?

MVH
Claus
Avatar billede gonzoo Nybegynder
11. oktober 2000 - 10:56 #4
  Du kan lave en makro og tildele den et kontrolelement i ark 2 og så kan du opdatere ark 2 med denne makromed denne kode 
    Cells.Select
    Selection.Copy
    Sheets(\"Ark2\").Select
    Cells.Select
    Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
End Sub
       
Avatar billede nerøs Nybegynder
11. oktober 2000 - 23:35 #5
Det at man skifter formatering i en celle herunder farve udløser ikke noget event. Man kan derfor ikke få excel til at reagere herpå.
Så hvis du blot vil ændre en farve i en celle og herefter ændre farven i en anden celle på du nok køre en makro efter farveændringen.

Hvis du derimod indtaster noget i cellen udløser det et event som du kan programmere f.eks:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim AndetArk As Worksheet
    Dim rng As Range
    Set AndetArk = Worksheets(\"ark2\")
    \' Undersøg om cellen der ændres er en del af
    \' området \"kalender\"
    Set rng = Intersect(Range(\"kalender\"), Target)
    \'Hvis ikke så gå ud
    If rng Is Nothing Then Exit Sub
    \'Ellers så giver cellen med samme adresse som target i ark2 samme
    \'farve som target
    AndetArk.Range(rng.Address).Interior.ColorIndex = Target.Interior.ColorIndex
End Sub

Koden lægges ind i et arks Worksheet_Change event.
Desuden kræves der et navngivet område i arket med koden med navnet \"kalender\", samt et ark med navnet ark2 hvor farveændringerne vil ske.
Du kan evt formatere den intastede tekst i samme farve som cellen hvis du ikke ønsker den skal ses.

Hvis du vil have farveændringer til at ske automatisk kan du måske bruge ark2\'s Worksheet_Activate event som udløses når du aktiverer et worksheet. D.v.s når du går over og kigger på ark 2:

Private Sub Worksheet_Deactivate()
    Dim Celle As Range
    For Each Celle In Range(\"kalender\")
        Worksheets(\"ark2\").Range(Celle.Address).Interior.ColorIndex = Celle.Interior.ColorIndex
    Next Celle
End Sub

Jeg ved selvfølgelig ikke om det er cellerne med de samme adresser i ark2 der skal ændres, men det er i princippet ligegyldigt.
Avatar billede nerøs Nybegynder
11. oktober 2000 - 23:48 #6
Jeg ser i dit spørgsmål at du også vil have tekst med. Så er Worksheet_Change eventet helt fint (hvis man først ændrer farve og herefter text - men farveændringen kunne du jo lave automatisk som betinget formatering!).

Teksten eller værdien refererer du til som
range(\"<navn eller adresse>\").value, så i stedet for \"interior.colorindex\" skives der \"value\"

Avatar billede freestyle Nybegynder
12. oktober 2000 - 08:13 #7
Jeg kan desværre ikke bruge løsningsforeslaget. For det er ikke alle felter som der bliver skrevet noget i. Det skal forestille en kalender, hvor der hele tiden kun bliver vist 1 måned. Hvis der så er et projekt fra den 10. til den 20. i den måned så farver jeg alle felter fra d. 10. til d. 20. og jeg skriver navnet på projektet i det det første felt ud for d. 10.
Men hvis i ikke har løsningen såån.. lige så lad være at bruge mere krudt på det fordi jeg arbejder på et anden løsningsforslag end at skulle overføre farverne.
Avatar billede nerøs Nybegynder
12. oktober 2000 - 16:22 #8

Det er tilstækkeligt at der bliver skrevet i en celle. Farven i de andre celler kan du gøre afhængig af at der skrives i den første.

Men hvad er det der skal ske på det andet ark?

VH søren
Avatar billede freestyle Nybegynder
13. oktober 2000 - 08:06 #9
Det der skal ske\' er at der laves et ark for hver ansat hvori der er en kalender det ark som jeg omtaler som \"andet\" er et ark hvor alle ansattes kalendere bliver ajourført, og det er farverne fra alle ansattes ark som jeg skal have over på det samlede/\"andet\" ark.

VH Frank
Avatar billede freestyle Nybegynder
21. december 2000 - 15:15 #10
opgivet :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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