Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketFormatering med VBA

 Besvar Besvar
Forfatter
dixib Se dropdown
Bronze bruger
Bronze bruger


Medlem: 17.Apr.2012
Land: Danmark
Status: Offline
Point: 26
Direkte link til dette indlæg Emne: Formatering med VBA
    Sendt: 17.Apr.2012 kl. 15:28
Hej alle Excel-hajer

Jeg vil gerne kunne formatere diverse celler i forhold til valget i andre celler. Da jeg har mere end tre valg i den celle, som styrer formateringen, er jeg kommet frem til, at det er nødvendigt at bruge VBA. Det er dog ikke lykkedes mig at finde frem til hvordan (eller kunne få de koder jeg har fundet til at virke).

Jeg håber det ud fra nedenstående ark er muligt at forstå, hvad jeg mener.
Først og fremmest skal valget i "Type" styre baggrundsfarven i feltet "Name". Hvis det er muligt vil jeg også gerne have at hvis der f.eks. vælges "T1" i "Type" at det ikke kun er baggrundsfarven i "Name" der ændre, men flere felter i rækken.

Hvis nogen kender til gode guides til VBA for en 100% nybegynder, så ville det heller ikke være dårligt, så jeg også forstår, hvordan det hele foregår.

På forhånd tak
Ole Møller Christensen

http://ole.dixib.dk/VBA_test.xls
Til top



Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 18.Apr.2012 kl. 01:10
Hej
Er det her noget i den stil den har brug for.

uploads/107/color_efter_celle_værdi.xls

Se Sheet2.


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


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

For i = 2 To lr
   
        If Range("c" & i).Value = "T1" Then Rows(i & ":" & i).EntireRow.Interior.Color = RGB(153, 204, 255)
        If Range("c" & i).Value = "T2" Then Range("b" & i).Interior.Color = RGB(204, 255, 204)
        If Range("c" & i).Value = "T3" Then Range("b" & i).Interior.Color = RGB(255, 204, 153)
        If Range("c" & i).Value = "T4" Then Range("b" & i).Interior.Color = RGB(255, 153, 204)
   
Next
End Sub


hver gang der sker noget i sheet2, kører makroen.

VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
dixib Se dropdown
Bronze bruger
Bronze bruger


Medlem: 17.Apr.2012
Land: Danmark
Status: Offline
Point: 26
Direkte link til dette indlæg Sendt: 18.Apr.2012 kl. 08:21
Hej rassten

Det er er i hvert tilfælde et godt skridt i den rigtige retning! Der er dog to problemer...

Først så bliver hele rækken blå, når der vælges T1, hvor jeg kun ønsker at det er de tre første og femte kolonne (i dette tilfælde).
Efter at have valgt T1 for en række og derefter vælger en anden værdi, så forbliver alle de øvrige felter blå, og kun felter i anden kolonne skifter farve. I dette tilfælde skal resten af kolonnerne skifte tilbage til hvid baggrund.

Da du har benyttet det andet worksheet, som jeg benyttede til værdierne i min dropdown, virker denne funktion ikke i din fil, men jeg har kopieret koden over i min egen version og har opdateret den på linket i det første indlæg.

En ekstra feature, som jeg godt kunne ønske mig er at der kommer en tyk border omkring felter, når der vælges T1, som jeg også har opdateret i min fil. Dette skal også forsvinde igen lige som baggrundsfarven i de øvrige kolonner.

Endnu en gang ville det være dejlig, hvis nogen har links til tutorials/guides til disse koder, så jeg bedre forstår, hvad der foregår og evt. selv kan begynde at redigere i dem.

Mange tak for hjælpen indtil nu.

Venlig hilsen
Ole Møller Christensen
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 18.Apr.2012 kl. 11:07
Prøv


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

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

Range("a2:c" & lr, "e2:e" & lr).Interior.Color = xlNone
Range("a2:c" & lr, "e2:e" & lr).Borders(xlInsideHorizontal).LineStyle = xlNone
For i = 2 To lr
   
        If Range("c" & i).Value = "T1" Then Range("a" & i & ":" & "c" & i).Interior.Color = RGB(153, 204, 255)
        If Range("c" & i).Value = "T1" Then
            With Range("a" & i & ":" & "c" & i).Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .Weight = xlMedium
             End With
              With Range("a" & i & ":" & "c" & i).Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = xlMedium
             End With
        End If
        If Range("c" & i).Value = "T1" Then Range("e" & i).Interior.Color = RGB(153, 204, 255)
        If Range("c" & i).Value = "T1" Then
            With Range("e" & i).Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .Weight = xlMedium
             End With
              With Range("e" & i).Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = xlMedium
             End With
        End If
       
        If Range("c" & i).Value = "T2" Then Range("b" & i).Interior.Color = RGB(204, 255, 204)
        If Range("c" & i).Value = "T3" Then Range("b" & i).Interior.Color = RGB(255, 204, 153)
        If Range("c" & i).Value = "T4" Then Range("b" & i).Interior.Color = RGB(255, 153, 204)
   
Next
End Sub


For dit andet spørgsmål.
Prøv at søge i dette Forum, jeg ved at bla. Allan har svaret lignende tidligere.
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
Kurt Kubik Se dropdown
Sølv bruger
Sølv bruger


Medlem: 18.Feb.2012
Status: Offline
Point: 209
Direkte link til dette indlæg Sendt: 18.Apr.2012 kl. 17:57
Linket virker ikke
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 18.Apr.2012 kl. 18:03
Hvilket link tænker du på?
jeg kan godt hente begge eksempel filer, men hvis du har problem skriv, så kan jeg eventuelt sende dem til dig.
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
Kurt Kubik Se dropdown
Sølv bruger
Sølv bruger


Medlem: 18.Feb.2012
Status: Offline
Point: 209
Direkte link til dette indlæg Sendt: 18.Apr.2012 kl. 19:50
Citat: rassten rassten skrev:

Hvilket link tænker du på?
jeg kan godt hente begge eksempel filer, men hvis du har problem skriv, så kan jeg eventuelt sende dem til dig.


Mærkeligt - første link dur slet ikke her!
Til top
rassten Se dropdown
Guld bruger
Guld bruger


Medlem: 26.Okt.2010
Status: Offline
Point: 694
Direkte link til dette indlæg Sendt: 18.Apr.2012 kl. 20:15
VH rassten

Arbejde excel 2010
Privat excel 2010
Til top
dixib Se dropdown
Bronze bruger
Bronze bruger


Medlem: 17.Apr.2012
Land: Danmark
Status: Offline
Point: 26
Direkte link til dette indlæg Sendt: 19.Apr.2012 kl. 07:57
Mit domæne har været nede kortvarigt, da jeg ikke havde fået betalt min regning Confused
Skulle være oppe at køre igen, men dejligt du kunne hjælpe med filer i mellemtiden rassten.

Jeg prøver at kigge på din nye kode og kigger lidt videre i forum'et efter andre godter.

Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk