/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Betinget format, for få krit??
Fra : Brassovitski
Vist : 987 gange
500 point
Dato : 10-06-07 14:19

Hej
Jeg har en celle der kan indeholde teksten "Vælg farve;Gul;Orange;Grøn", og så en hel stribe celler der tilsammen skal udskrive en bogryg. Bogryggen er sammensat af flere celler for at kunde styre placering af teksten (lodret). Øverste celle skal f.eks. i tilfældet af at "Gul" er valgt have bundfarven gul, højre, venstre kant op topkanten skal være en sort streg. Næste celle nedefter skal så have bundfarven gul, venstre og højre kant skal have en sort streg.
Betinget formatering kan max. håndtere 3 betingelser ØV! Da jeg jo har fire kan jeg ikke bruge denne funktion. Jeg vil tro der skal noget VBA til eller kan man bruge vba betingelser i en Hvis-sætning? F.eks. Hvis(D1="Gul";bagcolor=Farvekode;Bagcolor=blank), sidste er kun et rent gæt da jeg ikke ved nok om kode til at kende den rigtige syntax.
Jeg prøver lige at lave et kort oprids:

Hvis (ark!D1="Vælg Farve" så Baggrundsfarve C3= blank, Højre kant=ingen farve, Venstre kant=ingen farve, Topkant=ingen farve).
Hvis (ark!D1=""Gul" så Baggrundsfarve C3=gul, Højre kant=sort streg, Venstre kant=sortstreg, Topkant=sortstreg).

Er det til at forstå og løse?


 
 
Kommentar
Fra : e.c


Dato : 10-06-07 21:14

Du kan godt bygge flere betingelser sammen.

hvis(ark!D1=rød; rød udg;hvis (ark!D1 =blå; blå udg; Hvis (ark!D1=gul;gul udg;grøn udg)))
Det var bare en idé - jeg har ikke afprøvet det.

Kommentar
Fra : Rosco40


Dato : 10-06-07 21:55

http://www.eksperten.dk/spm/738758

Måske det kunne hjælpe dig på vej.

Kommentar
Fra : Brassovitski


Dato : 11-06-07 01:11

Hej
Jeg fandt dette på eksperten:
Citat
Nu fandt jeg selv ud af det :-)
Skal programmet returnere en farvekode med værdien indeholdt i cellen, kan man skrive dette program. Det er relativt hurtigt at koipere og editiere, hvis det er et stort program. Jeg erfarede af VBA kun kunne have ca. 600 linier ad gangen, så jeg måtte lave mange moduler.

Indtast nedenstående i VBA: (Celler og farvekoder er tilfældige)
sub Farve()
If Range("c8") = 0 Then Range("c8").Interior.ColorIndex = 2
If Range("c8") = 1 Then Range("c8").Interior.ColorIndex = 15
If Range("c8") = 2 Then Range("c8").Interior.ColorIndex = 3
If Range("c8") = 3 Then Range("c8").Interior.ColorIndex = 20
If Range("c8") = 4 Then Range("c8").Interior.ColorIndex = 27


Jeg har prøvet et par forskellige af disse, men kan ikke få det til at virke.m Hjælp?


Kommentar
Fra : Brassovitski


Dato : 11-06-07 07:21

Hej
Jeg skylder nok lige at fortælle at jeg bruger Microsoft Excel 2002 (10.6501.6626) SP3.


Kommentar
Fra : Rosco40


Dato : 11-06-07 09:40

Kode
Private Sub Worksheet_Change(ByVal Target As Range)

If Range("D1") = "Vælg farve" Then
Range("C3").Interior.ColorIndex = 0
Else: Range("C3").Interior.ColorIndex = 0

If Range("D1") = "Gul" Then
Range("C3").Interior.ColorIndex = 6
Range("C3").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeRight).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeTop).LineStyle = xlContinuous

Else: Range("C3").Interior.ColorIndex = 0


End If
End If
End Sub

Kommentar
Fra : Rosco40


Dato : 11-06-07 09:57

Så er kanterne med også

[CODE][/Private Sub Worksheet_Change(ByVal Target As Range)

If Range("D1") = "Vælg farve" Then
Range("C3").Interior.ColorIndex = 0
Range("C3").Borders(xlEdgeLeft).LineStyle = 0
Range("C3").Borders(xlEdgeRight).LineStyle = 0
Range("C3").Borders(xlEdgeTop).LineStyle = 0

Range("C4").Interior.ColorIndex = 0
Range("C4").Borders(xlEdgeLeft).LineStyle = 0
Range("C4").Borders(xlEdgeRight).LineStyle = 0

Else: Range("C3").Interior.ColorIndex = 0
Range("C4").Interior.ColorIndex = 0

If Range("D1") = "Gul" Then
Range("C3").Interior.ColorIndex = 6
Range("C3").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeRight).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeTop).LineStyle = xlContinuous

Range("C4").Interior.ColorIndex = 6
Range("C4").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C4").Borders(xlEdgeRight).LineStyle = xlContinuous

Else: Range("C3").Interior.ColorIndex = 0
Range("C4").Interior.ColorIndex = 0

End If
End If
End Sub]

Kommentar
Fra : Rosco40


Dato : 11-06-07 09:59

Jeg skal lige ha´ lært at bruge den kodeboks.

Kommentar
Fra : Rosco40


Dato : 11-06-07 10:01

Så er celle C3 og C4 i orden med gul.

[Private Sub Worksheet_Change(ByVal Target As Range)

If Range("D1") = "Vælg farve" Then
Range("C3").Interior.ColorIndex = 0
Range("C3").Borders(xlEdgeLeft).LineStyle = 0
Range("C3").Borders(xlEdgeRight).LineStyle = 0
Range("C3").Borders(xlEdgeTop).LineStyle = 0

Range("C4").Interior.ColorIndex = 0
Range("C4").Borders(xlEdgeLeft).LineStyle = 0
Range("C4").Borders(xlEdgeRight).LineStyle = 0

Else: Range("C3").Interior.ColorIndex = 0
Range("C4").Interior.ColorIndex = 0

If Range("D1") = "Gul" Then
Range("C3").Interior.ColorIndex = 6
Range("C3").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeRight).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeTop).LineStyle = xlContinuous

Range("C4").Interior.ColorIndex = 6
Range("C4").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C4").Borders(xlEdgeRight).LineStyle = xlContinuous

Else: Range("C3").Interior.ColorIndex = 0
Range("C4").Interior.ColorIndex = 0

End If
End If
End Sub][/CODE]

Kommentar
Fra : Rosco40


Dato : 11-06-07 10:45

Hvis du lægger denne kode i ark 2
kan du se hvilke numre der giver hvilke farver.
skriv 1 i B1 2 i B2 osv.

[Private Sub worksheet_change(ByVal target As Range)
If Not Intersect(Range("B1:B15"), target) Is Nothing Then
With target
Select Case target.Value
Case 0
.Interior.ColorIndex = 0
Case 1
.Interior.ColorIndex = 1
Case 2
.Interior.ColorIndex = 2
Case 3
.Interior.ColorIndex = 3
Case 4
.Interior.ColorIndex = 4
Case 5
.Interior.ColorIndex = 5
Case 6
.Interior.ColorIndex = 6
Case 7
.Interior.ColorIndex = 7
Case 8
.Interior.ColorIndex = 8
Case 9
.Interior.ColorIndex = 9
Case 10
.Interior.ColorIndex = 10
Case 11
.Interior.ColorIndex = 11
Case 12
.Interior.ColorIndex = 12
Case 13
.Interior.ColorIndex = 13
Case 14
.Interior.ColorIndex = 14
Case 15
.Interior.ColorIndex = 15

Case Else
.Interior.ColorIndex = xlNone
End Select
End With
End If
End Sub


Kommentar
Fra : Rosco40


Dato : 11-06-07 11:08

Der viste sig at være mange flere farver.
denne giver dig alle 56 farver.

[CODE][Private Sub worksheet_change(ByVal target As Range)
If Not Intersect(Range("B1:B56"), target) Is Nothing Then
With target
Select Case target.Value
Case 0
.Interior.ColorIndex = 0
Case 1
.Interior.ColorIndex = 1
Case 2
.Interior.ColorIndex = 2
Case 3
.Interior.ColorIndex = 3
Case 4
.Interior.ColorIndex = 4
Case 5
.Interior.ColorIndex = 5
Case 6
.Interior.ColorIndex = 6
Case 7
.Interior.ColorIndex = 7
Case 8
.Interior.ColorIndex = 8
Case 9
.Interior.ColorIndex = 9
Case 10
.Interior.ColorIndex = 10
Case 11
.Interior.ColorIndex = 11
Case 12
.Interior.ColorIndex = 12
Case 13
.Interior.ColorIndex = 13
Case 14
.Interior.ColorIndex = 14
Case 15
.Interior.ColorIndex = 15
Case 16
.Interior.ColorIndex = 16
Case 17
.Interior.ColorIndex = 17
Case 18
.Interior.ColorIndex = 18
Case 19
.Interior.ColorIndex = 19
Case 20
.Interior.ColorIndex = 20
Case 21
.Interior.ColorIndex = 21
Case 22
.Interior.ColorIndex = 22
Case 23
.Interior.ColorIndex = 23
Case 24
.Interior.ColorIndex = 24
Case 25
.Interior.ColorIndex = 25
Case 26
.Interior.ColorIndex = 26
Case 27
.Interior.ColorIndex = 27
Case 28
.Interior.ColorIndex = 29
Case 30
.Interior.ColorIndex = 30
Case 31
.Interior.ColorIndex = 31
Case 32
.Interior.ColorIndex = 32
Case 33
.Interior.ColorIndex = 33
Case 34
.Interior.ColorIndex = 34
Case 35
.Interior.ColorIndex = 35
Case 36
.Interior.ColorIndex = 36
Case 37
.Interior.ColorIndex = 37
Case 38
.Interior.ColorIndex = 38
Case 39
.Interior.ColorIndex = 39
Case 40
.Interior.ColorIndex = 40
Case 41
.Interior.ColorIndex = 41
Case 42
.Interior.ColorIndex = 42
Case 43
.Interior.ColorIndex = 43
Case 44
.Interior.ColorIndex = 44
Case 45
.Interior.ColorIndex = 45
Case 46
.Interior.ColorIndex = 46
Case 47
.Interior.ColorIndex = 47
Case 48
.Interior.ColorIndex = 48
Case 49
.Interior.ColorIndex = 49
Case 50
.Interior.ColorIndex = 50
Case 51
.Interior.ColorIndex = 51
Case 52
.Interior.ColorIndex = 52
Case 53
.Interior.ColorIndex = 53
Case 54
.Interior.ColorIndex = 54
Case 55
.Interior.ColorIndex = 55
Case 56
.Interior.ColorIndex = 56

Case Else
.Interior.ColorIndex = xlNone
End Select
End With
End If
End Sub
]



Kommentar
Fra : Rosco40


Dato : 11-06-07 11:10

Kode
Private Sub worksheet_change(ByVal target As Range)
If Not Intersect(Range("B1:B56"), target) Is Nothing Then
With target
Select Case target.Value
Case 0
.Interior.ColorIndex = 0
Case 1
.Interior.ColorIndex = 1
Case 2
.Interior.ColorIndex = 2
Case 3
.Interior.ColorIndex = 3
Case 4
.Interior.ColorIndex = 4
Case 5
.Interior.ColorIndex = 5
Case 6
.Interior.ColorIndex = 6
Case 7
.Interior.ColorIndex = 7
Case 8
.Interior.ColorIndex = 8
Case 9
.Interior.ColorIndex = 9
Case 10
.Interior.ColorIndex = 10
Case 11
.Interior.ColorIndex = 11
Case 12
.Interior.ColorIndex = 12
Case 13
.Interior.ColorIndex = 13
Case 14
.Interior.ColorIndex = 14
Case 15
.Interior.ColorIndex = 15
Case 16
.Interior.ColorIndex = 16
Case 17
.Interior.ColorIndex = 17
Case 18
.Interior.ColorIndex = 18
Case 19
.Interior.ColorIndex = 19
Case 20
.Interior.ColorIndex = 20
Case 21
.Interior.ColorIndex = 21
Case 22
.Interior.ColorIndex = 22
Case 23
.Interior.ColorIndex = 23
Case 24
.Interior.ColorIndex = 24
Case 25
.Interior.ColorIndex = 25
Case 26
.Interior.ColorIndex = 26
Case 27
.Interior.ColorIndex = 27
Case 28
.Interior.ColorIndex = 29
Case 30
.Interior.ColorIndex = 30
Case 31
.Interior.ColorIndex = 31
Case 32
.Interior.ColorIndex = 32
Case 33
.Interior.ColorIndex = 33
Case 34
.Interior.ColorIndex = 34
Case 35
.Interior.ColorIndex = 35
Case 36
.Interior.ColorIndex = 36
Case 37
.Interior.ColorIndex = 37
Case 38
.Interior.ColorIndex = 38
Case 39
.Interior.ColorIndex = 39
Case 40
.Interior.ColorIndex = 40
Case 41
.Interior.ColorIndex = 41
Case 42
.Interior.ColorIndex = 42
Case 43
.Interior.ColorIndex = 43
Case 44
.Interior.ColorIndex = 44
Case 45
.Interior.ColorIndex = 45
Case 46
.Interior.ColorIndex = 46
Case 47
.Interior.ColorIndex = 47
Case 48
.Interior.ColorIndex = 48
Case 49
.Interior.ColorIndex = 49
Case 50
.Interior.ColorIndex = 50
Case 51
.Interior.ColorIndex = 51
Case 52
.Interior.ColorIndex = 52
Case 53
.Interior.ColorIndex = 53
Case 54
.Interior.ColorIndex = 54
Case 55
.Interior.ColorIndex = 55
Case 56
.Interior.ColorIndex = 56

Case Else
.Interior.ColorIndex = xlNone
End Select
End With
End If
End Sub


Kommentar
Fra : Brassovitski


Dato : 11-06-07 11:29

Hej Rosco40
Jeg har nu lavet følgende, for lige at blive fortrolig med funktionen:

Kode
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("h4") = "Vælg farve" Then
Range("i4").Interior.ColorIndex = 2
If Range("h4") = "Gul" Then
Range("i4").Interior.ColorIndex = 36
If Range("h4") = "Orange" Then
Range("i4").Interior.ColorIndex = 45
If Range("h4") = "Grøn" Then
Range("i4").Interior.ColorIndex = 43

Else: Range("i4").Interior.Color = 2
End If
End If
End If
End If
End Sub


Dette skulle så bevirke at celle i4 får en farve der korresponderer med cellen h4. Cellen i4 får fint farven gul(36), når gul vælges, men ingen af de øvrige virker. Jeg kan ikke gennemskue hvad der går galt.
Farverne skulle være som følger i henhold til et ark med colorindex-numre jeg har hentet på nettet:

2=Hvid, 36=Gul, 45=Orange, 43=Grøn.

En anden ting: Hvis den celle farven vælges i ligger på ark 1, og den celle der skal skifte farve er i ark2, hvordan ser coden så ud?

En cellehenvisning fra et arkt il et andet ser jo normalt sådan ud (=Ark1!H4)



Kommentar
Fra : Rosco40


Dato : 11-06-07 12:46

Din kode kan jeg slet ikke få til at virke ??

Kommentar
Fra : Brassovitski


Dato : 11-06-07 12:52

Hej igen
Nu har jeg følgende til at virke bortset fra at jeg ved "Vælg Farve" for en sort farve i celle i4.

Ha! Den lurrede jeg i mellemtiden. i koden Står der farve med lille f, i valglisten i celle h4 står det med stort F.
Så nu virker denne del. Så må jeg lige eksperimentere lidt med resten.

Kode
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("h4") = "Vælg farve" Then
Range("i4").Interior.ColorIndex = 0

Else: Range("i4").Interior.Color = 0

If Range("h4") = "Gul" Then
Range("i4").Interior.ColorIndex = 27

Else: Range("i4").Interior.Color = 0

If Range("h4") = "Orange" Then
Range("i4").Interior.ColorIndex = 45

Else: Range("i4").Interior.Color = 0

If Range("h4") = "Grøn" Then
Range("i4").Interior.ColorIndex = 43

Else: Range("i4").Interior.Color = 0
End If
End If
End If
End If
End Sub


Foreløbig tak! Jeg vender tilbage når jeg er kommet videre.


Kommentar
Fra : Brassovitski


Dato : 11-06-07 12:55

Pyh det giver godt nok sved på panden dette her.

Nu har jeg forsøgt at lægge koden ind til et par nye celler h10 og i10.
Men nu er det kun de første celler (H4, I4)der virker.
Hvad er der galt med min kode:

Kode
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("h4") = "Vælg Farve" Then
Range("i4").Interior.ColorIndex = 0

Else: Range("i4").Interior.Color = 0

If Range("h4") = "Gul" Then
Range("i4").Interior.ColorIndex = 27

Else: Range("i4").Interior.Color = 0

If Range("h4") = "Orange" Then
Range("i4").Interior.ColorIndex = 45

Else: Range("i4").Interior.Color = 0

If Range("h4") = "Grøn" Then
Range("i4").Interior.ColorIndex = 43

Else: Range("i4").Interior.Color = 0

If Range("h10") = "Vælg Farve" Then
Range("i10").Interior.ColorIndex = 0

Else: Range("i10").Interior.Color = 0

If Range("h10") = "Gul" Then
Range("i10").Interior.ColorIndex = 27

Else: Range("i10").Interior.Color = 0

If Range("h4") = "Orange" Then
Range("i4").Interior.ColorIndex = 45

Else: Range("i4").Interior.Color = 0

If Range("h10") = "Grøn" Then
Range("i10").Interior.ColorIndex = 43

Else: Range("i10").Interior.Color = 0


End If
End If
End If
End If
End If
End If
End If
End If
End Sub


Kommentar
Fra : Rosco40


Dato : 11-06-07 13:01

Prøv lige denne. Jeg skal møde på arb. nu kigger her forbi i morgen formiddag.

Kode
Private Sub Worksheet_Change(ByVal Target As Range)

If Range("D1") = "Vælg farve" Then
Range("C3").Interior.ColorIndex = 0
Range("C3").Borders(xlEdgeLeft).LineStyle = 0
Range("C3").Borders(xlEdgeRight).LineStyle = 0
Range("C3").Borders(xlEdgeTop).LineStyle = 0

Range("C4").Interior.ColorIndex = 0
Range("C4").Borders(xlEdgeLeft).LineStyle = 0
Range("C4").Borders(xlEdgeRight).LineStyle = 0

Else: Range("C3").Interior.ColorIndex = 0
Range("C4").Interior.ColorIndex = 0

If Range("D1") = "Gul" Then
Range("C3").Interior.ColorIndex = 36
Range("C3").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeRight).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeTop).LineStyle = xlContinuous

Range("C4").Interior.ColorIndex = 36
Range("C4").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C4").Borders(xlEdgeRight).LineStyle = xlContinuous

Else: Range("C3").Interior.ColorIndex = 0
Range("C4").Interior.ColorIndex = 0

If Range("D1") = "Orange" Then
Range("C3").Interior.ColorIndex = 45
Range("C3").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeRight).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeTop).LineStyle = xlContinuous

Range("C4").Interior.ColorIndex = 45
Range("C4").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C4").Borders(xlEdgeRight).LineStyle = xlContinuous

Else: Range("C3").Interior.ColorIndex = 0
Range("C4").Interior.ColorIndex = 0

If Range("D1") = "Grøn" Then
Range("C3").Interior.ColorIndex = 43
Range("C3").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeRight).LineStyle = xlContinuous
Range("C3").Borders(xlEdgeTop).LineStyle = xlContinuous

Range("C4").Interior.ColorIndex = 43
Range("C4").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C4").Borders(xlEdgeRight).LineStyle = xlContinuous

Else: Range("C3").Interior.ColorIndex = 0
Range("C4").Interior.ColorIndex = 0

End If
End If
End If
End If

End Sub


Kommentar
Fra : Brassovitski


Dato : 11-06-07 13:04

God arbejdslyst.
Jeg er faktisk på arbejde. Det er på arbejde jeg skal bruge regnearket.



