Avatar billede Mortend6 Nybegynder
22. februar 2011 - 10:46 Der er 7 kommentarer og
1 løsning

Makro: Marker område ud fra værdi i celle

Hej folkens.

Jeg har forsøgt at finde frem til en kode, som gør følgende:

Ud fra et område i et dataark jeg har markeret f.eks. (a1:m20000)
Her vil jeg have kode til at markere det område hvori der i kolonne Q står "februar 2011".
Dvs. hvis der i q10 og q20 står "februar 2011", så skal den markere de områder a10:m10 og a20:m20 og så fremdeles.

Altså en kode, som ud fra en specifik reference i en celle skal markere (select) et område udfor..

Kan det lade sig gøre?

Jeg har været ude i noget lignende denne, som jeg tænker man kan pille lidt ved:
Selection.SpecialCells(xlCellTypeBlanks).Select
Med her kommer jeg desværre til kort.

På forhånd tak!
Avatar billede supertekst Ekspert
22. februar 2011 - 10:59 #1
Hvordan vælges den ønskede måned?
Avatar billede Mortend6 Nybegynder
22. februar 2011 - 11:10 #2
optimalt set skal den referere til en celle hvori jeg løbende opdaterer hvilken måned, der er relevant, eller også kan den sagtens stå inde i selve koden. (det gør ikke så meget)

I mit ark er den en masse data, hvor kolonne Q inddeler dem efter måned, og så er det min plan at koden skal markere de rækker hvor der i kolonne q står "februar 2011", således at jeg efterfølgende kan sortere den markerede data efter et ønsket kriterium (men den sidste del kan jeg godt finde ud af at tilføje).

Håber jeg får det formuleret klart nok?
Avatar billede supertekst Ekspert
22. februar 2011 - 11:38 #3
ok - er på sporet - vender tilbage..
Avatar billede supertekst Ekspert
22. februar 2011 - 11:50 #4
Koden anbringes under det relevante ark:
(Hvis du vil have en kopi af min model - så send en mail - så returnerer jeg denne. @-adresse under min profil)

Dim markeretOmråde As String, fra As String, til As String, wTab As Variant
Dim fraRæk As Long, tilRæk As Long, fraKol As String, tilKol As String

Dim måned As String
Public Sub markerOmråde()
    måned = "februar 2011"
   
    findStartOgSlutRække
    søgMåned
End Sub
Private Sub findStartOgSlutRække()
    markeretOmråde = Selection.Address
   
    If InStr(markeretOmråde, ":") > 0 Then
        wTab = Split(markeretOmråde, ":")
        fra = wTab(0)
        til = wTab(1)
       
        wTab = Split(fra, "$")
        fraKol = wTab(1)
        fraRæk = wTab(2)
       
        wTab = Split(til, "$")
        tilKol = wTab(1)
        tilRæk = wTab(2)
    Else
        MsgBox "Ingen markering!"
    End If
End Sub
Private Sub søgMåned()
Dim ræk, område As String, antal As Long
    område = ""
    antal = 0
   
    For ræk = fraRæk To tilRæk
        If måned = Range("Q" & ræk) Then
            If antal >= 1 Then
                område = område & ","
            End If
           
            område = område & fraKol & CStr(ræk) & ":" & tilKol & CStr(ræk)
            antal = antal + 1
        End If
    Next ræk
    Range(område).Select
End Sub
Avatar billede Mortend6 Nybegynder
22. februar 2011 - 12:00 #5
perfekt, jeg har lige sendt dig en mail.
Avatar billede supertekst Ekspert
22. februar 2011 - 13:07 #6
Du får et svar..
Avatar billede Mortend6 Nybegynder
22. februar 2011 - 14:20 #7
Tusind tak for hjælpen... Desværre virkede den ikke til mit formål alligevel, da makroen går ind og markere hver enkelt række, fremfor et område, og hvis man markerer flere rækker, så kan excel ikke sortere dem..

Desuden kunne jeg kun få den til at virke, hvis jeg ikke markerede færre end 35 rækker.

Men du skal selvfølgelig have point for din indsats!
Avatar billede supertekst Ekspert
22. februar 2011 - 14:30 #8
Ok - lidt ærgeligt at det ikke lykkedes.. og selv tak
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



IT-JOB