Avatar billede frederikpag Nybegynder
07. maj 2009 - 14:19 Der er 8 kommentarer og
1 løsning

Funktion der kan gennemløbe en liste i Excel

Kære eksperter,

Jeg søger en funktion eller Makro i Excel som kan gennemløbe en kolonne med forskellige tekst strenge i hver celle og sammenligne hver enkelt celle med en liste af ord. Hver gang den finder et match skal den skrive en værdi fx. '*' i den samme række blot i kolonnen til venstre eller højre for. Findes der en sådan funktion eller skal der programmeres en makro?

Ser frem til jeres besvarelse

\Frederik
Avatar billede supertekst Ekspert
07. maj 2009 - 14:24 #1
En Lopslags-funktion kunne måske anvendes - men skulle så kopieres til samtlige rækker. Hvormange er der?

En makro ville nok være mere hensigtsmæssigt.
Avatar billede frederikpag Nybegynder
07. maj 2009 - 14:27 #2
Der er umiddelbart omkring 9.000 rækker...
Avatar billede supertekst Ekspert
07. maj 2009 - 14:39 #3
Så er det en makro....

Hvor er Ordlisten placeret?
Avatar billede frederikpag Nybegynder
07. maj 2009 - 14:41 #4
I samme ark, men i en anden fane
Avatar billede supertekst Ekspert
07. maj 2009 - 14:50 #5
Forsøger (måske) om jeg kan konstruere en model....
Avatar billede frederikpag Nybegynder
07. maj 2009 - 15:03 #6
Fantastisk!
Avatar billede supertekst Ekspert
07. maj 2009 - 15:07 #7
Lad os nu se....
Avatar billede supertekst Ekspert
07. maj 2009 - 15:42 #8
Rem Kode indsættes i VBA-vinduet i arket, der skal gennemløbes (Højreklik - vis programkode)
Rem Koden iværksættes fra arket - Alt+F8 afspil den viste makro

Rem DEFINITIONER - der kan tilpasses
Rem ================================
Const arkTilTest = "Ark1"
Const kolonneTilTest = "A"

Const arkOrdListe = "Ark2"
Const kolonneOrdListe = "D"

Const tegnVedMatch = "*"
Const kolonneVedMatch = "B"
Rem ================================

Dim kildeArk, listeArk
Sub startGennemløb()
    Application.ScreenUpdating = False

    Set kildeArk = ActiveWorkbook.Sheets(arkTilTest)
    Set listeArk = ActiveWorkbook.Sheets(arkOrdListe)
   
Rem Gennemløber kolonnen indtil blank mødes
    With kildeArk
        For række = 1 To 65000
            tekst = .Range(kolonneTilTest & CStr(række))
            If tekst <> "" Then
Rem Undersøg om ord findes i listen
                If findesOrd(tekst) = True Then
                    .Range(kolonneVedMatch & CStr(række)).Value = tegnVedMatch
                End If
            Else
                MsgBox ("Gennemløb afsluttet")
                Exit Sub
            End If
        Next række
    End With
   
    Application.ScreenUpdating = True
   
    kildeArk.Activate
End Sub
Private Function findesOrd(ord)
    With listeArk.Range(kolonneOrdListe & ":" & kolonneOrdListe)
        Set c = .Find(ord, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findesOrd = True
        Else
            findesOrd = False
        End If
    End With
End Function
Avatar billede supertekst Ekspert
07. maj 2009 - 15:43 #9
Evt.: - send en mail (adresse under profil) - så fremsendes filen m/model
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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