Avatar billede Sonic Mester
13. september 2018 - 21:45 Der er 8 kommentarer og
3 løsninger

Format og værdi i VBA

Hej, Håber der er en kan hjælpe med en vba løsning.

Jeg har et Ark1 (kaldet skærm) hvor jeg gerne vil have 2 værdier til at komme frem ( i celle M20 den ene værdi og L20 den anden værdi),
hvis (Ark3/betingelser) celle C3:C42. skrive sand (der er kun en celle der bliver sand af gangen i C3:C42) så skal den hente værdien i Celle B4 og C4 (Ark2/Data) for at vise tallene i M20 og L20 (Ark1/Skærm).

Ikke sikker på det er forståelig, så uddyber herunder.
------------------------------------------------------------------------------------------------------

Hvis (Ark3/betingelser)C3 er Sand så hent (Ark2/Data)B4 til (Ark1/Skærm)M20 og (Ark2/Data)C4 til (Ark1/Skærm)L20 og disse 2 (M20, L20 bliver med Fed skrift med GRØN baggrund.

Hvis (Ark3/betingelser)C4 er Sand så hent (Ark2/Data)B5 til (Ark1/Skærm)M20 og (Ark2/Data)C5 til (Ark1/Skærm)L20 og disse 2 (M20, L20 bliver med Fed skrift med GRØN baggrund.

Hvis (Ark3/betingelser)C5 er Sand så hent (Ark2/Data)B6 til (Ark1/Skærm)M20 og (Ark2/Data)C6 til (Ark1/Skærm)L20 og disse 2 (M20, L20 bliver med Fed skrift med GRØN baggrund.

Hvis (Ark3/betingelser)C6 er Sand så hent (Ark2/Data)B7 til (Ark1/Skærm)M20 og (Ark2/Data)C7 til (Ark1/Skærm)L20 og disse 2 (M20, L20 bliver med Fed skrift med GRØN baggrund.

Hvis (Ark3/betingelser)C7 er Sand så hent (Ark2/Data)B8 til (Ark1/Skærm)M20 og (Ark2/Data)C8 til (Ark1/Skærm)L20 og disse 2 (M20, L20 bliver med Fed skrift med GRØN baggrund.

Hvis (Ark3/betingelser)C8 er Sand så hent (Ark2/Data)B4 til (Ark1/Skærm)M20 og (Ark2/Data)C4 til (Ark1/Skærm)L20 og disse 2 (M20, L20 bliver med Fed skrift med GRØN baggrund.

Hvis (Ark3/betingelser)C9 er Sand så hent (Ark2/Data)B4 til (Ark1/Skærm)M20 og (Ark2/Data)C4 til (Ark1/Skærm)L20 og disse 2 (M20, L20 bliver med Fed skrift med RØD baggrund.

osv. med 6 Grønne og 1 Rød optil C42 (i Ark3/betingelser)

Håber det er til at forstå ellers må jeg prøve igen.
Håber ikke jeg skal skrive alle de HVIS HVIS i en celle, så håber på
en VBA løsning.
Avatar billede Jan Hansen Ekspert
14. september 2018 - 02:50 #1
Mon ikke denne brugerdefinerede function vil virke?

[div]
Option Explicit
Dim rTjek As Range, rResul As Range, rCell As Range
Dim iCount As Integer
Function MangeHviser(Tjek_Sand_Celler As Range, Resultat_Celler As Range) As Variant
    Application.Volatile
    Set rTjek = Tjek_Sand_Celler
    Set rResul = Resultat_Celler
    iCount = 1
    For Each rCell In rTjek
        If rCell.Value = True Then MangeHviser = rResul(iCount).Value
        iCount = iCount + 1
    Next
End Function

{/div]

Jan
Avatar billede Sonic Mester
14. september 2018 - 12:24 #2
Det er muligt at den brugerdefinerede funk. virker, men ved det jeg faktisk ikke ;)

Har nok lige behov for hjælp til at komme igang, feks med et eksempel og hjælpe
tekst...

skal den ind i et nyt modul (har pt andre moduler til til andre opgaver/macroer) ?
Og vise hvordan den skal hente data fra 2 ark for at blive vist i hoved ark?
Eks:
Hvis (Ark3/betingelser)C3 er Sand så hent (Ark2/Data)B4 til (Ark1/Skærm)M20 og (Ark2/Data)C4 til (Ark1/Skærm)L20 og disse 2 (M20, L20) bliver med Fed skrift med GRØN baggrund. "Kunne evt bruge baggrundsfarven i (Ark3/betingelser)A3,
da jeg har farver (Grøn eller Rød) i A3:A42"
Avatar billede Jan Hansen Ekspert
14. september 2018 - 12:54 #3
den skal ind i et modul
i cellen du vil have resultatet skriver du =MangeHviser(Ark3!C3:C42;Ark2!B4:B43)

Du kan også bruge fx og der kommer en boks hvor du vælger brugerdefinerede og der efter funktionen

Jan
Avatar billede Sonic Mester
14. september 2018 - 13:30 #4
Perfekt! virker som det skal, tusind tak....
"den skal ind i et modul
i cellen du vil have resultatet skriver du =MangeHviser(Ark3!C3:C42;Ark2!B4:B43)"

Er det også muligt at få de fyldfarver jeg har i (Ark3)A3:42 til at følge talene i C3:42?

Der er fordi at der er 6 celler med grøn (A3:A8) og en celle med Rød (A9), derefter 6 Grønne (A10:A14) og en Rød (A15)...osv.

Kan måske lave Fyldfarver i Ark2 B4:B43 så formlen ikke "kun" henter tal men
også Fyldfarve/Font, hvis dette er nemmere.
Avatar billede Jan Hansen Ekspert
14. september 2018 - 14:01 #5
Velbekomme

Det kan man ikke med en formel. Ville selv lave noget betinget formatering!

Det må en anden hjælpe med, jeg har ikke tid nu.

Jan
Avatar billede Sonic Mester
14. september 2018 - 15:10 #6
Hej Jan,

Det er helt fint, jeg løste selv betinget formatering (ikke så svær ;) )

Igen, tusind tak for hjælpen......
Avatar billede Sonic Mester
18. september 2018 - 14:01 #7
Håber der er nogle der læser denne selvom den er løst :)

Er det muligt at finde dataerne under det der kommer frem med formlen:

[div]
Option Explicit
Dim rTjek As Range, rResul As Range, rCell As Range
Dim iCount As Integer
Function MangeHviser(Tjek_Sand_Celler As Range, Resultat_Celler As Range) As Variant
    Application.Volatile
    Set rTjek = Tjek_Sand_Celler
    Set rResul = Resultat_Celler
    iCount = 1
    For Each rCell In rTjek
        If rCell.Value = True Then MangeHviser = rResul(iCount).Value
        iCount = iCount + 1
    Next
End Function

{/div]

Jeg har jo kun et felt afgangen der er SAND og resten er FALSK

Denne virker perfekt til at vise den der SAND
=MangeHviser(Calculations!C3:C42;BlindStruktur!B4:B43)
Men ved ikke om man kan sige +1 så den viser næste linje.

Håber det er forståelig...
Avatar billede Sonic Mester
18. september 2018 - 14:41 #8
Løste den selv :)
Avatar billede Jan Hansen Ekspert
18. september 2018 - 15:28 #9
Ok  Brugte du .offset(1,0) ?

Jan
Avatar billede Sonic Mester
18. september 2018 - 15:42 #10
Hej Jan,

Nej jeg lavede et nyt modul og ændrede iCount = 1 til 2

Hvis du har tid og lyst så mangler jeg at løse 1 problem.

Jeg har en timer (excelstopwatch)med start/stop/reset som fungere fint,
men jeg kunne godt tænke mig at der under det ur er et andet.

Det ur skal tælle ned fra hver time (der er pause hver 60 min.) i ca. 8 timer.
eks. Næste pause er om xx:xx (mm:ss)
(som helst skal starte når jeg starter hoved uret)
Avatar billede Jan Hansen Ekspert
18. september 2018 - 15:59 #11
Den er jeg bange for vil ligge dit ark ned, da det som jeg ser det vil kræve en macro der kører hele tiden, ved ikke om man kan bruge computerens ur som trikker ( til at starte en macro)!!

Måske denne kan inspirere www.youtube.com/watch?v=sbJeGG_Xv8M
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

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