Kommentar
Fra : Brassovitski


Dato : 12-06-07 11:46

Hej Rosco40
Nu har jeg det næsten til at virke.
Det sidtse problem er at ark 2 ikke kan ændre layout i henhold til valg i ark 1.
Eksempel:

I ark 1 har jeg en celle der skifter farve i henhold til et valg på en liste.
Valg i ark1!D1 "Gul", skifter bundfarve i celle C3 til Gul.
Celle ark2!D1 indeholder en formel der henter indholdet fra ark!1D1
Indholdet i ark2!D1 skal så styre diverse farver osv.

Jeg har prøvet i ark 2 at sætte styrereferencen til: If Range("ark!D1") = "Vælg farve" Then osv.

Men her melder VBA om referencefejl.

Måske er det metoden Woksheet_change der skal hedde noget andet, f.eks. onchange(ark2!d1) for at ark 2 opdateres korrekt. Jeg ved overhovedet ikke om der er noget der hedder sådan.

Problemet er jo nok at opdateringen af celle D1 i ark 2 ikke opfattes som et worksheet-change, da man jo ikke taster direkte i arket, og arket ikke er det aktive ark.

Hvis du kan løse denne sidste er du er kuttermand.


Kommentar
Fra : Rosco40


Dato : 12-06-07 12:48

Det skulle nok være til at løse,
Jeg skal kigge på det.


Kommentar
Fra : Rosco40


Dato : 12-06-07 14:03

I ark2 skal hovedet i koden være

Private Sub Worksheet_Calculate()

i stedet for

Private Sub Worksheet_Change(ByVal Target As Range)

Kommentar
Fra : Brassovitski


Dato : 13-06-07 08:08

Kampen fortsætter.
Jeg har nu prøvet at ændre hovedet i ark 2 til Private Sub Worksheet_Change(ByVal Target As Range. Dette medførere en boks med beskeden "Compile error: Procedure declaration does not match description of event or procedure having the same name.) Når jeg trykker på hjælp kommer følgende hjælpetekst frem:

Citat
Procedure declaration does not match description of event or procedure having same name


Your class module has a procedure name that conflicts with the name of an event. This error has the following cause and solution:

A procedure has the same name as an event, but does not have the same signature (that is, the number and types of the parameters). This can occur if you do something such as add a new parameter to an event procedure. For example, if you modify the definition of a form's Form_Load event procedure as follows, this error will occur:
Sub Form_Load (MyParam As Integer)
. . .
End Sub

If the procedure isn't the event procedure corresponding to the event, change its name. If the procedure corresponds to the event, make the parameter list agree with that required by the event (if any).

For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).
was ist lose??

Kommentar
Fra : Brassovitski


Dato : 13-06-07 08:20

was ist lose?? Jeg er en fjumregøj.
Jeg indsatte: Private Sub Worksheet_Calculate(ByVal Target As Range), men det var jo ikke det du skrev. Du skrev: Private Sub Worksheet_Calculate(). Nu har jeg fjernet indholdet i paranteserne, så nu virker det, bortset fra den detalje at der ikke kommer en bundstreg i den sidste celle.

Kode
Range("a11").Interior.ColorIndex = 36
Range("a11").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("a11").Borders(xlEdgeRight).LineStyle = xlContinuous
Range("a11").Borders(xlEdgeBottom).LineStyle = xlcontinuos


Den nederste kodelinje burde vel få rammekanten i bunden af celle a11 til at blive sort, men det gør den ikke, jeg eksperimenterer lige lidt videre. Det ser ikke ud til at linjen bliver combileret, så ville lille 'c' i xlcontinuos vel bliver lavet til et stort 'C'?


Kommentar
Fra : Brassovitski


Dato : 13-06-07 09:29

Har fundet fejlen! xlcontinuos i sidste linje, der mangler et 'u'.
Det er godt nok hårdt at kode alle de linjer, også selv om jeg kan bruge kopi/indsæt.


Kommentar
Fra : Rosco40


Dato : 13-06-07 09:45

Hej Brassovitski:
Så er jeg stået op, arb fra 15 - 24 så skal der jo lidt søvn til

Ja jeg var nok klar over at det ville blive en lang kode, men så kommer det sjove
når det virker og er nemt.

ser det ud til at spille?

Kommentar
Fra : Brassovitski


Dato : 13-06-07 10:56

Haløjsa
Dejligt du er der. Jeg mangler stadig hjælp, hvis du er så venlig.
Kan det passe at der er en grænse for hvor lang en VBA-kode kan være?

Jeg prøver lige at skitsere opgaven:
Projektet består af 4 ark.
Ark1 hvor data indtastes i grupper (hver gruppe består af følgende celler: Vælg farve, Adresse, Løbenr, Navn, Kommunenr)
Der er 9 grupper til 14 mm bogrygge (Ingen farve, Gul og Orange, er klaret med betinget format)
Der er 7 grupper til 22 mm bogrygge (Ingen farve, Gul, Orange og Grøn, her skal bruges kode)
Der er 3 grupper til 50 mm bogrygge(Ingen farve, Gul, Orange og Grøn, her skal bruges kode).

På ark2, ark3 og ark4 dannes så bogrykke i henhold til valgte/indtastede værdier/data i ark1.

Jeg er nået dertil hvor 14 mm virker (betinget formatering), og kæmper nu med 22 mm (kode).
Når der vælges en farve i grupperne til 22 mm i ark 1 vises farven i cellen til højre for den hvor farven vælges (virker også, er kodet)
Teksten i den celle hvor der vælges farve overføres til en celle i ark2, ark3 og ark4, disse celler bruges som ref. til koden hvordan ryggene oprettes/farves.
Når jeg har kodet den første 22mm bigryg, virker alt perfekt.
Når jeg så kopierer/indsætter koden, og retter alle referencer så de passer til ryg 2, opdateres ryg 2 ikke, og lige pludselig virker valg af farve heller ikke på ark1 i grupperne til 22 mm rygge.

Derfor min mistanke om at jeg er røget imod loftet af max. kodelinjer, så der simpelt hen går ged i den.

Har du en midlertidig E-mailadresse så kan jeg evt. sende arket til dig. det gør det nok lidt nemmere at gennemskue. Send evt. et privat indlæg til mig, så du ikke behøver at 'offentliggøre' din E-mail for alle her på kandu.


Kommentar
Fra : Rosco40


Dato : 13-06-07 11:33

Jeg er ikke sikker men mener at have set et sted at max antal linier er 600.

Kommentar
Fra : Rosco40


Dato : 13-06-07 11:34

har lagt min mailadr. i et privat indlæg.

Kommentar
Fra : Brassovitski


Dato : 13-06-07 12:34

Hej
Arket er sendt til dig.


Kommentar
Fra : Rosco40


Dato : 13-06-07 13:39

Der findes et ganske udemærket freeware værktøj der hedder MZ-Tools, der fungerer som et Add-in til VBA editoren:

http://www.mztools.com/v3/mztools3.htm

Den kan blandt mange andre nyttige ting, automatisk indsætte linienumre i din VBA kode.

så kan du se hvor mange linier du har i koden,
også en hjælp ved fejlfinding.

Kommentar
Fra : Rosco40


Dato : 13-06-07 18:06

Jeg skriver lige fra arb,

Jeg har ikke set dit regneark endnu, så jeg ved ikke hvor mange celler der skal farves ad gangen.

men Range kan jo godt være flere celler.

f.eks.

If Range("D1") = "Gul" Then
Range("C3:C5").Interior.ColorIndex = 36
Range("C3:C5").Borders(xlEdgeLeft).LineStyle = xlContinuous
Range("C3:C5").Borders(xlEdgeRight).LineStyle = xlContinuous
Range("C3:C5").Borders(xlEdgeTop).LineStyle = xlContinuous
Range("C3:C5").Borders(xlEdgeBottom).LineStyle = xlContinuous





Kommentar
Fra : Rosco40


Dato : 14-06-07 01:29

Min kommentar : 13-06-07 18:06
var du bekendt heldigvis bekendt med, ellers var det nok blevet for mange kodelinier.

Arket er sendt retur håber det virker tilfredsstillende.

Kommentar
Fra : Rosco40


Dato : 14-06-07 10:42

Hej Brassovitski:

For at undgå at skulle ændre i dataområde for Kommunenavn kan du gøre dette.

Tast Ctrl + F3 Vælg Kommunenavn på listen.

Erstat det der står f.eks =Opslags-Tabeller!$A$3:$A$6
Med denne.

=FORSKYDNING(Opslagstabeller!$A$3;0;0;TÆLV(Opslagstabeller!$A$3:$A$32000);1)

Så udvides dataområdet Kommunenavn automatisk efterhånden som du tilføjer mere til listen.

Bemærk:: Der må ikke være bindestreg i arknavn .. Opslags-Tabeller skal ændres til Opslagstabeller

Kommentar
Fra : Brassovitski


Dato : 14-06-07 11:19

Hej Rosco40
Jeg har returneret arket til dig. Det du sendte virkede fint, bortset fra at bogryg 50mm ikke kunne blive grøn.
Jeg kunne iøvrigt ikke finde frem til koden for 50mm rygge?
Vedrørende kommunetabellen, så skal jeg blot have den opdateret en gang med de nye numre, så skulle det vist dække et godt stykke tid frem i tiden, men tag for tippet alligevel.


Kommentar
Fra : Rosco40


Dato : 14-06-07 12:01

De kan godt blive grønne her.

Kigger på det

Accepteret svar
Fra : Rosco40

Modtaget 500 point
Dato : 15-06-07 10:12

Jeg har stadig ikke modtaget den mail du skrev du sendte.

Har du til gengæld modtaget den jeg sendte i går.

Godkendelse af svar
Fra : Brassovitski


Dato : 17-06-07 20:47

Tak for svaret Rosco40.
Jeg har lige testet hele arket igennem, og det virker perfekt. Tusind milliarder tak for din experthjælp. Jeg kan se at du har lagt en linie ind i koden med 'on error', jeg ved ikke om det er det der har gjort forskellen, men det virker i hvert fald perfekt nu. Jeg har selv udvidet 'Nulstil ark' macroen til at omfatte alle felter på indtastningsarket.
Du skulle vel ikke have et link til en oversigt over alle VBA Excel/Word koder, evt. henvisning til en bog om emnet?



Kommentar
Fra : Rosco40


Dato : 17-06-07 21:26

Glæder mig at det virker.

Jeg har brugt mit lokale biblioteket en del, de har faktisk en del bøger om IT, også nyere udg.
Men mest har jeg brugt eksperten.dk der kan man næsten finde alt,
søgefunktionen er rigtig god og alle svar er tilgængelige.

God fonøjelse

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177425
Tips : 31962
Nyheder : 719565
Indlæg : 6407909
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste