Avatar billede barentsen Novice
13. februar 2009 - 14:01 Der er 6 kommentarer og
1 løsning

Makro til Lopslag

Hej Eksperter

Jeg har brug for en makro, der udfra et tal i Arket "Makro" celle "E4" slå op i en tabelmatrix (Makro!G2:H41) - formlen ser sådan ud: LOPSLAG(Makro!E4;Makro!G2:H41;2)

Resultat som står i 2. kolonne er stiangivelsen til nogle andre projektmapper som gerne skal åbnes ved hjælp af makroen.

Jeg har pt. blot en formel der gør det samme, men kunne godt tænke mig en makroknap der gør det.

=HYPERLINK(LOPSLAG(Makro!E4;Makro!G2:H41;2);"Link til nyt ark")
Avatar billede jkrons Professor
15. februar 2009 - 13:45 #1
Prøv at lægge denne kode på din knap

Private Sub CommandButton1_Click()
    For Each c In Sheets("Makro").Range("g2:g3").Cells
        If c.Value = Sheets("Makro").Range("e4").Value Then
            Workbooks.Open c.Offset(0, 1)
        End If
    Next c
End Sub

Fordusætter at nummeret i E4 kun findes én gang i din tabelmatrix. Findes det flere gange åbnes alle de tilhørende filer.
Avatar billede barentsen Novice
16. februar 2009 - 09:39 #2
Tak for svaret - det virker næsten...

Det ønskede ark åbnes som det skal, men der kommer en Run-timer error '9': Subscript out of range hver gang.
Hvis jeg vælger Debug, så kan jeg se at det er linien:
If c.Value = Sheets("Makro").Range("e4").Value Then
der er farvet gul.

Jeg har gjort følgende:
Kopieret din kode ind i et nyt modul
Slettet Private i starten af koden
Ændret linie 2, så der står ...("g2:g41").Cells
Tildelt makroen til min knap

Ændret til g2:g41 pga. tabellen der slås op i er større end de de felter som du skrev.
Jeg har efterfølgende konstateret, at den ikke fejler, hvis det er projektmappen tilhørende det sidste opslag der åbnes. Dvs. projekt = g41. - Hvis jeg ændrer til g2:g20 så virker g20 uden fejl osv.
Kan du gennemskue, hvorfor/hvad jeg skal gøre for at denne fejl ikke kommer.

Og ja, nummeret i E4 findes kun én gang i tabelmatrixen.
Avatar billede jkrons Professor
16. februar 2009 - 14:24 #3
Prøv at rette makroen til:

    For Each c In Sheets("Makro").Range("g2:g43").Cells
        If c.Value = Sheets("Makro").Range("e4").Value Then
            Workbooks.Open c.Offset(0, 1)
            Exit Sub
        End If
    Next c
Avatar billede barentsen Novice
16. februar 2009 - 15:21 #4
Perfekt - så virker det som det skal...

Send et svar - så får du dine point, uanset om du kan/vil svare på nedenstående eller ej.

Hvis du har et bud på årsagen til et følgeproblem, så modtager jeg gerne dette:

Når jeg bruger makroen, så åbnes pdf dokumenter ikke i adobe, men i Excel, og dermed er det ulæsbart.
Hvis jeg bare bruger "min egen" funktion "Hyperlink(...)" så åbnes et pdf link i Adobe.
Er der noget i makroen der kan ændres så det ikke er et problem?
Avatar billede jkrons Professor
16. februar 2009 - 16:51 #5
Hvis det er et Adobe dokument, er ovenstående ikke praktisk, netop fordi den åbner dokumentet i Excel og ikek i den rigtige applikation.

Så er dette bedre:

For Each c In Sheets("Makro").Range("g2:g43").Cells
        If c.Value = Sheets("Makro").Range("e4").Value Then
            ActiveWorkbook.FollowHyperlink Address:=c.Offset(0, 1).Value, _
            NewWindow:=True
            Exit Sub
        End If
    Next c

Da du i dit første indlæg skre,v at du havde projektmapper i kolonnen, gik jeg ud fra, at det var Excel.
Avatar billede jkrons Professor
16. februar 2009 - 16:52 #6
Og det skulle have været et svar.
Avatar billede jkrons Professor
16. februar 2009 - 16:55 #7
Ovenstående giver til gengæld en advarsel, hvis det ikke er en pdf-fil.
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