PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBALETARAD - Extern arbetsbok kalkyleras inteLETARAD - Extern arbetsbok kalkyleras inte
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-09-14 22:02
 

Hej,

Har försökt skapa en halvdynamisk LETARAD formel till stängda externa arbetsböker men stöter på problem eftersom formeln inte "kalkyleras" automatiskt utan jag behöver manuellt trycka F2 och Enter för att resultatet ska visas. Resultatet visas även om jag manuellt använder funktionen SÖK/ERSÄTT. Där Sök: = Ersätt: =
 

Formeln (I cell A5) jag har använt är följande:

="="&"LETARAD("&TECKENKOD(34)&$A$1&TECKENKOD(34)&";'C:\Users\Desktop\[Bok1.xlsx]Blad1'!$A$1:$B$1;2;FALSKT)"

Cell A1 = Kundnamn och resultatet från cell B1 = 123

Har gjort ett makro som sedan kopierar och klistrar in värdet i en ny cell (A7) så att följande formel framkommer:

=LETARAD("Kundnamn";'C:\Users\Desktop\[Bok1.xlsx]Blad1'!$A$1:$B$1;2;FALSKT)

Problemet är att det sista steget i makrot med SÖK/ERSÄTT inte fungerar.
 

Sub MakroKopieraErsätt()

    Range("A5").Select

    Selection.Copy

    Range("A7").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Cells.Replace What:="=", Replacement:="=", LookAt:=xlPart, SearchOrder _

        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

End Sub

 
Är det någon som har förslag på hur jag kan få makrot att fungera?
 
Malu
Nytt inlägg
 2019-09-16 12:26
 
Hej Malu
Det ser lite överkompliserat ut det där. Vad är anledningen till att kundnumrena har citationstecken runt sig? Är det inte enklare att städa bort dem i din externa fil, antingen genom att använda sök ersätt, eller med en hjälpkolumn där du använder funktionen byt.ut. Därefter är det bara att skriva en vanlig letaradfunktion. Denna kommer att fungera så länge som båda böckerna är öppna.
Mvh Christian
Nytt inlägg
 2019-09-16 20:28
 

Hej Christian, tack för ditt svar!

Sökningen är på kundnamn, därav citationstecknen. 

En del av problemet är att jag har hundratals olika kunder i separata kundmappar som varje månad får en rapport med olika nyckeltal.

Vill skapa en formel så att jag kan göra en sökning på valfritt nyckeltal/kund/rapport utan att behöva öppna den specifika rapporten :-)

Har läst runt lite och tror att problemet till varför Makrot inte fungerar kan vara att VBA behandlar citationstecknen i min LETARAD-formel som string men vill returnera ett boolean-värde? Tyvärr är jag för novis i hur själva koden ska skrivas och brukar bara använda inspelningsfunktionen..

Malu

Nytt inlägg
 2019-09-23 08:28
 
Hej Malu

Det går att åstakomma en hämtning av data utan att öppna filerna. Detta sker oftast med att skapa en SQL connection. Detta bör du endast göra om dina källfiler är så stora att det tar väldigt lång tid att öppna dem. Annars så rekommenderar jag starkt att istället låta datorn öppna filen i bakgrunden, göra en hantering, därefter stänga boken, på relativt små arbetsböcker så går detta så fort att du knappt märker det.

Vet inte om din letarad formel är den riktiga du har tagit fram, men som jag läser den så heter boken alltid bok1, bladet alltid blad1, och värdet du vill hämta ligger alltid i cell b2? Samtidigt så skriver du att du får flera hundra böcker med olika värden?

Sub GetccName()
Dim targetRng as range: targetrng = activecell
Dim wb as workbook: set wb = workbooks.open("C:\Users\Desktop\Bok1.xlsx")
Dim ws as worksheet: set ws = wb.sheets("Blad1")
Dim mCompanyName as string: mCompanyName = ws.range("A1")
Dim mValue as Long: mValue = ws.range("b1")

targetrng = mCompanyname
targetrng.offset(0, 1) = mValue
wbclose savechanges:=false


End Sub

Koden Öppnar källboken, klistrar in företagsnamn och ditt värde till din aktivacell och cellen till höger om den, därefter stängs källboken. Koden är hårdkodad då det var informationen jag hade, det går kanske att skapa något dynamiskt, men då behöver jag veta mer :). Exempelvis så hämtar koden alltid från bok1 på din desktop, alltid från blad1, och alltid från cellerna a1 och b1.

Mvh
Christian


Nytt inlägg
 2019-09-29 18:08
 

Tack Christian! Ska försöka arbeta vidare med din lösning i veckan och återkommer! :-) 

Den letarad formel som jag har delat här är mycket riktigt inte den som jag tänkt använda i ett senare skede, utan har byggt en struktur i arbetsboken så att
det finns en särskild sida som anger sökvägar för de olika kunderna. 

Är lite svårt att beskriva problematiken kring arbetsboken i text, finns det något sätt att dela en excelfil via forumet? 

/Malu

Nytt inlägg
 2019-10-01 13:32
 
Hej hej

Nej dessvärre går detta inte än, men jag kan ta upp det och se om det är en funktion vi ska lägga till :).

Har du möjligtvis kundnamn i en kolumn, och sökvägar + filnamn till respektive kund i en kolumn jämte, så är det inte jättesvårt att loopa genom kunderna tills du får träff och därefter plocka filens sökväg. Förslagsvis har du detta i en tabell, då blir koden dessutom dynamisk :).

Mvh
Christian
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBALETARAD - Extern arbetsbok kalkyleras inteLETARAD - Extern arbetsbok kalkyleras inte

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter