Avatar billede choco Nybegynder
14. februar 2010 - 16:32 Der er 22 kommentarer og
1 løsning

Kopir regl.

Hej alle sammen.

Er der nogen her som evt. ved om man kan kopir en regl.
ville være lidt nemmer end at skulle lave 7 regler til 60-70 forskellige celler.

På forhånd tak..
Avatar billede choco Nybegynder
14. februar 2010 - 17:28 #1
eller evt. en anden måde at gøre det på.
der skal være en farve i den ene celle alt efter værdien i en anden celle.
Avatar billede store-morten Ekspert
14. februar 2010 - 18:49 #2
Prøv at markere, alle de celler det drejer sig om, før du opretter reglen.
Hvis det er 'Betinget formatering' kan format pensel bruges.
Avatar billede choco Nybegynder
14. februar 2010 - 19:32 #3
har jo sådan at når :

B1 = 1 > A1 = rød
B1 = 2 > A1 = blå
etc.

så jeg skal lave 7 regler i samme celle.
noget jeg efterfølgende skal gøre i pænt mange celler.

men den med format pensel vil jeg gerne lige have uddybet hvis det kan lade sig gøre..??
Avatar billede store-morten Ekspert
14. februar 2010 - 20:05 #4
Mens jeg lige tænker over dette?
Kan du jo lige bruge lidt tid på at afslutte dine gamle spørgsmål. Du har 945 point ude, og gamle spørgsmål tilbage fra 2003 ?
Avatar billede choco Nybegynder
15. februar 2010 - 17:03 #5
Gør jeg også nogen gange, men det jo ikk sådan når man glemmer dem, fordi der ikk rigtig dukker svar på man kan bruge..
Avatar billede store-morten Ekspert
15. februar 2010 - 21:49 #6
Okay, så gamle spørgsmål kommer der vist ikke mere hjælp til, så der lægger du selv et 'svar' og lukker dem. Evt. oprette nyt spørgsmål vis det stadig er aktuelt.

Nå men, tilbage til betinget formatering, der er desværre kun mulighed for 3 regler?
Du finden den i 'Formater'--> 'Betinget formatering'
Betingelse 1 --> vælger du 'Formlen er' og i feltet til højre =1>A1
og så klikkes på 'Formater'--> fanebladet 'Mønster'--> vælg farve.
Klik på 'Tilføj' osv....


Format penslen finder du som en knap øverst, ligner en malerpensel. Når du har formateret en celle, klikkes en gang på penslen, derefter klikkes på en celle som skal have samme format. (Et klik, og du kan formater en celle. Dobbeltklik, og du kan formatere flere celler, stop med klik på pensel igen)
Avatar billede store-morten Ekspert
15. februar 2010 - 22:39 #7
Har jeg forstået det rigtigt:
Hvis A1 < 1 så farv B1 rød?
Hvis A1 < 2 så farv B1 blå? osv... gange 7

Og det skal gælde for A1 til A70?
Avatar billede choco Nybegynder
16. februar 2010 - 18:09 #8
Ud over at det skal være = er det ganske rigtig forstået.
Men den pensle har godt nok lige løst alle mine problemer, du fortjener jo egentlig de point, så smid et svar.. :)
Avatar billede store-morten Ekspert
16. februar 2010 - 18:55 #9
Ok.

Så har du ikke brug for denne kode:


Private Sub Worksheet_Change(ByVal Target As Range)
home = ActiveCell.Address 'Husker start celle
Application.ScreenUpdating = False
Range("A1:A100").Activate 'Celler der reageres på?
For Each C In Selection.Cells
'hvis en celle i kolonne A = 1 farves kolonne B, i samme række
    If C.Value = 1 Then
'farv cellen i kolonne B med farve 0
        C.Offset(0, 1).Interior.ColorIndex = 0 '= Tom
'hvis en celle i kolonne A = 2 farves kolonne B, i samme række
    ElseIf C.Value = 2 Then
'farv cellen i kolonne B med farve 2
        C.Offset(0, 1).Interior.ColorIndex = 2 '= Hvid
'hvis en celle i kolonne A = 3 farves kolonne B, i samme række
    ElseIf C.Value = 3 Then
'farv cellen i kolonne B med farve 3
        C.Offset(0, 1).Interior.ColorIndex = 3 '= Rød
'hvis en celle i kolonne A = 4 farves kolonne B, i samme række
    ElseIf C.Value = 4 Then
'farv cellen i kolonne B med farve 4
        C.Offset(0, 1).Interior.ColorIndex = 4 '= KnaldGrøn
'hvis en celle i kolonne A = 5 farves kolonne B, i samme række
    ElseIf C.Value = 5 Then
'farv cellen i kolonne B med farve 5
        C.Offset(0, 1).Interior.ColorIndex = 5 '= Blå
'hvis en celle i kolonne A = 6 farves kolonne B, i samme række
    ElseIf C.Value = 6 Then
'farv cellen i kolonne B med farve 6
        C.Offset(0, 1).Interior.ColorIndex = 6 '= Gul
'hvis en celle i kolonne A = 7 farves kolonne B, i samme række
    ElseIf C.Value = 7 Then
'farv cellen i kolonne B med farve 7
        C.Offset(0, 1).Interior.ColorIndex = 7 '= Pink
'hvis en celle i kolonne A er tom, vil cellerne i kolonne B i samme række, være uden farve.
    Else
'farv cellen i kolonne B med farve 0
        C.Offset(0, 1).Interior.ColorIndex = 0 '= Tom
    End If
Next
Range(home).Select 'Aktivere start celle
Application.ScreenUpdating = True
End Sub
'Farvekoder til Interior.Colorindex
      '0        = Tom              1        = Sort
      '2        = Hvid              3        = Rød
      '4        = KnaldGrøn        5        = Blå
      '6        = Gul              7        = Pink
      '8        = Turkis            9        = Rødbrun
      '10        = Grøn              11        = Mørkeblå
      '12        = Olivengul        13        = Violet
      '14        = Blågrøn          15        = Grå 25%
      '16        = Grå 50%          17        = Støvet Blå
      '18        = Blomme            19        = Støvet Lys Gul
      '20        = Blegturkis        21        = Støvet Violet
      '22        = Støvet Lyserød
Avatar billede choco Nybegynder
16. februar 2010 - 21:00 #10
det behøves ikke nej, betinget formatering virker helt præcis som jeg vil have den til, var bare for dovn til at gøre det samme SÅ mange gange..

Men kan være du kender koden til en anden ting.
når man tilføjer noget evt fra en inputbox, kunne det være super dejligt, den så selv kunne finde ud af, at der allerede stod noget i A1 og så hopper vider til A2 og indsætter det??

Kan oprette et nyt spørgsmål hvis du vil have flere point??
Avatar billede store-morten Ekspert
16. februar 2010 - 22:45 #11
Tak for point:-)

Noget i denne stil:


Sub gemLodret()
Dim iResultat1

Dato:
iResultat1 = InputBox("Indtast startdato:", "Start dato", Date)
If iResultat1 = "" Then Exit Sub
If Not IsDate(iResultat1) Or Len(iResultat1) < 10 Then MsgBox ("Forkert format eller ingen dato?"): GoTo Dato

  Range("A1").Select
If Range("A1").Value = "" Then
    Range("A1").Activate
Else
    Range("A1").CurrentRegion.Select
    ActiveCell.Offset(Selection.Rows.Count, 0).Activate
End If

With ActiveCell
    .Offset(0, 0).Value = iResultat1
    End With

End Sub
Avatar billede choco Nybegynder
17. februar 2010 - 16:28 #12
det er du squ da en ørn til, jeg takker endnu engang.
og skriv hvis du vil have flere point, har nok af dem som du ser.. :)
Avatar billede choco Nybegynder
17. februar 2010 - 16:59 #13
tror godt jeg kunne bruge lidt info om koden, når du lige ligger inde med 5 min til det. prøvet lige at ligge den i B rækken, det gik da galt for mig.. :)
Avatar billede store-morten Ekspert
17. februar 2010 - 18:43 #14
Jamen det må jeg så prøve.
Kopier koden over, så bliver forklaringen lysegrøn.

Er rettet til kolonne B


Sub gemIkolonneB()
Dim iResultat1

Dato: 'Linie "navn"
'iResultat = dit svar? her en dato
iResultat1 = InputBox("Indtast startdato:", "Start dato", Date)
'Hvis 'iResultat er tom, så forlades makrokroen.
If iResultat1 = "" Then Exit Sub
' Hvis iResultat ikke er en dato eller indeholder 10 karaktere,
' kommer en besked med "Forkert format eller ingen dato?"
' og der gås tilbage til linien Dato, altså startes forfra.
If Not IsDate(iResultat1) Or Len(iResultat1) < 10 Then MsgBox ("Forkert format eller ingen dato?"): GoTo Dato

'vælger celle B1
  Range("B1").Select
'Hvis celle B1 er tom, aktiveres B1, 'Else' springes over
If Range("B1").Value = "" Then
    Range("B1").Activate
'B1 er valgt og er ikke tom, området B1 og ned af til første tomme celle findes,
'og den første tomme celle aktiveres.
Else
    Range("B1").CurrentRegion.Select
    ActiveCell.Offset(Selection.Rows.Count, 0).Activate
End If

'I den aktive celler indsættes iResultat
With ActiveCell
    .Offset(0, 0).Value = iResultat1
    End With

End Sub


Du afgøre selv om jeg fortjener flere point ;-)
Avatar billede choco Nybegynder
17. februar 2010 - 19:17 #15
Ja, fik det også til at virke til sidst, men den lavet bare numre til at starte med, kan være det bare er mig der sov.. :)

ActiveCell.Offset(Selection.Rows.Count, 0).Activate

.Offset(0, 0).Value = iResultat1

Hva betyder de 0'er??
Tror jeg har fundet ud af den første sætning er hvor langt til højre den skal indsætte i forhold til B1??
Avatar billede store-morten Ekspert
17. februar 2010 - 20:36 #16
Det er korrekt:-)

"Tror jeg har fundet ud af den første sætning er hvor langt til højre den skal indsætte i forhold til B1??"
B1 er den aktive celle.

.Offset(0, 0).Value

Første 0 pladcering op/ned i forhold til aktive celle.
Andet 0 pladcering venstre/højre i forhold til aktive celle.
Avatar billede choco Nybegynder
17. februar 2010 - 20:51 #17
så tror jeg at jeg har styr på det overordnet i den kode.. :)

If Not IsDate(iResultat1) Or Len(iResultat1) < 10

er med på hva selve sætningen gør, men er der en forklaring på hvorfor man skriver IsDate og Len og < 10??

eller er det bare en af de ting man bare ved?? :)
Avatar billede store-morten Ekspert
17. februar 2010 - 21:00 #18
Ja, måske ;-)

Ej, mener det er sådan:
Tjekker om man har skrevet en dato. (17-02-2010)
Og om der er 10 karaktere, så 17-02-10 ikke accepteres.
Avatar billede store-morten Ekspert
17. februar 2010 - 21:01 #19
Det er bare noget jeg havde liggende som eks.
Avatar billede store-morten Ekspert
18. februar 2010 - 11:35 #20
Til inspiration.
Opstarts spørgsmål? = MsgBox
Indtast startdato: = IputBox
Indtast initialer: = IputBox
Gemmer alle 3 svar i ny række.

Sub gemIkolonneB()

Dim iSvar
Dim iResultat1
Dim iResultat2

iSvar = MsgBox("Har du prøvet denne Makro før?", vbYesNoCancel, "Opstarts spørgsmål?")
'iSvar = Hvis Ja huskes teksten "Øvet"
If iSvar = vbYes Then iSvar = "Øvet"
'iSvar = Hvis Nej huske teksten "Nybegynder"
If iSvar = vbNo Then iSvar = "Nybegynder"
'Hvis Annuller" stoppes
If iSvar = vbCancel Then Exit Sub

Dato: 'Linie "navn"
'iResultat1 = dit svar? her en dato
iResultat1 = InputBox("Indtast startdato:", "Start dato", Date)
'Hvis 'iResultat1 er tom, så forlades makrokroen.
If iResultat1 = "" Then Exit Sub
' Hvis iResultat1 ikke er en dato eller indeholder 10 karaktere,
' kommer en besked med "Forkert format eller ingen dato?"
' og der gås tilbage til linien Dato, altså startes forfra.
If Not IsDate(iResultat1) Or Len(iResultat1) < 10 Then MsgBox ("Forkert format eller ingen dato?"): GoTo Dato

Ini: 'Linie "navn"
'iResultat2 = dit svar? her initialer
iResultat2 = InputBox("Indtast initialer:", "Initialer")
'Hvis 'iResultat2 er tom, ' kommer en besked med "Du skal indtaste initialer?"
' og der gås tilbage til linien Ini, altså startes forfra.
If iResultat2 = "" Then MsgBox ("Du skal indtaste initialer?"): GoTo Ini

'vælger celle B1
  Range("B1").Select
'Hvis celle B1 er tom, aktiveres B1, 'Else' springes over
If Range("B1").Value = "" Then
    Range("B1").Activate
'B1 er valgt og er ikke tom, området B1 og ned af til første tomme celle findes,
'og den første tomme celle aktiveres.
Else
    Range("B1").CurrentRegion.Select
    ActiveCell.Offset(Selection.Rows.Count, 0).Activate
End If

'I den aktive celler indsættes iResultat
With ActiveCell
    .Offset(0, 0).Value = iSvar
    .Offset(0, 1).Value = iResultat1
    .Offset(0, 2).Value = iResultat2
    End With

End Sub
Avatar billede choco Nybegynder
19. februar 2010 - 16:43 #21
Det var ellers lidt af en kode, kunne godt tænkes jeg kunne få brug for den, på et tidspunkt, gemmes skal den i hvert fald. :)
Avatar billede store-morten Ekspert
19. februar 2010 - 17:43 #22
Ja ;-)
Ca. halvdelen er kommentare
og den anden halvdel kode, god fornøjelse.
Avatar billede choco Nybegynder
19. februar 2010 - 18:27 #23
hehe ja det så jeg, men har gennemskuet den, så tak for den.. :)
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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