To makroer, der finder adresser på celler

Her er to makroer, der begge finder adresser på celler, der indeholder en bestemt tekst.

Find adresse på celle(r) med bestemt tekst

Makroen finder adressen på en celle, der indeholder en bestemt tekst. Teksten indtastes via en inputboks. Det er ligegyldigt hov i cellen den tekst, der ledes efter står. Findes den samme tekst i flere celler returneres de efter række, ikke kolonne. Forekommer den søgte tekst fx i både G9 og A12 vises G9 først, derefter A12.

Sub FindAdresse()
    Tekst = UCase(InputBox("Indtast den tekst, der skal søges efter!"))
    For Each c In ActiveSheet.UsedRange.Cells
        If InStr(1, UCase(c.Value), Tekst) > 0 Then
            MsgBox c.Address
        End If
    Next c
End Sub
 

Den næste makro virker lidt anderledes. Den finder den adressen på den nærmeste celle over eller i samme række som markørens plads, men i A-kolonnen, der indeholder en bestemt tekst, som er bestemt allerede i makroen. Står der fx "Overskrift" i A1, A8, A19 og A31 og markøren er placeret i H29 vil makroen returnere A19. Står man i H19 vil der også blive returneret A19, men står man i F18 vil der bliver returnetet A8.

Sub findtabelstart()
    co = ActiveCell.Column
    coa = ActiveCell.Offset(0, -(co - 1)).Column
    i = 0
    Do Until txt = "Overskrift"
        txt = ActiveCell.Offset(0 - i, -(co - 1)).Value
        adr = ActiveCell.Offset(0 - i, -(co - 1)).Address
        i = i + 1
    Loop
MsgBox adr
End Sub