Avatar billede ladelund Juniormester
13. marts 2014 - 12:42 Der er 9 kommentarer og
1 løsning

Finde lopslag ved hjælp af markro

Hej Eksperter

Jeg har et stort regneark med mange lopslag der henter værdier i flere andre steder.. Det gør at den er lang tid om at beregne og derfor ikke særlig brugervenlig.
Jeg laver derfor en udgave uden lopslag som brugerne kigger i.
Lige nu sidder jeg og laver en kopier og indsæt værdier på alle lopslag i regnearket.

Kan den opgave ikke løses med en makro. Altså kan den ikke finde de celler der er et lopslg i og lave en kopier, indsæt værdier??

Jeg bruger Excel 2010.

Håber i kan hjælpe
Avatar billede supertekst Ekspert
13. marts 2014 - 14:16 #1
Hej

Skulle nok være muligt via VBA.

Hvis det er en fil der kan sendes er du velkommen til dette.
@-adresse under min profil.
Avatar billede ladelund Juniormester
13. marts 2014 - 14:46 #2
Hej supertekst

Den fylder 23MB, indeholder 4943 rækker og 143 kolonner hvoraf de 87 kolonner indeholder lopslag. Dvs. 430.041 celler med lopslag. Desuden indeholder den oplysninger jeg ikke må offentliggøre.

Så desværre kan jeg ikke sende den til dig.
Avatar billede supertekst Ekspert
13. marts 2014 - 15:09 #3
Hej Ladelund

Det er ok.

Tager det lang tid at åbne filen?

Har brugerne behov for at have adgang til den totale mængde på en gang? Alternativet kunne være en selektiv søgning. Nu ved jeg jo ikke hvilke form for data der er tale om.

De 87 kolonner du nævner, kan de defineres som et samlet område?

Koden til at hive værdien ud af en formel er ret enkel:

            If Cells(ræk, kol).HasFormula = True Then
                værdi = Cells(ræk, kol)
                Cells(ræk, kol) = værdi
Avatar billede ladelund Juniormester
13. marts 2014 - 15:23 #4
Hej

Det tager egentlig ikke lang tid at åbne den, det er den tid den bruger på at beregne der er lang. det er derfor jeg fjerner lopslag inden jeg ligger den på fælles drevet.
De har brug for at kunne se det hele på engang men der er filtre på kolonnerne.
De 87 kolonner er ikke et samlet område, de er spredte.

Den kode du viser henter den ikke værdien uanset hvilken formel der er i cellen? Der er nogle beregninger i en del af cellerne der skal blive så den kan bruges til simulering af prisforslag.
Avatar billede supertekst Ekspert
13. marts 2014 - 15:35 #5
Hej

Jo - koden tester ikke på type af formel - men det er ikke noget problem.

Vedr. Lopslag - så skal de relevante celler defineres - så kan det lade sig gøre.
Avatar billede ladelund Juniormester
13. marts 2014 - 15:50 #6
Hej

Ja, på den måde at det f.eks. er kolonne B række 9 til 4934 og kolonne H række 9 til 4934 osv.

Rækkerne er de samme hele vejen igennem alle 87 kolonner.
Avatar billede supertekst Ekspert
13. marts 2014 - 16:00 #7
Vender tilbage senere..
Avatar billede supertekst Ekspert
13. marts 2014 - 18:14 #8
Sub findLopslag()
Const fraRæk = "9"
Const tilRæk = "4934"
Const områdeK = "B,H"                              '<<------ justeres
Dim tabel As Variant, cc, x As Integer
    tabel = Split(områdeK, ",")
   
    For x = 0 To UBound(tabel)
        For Each cc In ActiveSheet.Range(tabel(x) & fraRæk & ":" & tabel(x) & tilRæk).Cells
            If cc.HasFormula = True Then
                If InStr(cc.Formula, "=VLOOKUP") > 0 Then
                    værdi = cc.Value
                    cc.Value = værdi
                End If
            End If
        Next cc
    Next x
       
End Sub
Avatar billede ladelund Juniormester
14. marts 2014 - 09:22 #9
Hej supertekst

Det var lige det der skulle til.
Super, Tak for hjælpen

Læg et svar så du kan få point.

ladelund
Avatar billede supertekst Ekspert
14. marts 2014 - 10:01 #10
Fint 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