VBA code toepassen zonder sheet opnieuw in te voeren

Status
Niet open voor verdere reacties.

Antoonh

Gebruiker
Lid geworden
14 sep 2010
Berichten
20
Ik heb een probleempje dat volgens mij niet moeilijk op te lossen is... Ik kom er alleen niet achter!

Ik heb een bestand met (veel) getallen over de zeediepte, deze diepte wil ik visualizeren met behulp van een BVA code die aan elke diepte een kleur verbindt. Dat gaat allemaal goed, maar de kleuren worden pas weergegeven nadat ik de getallen opnieuw intyp (niet meteen als ik de code maak). Ook alle getallen kopieren en plakken werkt niet (dan komt er een 'runtype error 13, mismatch' foutmelding).

Bijgevoegd een voorbeeld bestand met de getallen en code.

Ps. ik heb nog twee andere dingetjes die minder belangrijk zijn:
- Ik heb excel 2002, kan ik hier meerdere kleuren toevoegen op de een of andere manier? zodat de kleurstapjes in de dieptekaart kleiner worden?
- Is de code die ik nu heb te vervangen door een code met bv een 'for i = 0 to 100' loop? Dit lukte mij namelijk niet, waardoor ik nu telkens als ik een andere kleur erbij wil alle onderstaande waarden moet veranderen.
 

Bijlagen

definieer je eigen kleurwaarden en gebruik die:

ruwe macro waar ik 10 blauwwaarden definieer en die dan aan de hand van de value in de cell toewijs

Code:
Sub test()

    For i = 46 To 56
        ActiveWorkbook.Colors(i) = RGB(0, 0, (i - 46) * 25)
    Next i
    For Each celletje In Range("b2:z51")
        celletje.Interior.ColorIndex = (celletje.Value / 5) + 46
    Next celletje
    

End Sub


edit:

je kun het ook in je bestaande sub inpassen natuurlijk:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Not Intersect(Target, Range("A2:Z51")) Is Nothing Then
    
    Application.ScreenUpdating = False
    
    For i = 46 To 56
        ActiveWorkbook.Colors(i) = RGB(0, 0, (i - 46) * 25)
    Next i
    For Each celletje In Range("b2:z51")
        celletje.Interior.ColorIndex = (celletje.Value / 5) + 46
    Next celletje
    Application.ScreenUpdating = True

            
    End If

End Sub


eventueel kun je tot 56 eigen waarden toewijzen en zo gebruiken
 
Laatst bewerkt:
Daar heb ik wat aan! Alle vragen in een keer opgelost :)

Ik ben er nog even mee bezig geweest en heb nog wat dingen verandert, het ziet er nu precies uit zoals ik het wilde. Ik kan nu ook de range en de kleurschaal in de sheet zelf aanpassen. Als je nog nieuwsgierig bent naar het eindresultaat dan staat het bestand in de bijlage.

Heel erg bedankt!

Groeten

Antoon
 

Bijlagen

Laatst bewerkt:
Leuk dat je even het resultaat post, ik vind het altijd grappig als mensen tools als excel ombouwen voor dit soort totaal ongerelateerde zaken :D

overigens hoef je het palet maar 1 keer aan te passen. het wordt gesaved in het sheet en in principe kan je code dus iets sneller door het palet slechts 1 keer te wijzigen.

Nadat je een palet hebt ingegeven kan excel bovendien ook het omgekeerde doen. geef een RGB waarde aan een cel en excel zoekt daar zelf de dichtstbijzijnde paletkleur bij. die kleur kun je vervolgens uitlezen met colorindex.
 
Laatst bewerkt:
In de echte file zit nog een heel stuk dat berekent hoe een golf van diep water naar de kust beweegt. In 40000 berekeningen krijgt ie elke keer weer een nieuwe coordinaat die in een grafiek geplot wordt. Door deze grafiek precies over de 'kaart' te zetten kun je dus precies zien waar hij uitkomt (en daaruit eventueel berekenen hoe hoog hij is). Door de kleuren kun je het nu een stuk beter zien! Nogmaals bedankt :)

Misschien dat ik die 'terugrekenmethode' er ook nog een keer in zet, kan misschien handig zijn als je een gekleurde dieptekaart moet omzetten in waarden.

Bedankt voor de hulp :)

Groeten

Antoon
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan