22. februar 2011 - 10:46Der 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.
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).
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(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
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!
Ok - lidt ærgeligt at det ikke lykkedes.. og selv tak
Synes godt om
Ny brugerNybegynder
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.