Någon som pratar VBA? [LÖST]

Här diskuteras programmering och utveckling
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Någon som pratar VBA? [LÖST]

Inlägg av djkmmo »

Hej!

Jag har ett stort excel-ark med en enda User Defined Funktion som jag hemskt gärna skulle vilja kunna använda i Gnumeric eller OO.org (helst Gnumeric). UDF:en borde kanske vara löjligt enkelt att översätta den till Python eller OO.org Basic, men problemet är att jag inte pratar VBA, så jag förstår inte hur jag skall översätta den. I vilket fall så här ser den ut:

Kod: Markera allt

Function dRangeAddress(dRange As String) As String
    dRangeAddress = Range(dRange).Address
End Function
Finns det någon som både kan VBA och/eller Python/OO.org Basic som kan ge mig ett hantag på vägen?
Senast redigerad av 1 djkmmo, redigerad totalt 27 gånger.
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

Vad gör funktionen när du använder den?
Har sysslat med VB...
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

Rune.K skrev:Vad gör funktionen när du använder den?
Har sysslat med VB...
Den översätter en referens till ett dynamiskt namngivet område till en absolut referens. Anledningen till förfarandet är att Excel inte kan hantera dynamiskt namngivna områden i validerade listrutor, så för att kunna använda validerade listrutor så måste området vara absolut definierat. Det är den "överättningen" som funktionen fixar.

Om man då har ett dynamiskt namngivet område som heter "frukter" som skall växa i området $A$1:$A$15, men just nu bara består av $A$1:$A$8 så kan man i en annan cell, t.ex. $B$2 skriva "dRangeAdress(frukter)" och om man sedan sätter INDIREKT($B$2) som område i den validerade listrutan så visar den rätt urvalsområde.
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

djkmmo skrev:
Rune.K skrev:Vad gör funktionen när du använder den?
Har sysslat med VB...
Den översätter en referens till ett dynamiskt namngivet område till en absolut referens. Anledningen till förfarandet är att Excel inte kan hantera dynamiskt namngivna områden i validerade listrutor, så för att kunna använda validerade listrutor så måste området vara absolut definierat. Det är den "överättningen" som funktionen fixar.

Om man då har ett dynamiskt namngivet område som heter "frukter" som skall växa i området $A$1:$A$15, men just nu bara består av $A$1:$A$8 så kan man i en annan cell, t.ex. $B$2 skriva "dRangeAdress(frukter)" och om man sedan sätter INDIREKT($B$2) som område i den validerade listrutan så visar den rätt urvalsområde.
Du behöver en som kan Python/OO.org Basic...
Det har jag ingen om.
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

Rune.K skrev:
djkmmo skrev:
Rune.K skrev:Vad gör funktionen när du använder den?
Har sysslat med VB...
Den översätter en referens till ett dynamiskt namngivet område till en absolut referens. Anledningen till förfarandet är att Excel inte kan hantera dynamiskt namngivna områden i validerade listrutor, så för att kunna använda validerade listrutor så måste området vara absolut definierat. Det är den "överättningen" som funktionen fixar.

Om man då har ett dynamiskt namngivet område som heter "frukter" som skall växa i området $A$1:$A$15, men just nu bara består av $A$1:$A$8 så kan man i en annan cell, t.ex. $B$2 skriva "dRangeAdress(frukter)" och om man sedan sätter INDIREKT($B$2) som område i den validerade listrutan så visar den rätt urvalsområde.
Du behöver en som kan Python/OO.org Basic...
Det har jag ingen om.
OO.org Basic verkar krångligt och jag vet inte riktigt om jag vill lära mig det. Python kan man ju ha mer nytta av allmänt, så det är väl att föredra. Jag hade egentligen halvt om halvt gett upp om att få funktionen att fungera, men så upptäckte jag att det finns en Python-insticksmodul för Gnumeric och det borde gå att lösa på det viset. Jag får helt enkelt vänta på nästa guru ;).
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

Men visst är det så att det går att importera macro från excel till openoffice automatiskt.
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

Rune.K skrev:Men visst är det så att det går att importera macro från excel till openoffice automatiskt.
Inte det här, tyvärr. Det är långt ifrån alla som går att bara importera rakt upp och ner :'(.
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

Du skriver
Den översätter en referens till ett dynamiskt namngivet område till en absolut referens. Anledningen till förfarandet är att Excel inte kan hantera dynamiskt namngivna områden i validerade listrutor, så för att kunna använda validerade listrutor så måste området vara absolut definierat. Det är den "överättningen" som funktionen fixar.
Jag antar du redan provat men iallfall.

Du kanske inte behöver den funktionen i Openoffice.
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

Rune.K skrev:Du skriver
Den översätter en referens till ett dynamiskt namngivet område till en absolut referens. Anledningen till förfarandet är att Excel inte kan hantera dynamiskt namngivna områden i validerade listrutor, så för att kunna använda validerade listrutor så måste området vara absolut definierat. Det är den "överättningen" som funktionen fixar.
Jag antar du redan provat men iallfall.

Du kanske inte behöver den funktionen i Openoffice.
Nope, det har jag testat och OO.org klarar inte det. Det är när man skall använda INDIREKT() i valideringen som det faller, om området som indirekt pekas ut av namnet är ett dynamiskt område. Dessutom går det i praktiken inte att använda arbetsboken i OO.org. Den är för stor, så OO.org blir våldsamt långsamt...
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

Installerade openoffice för att se hur oo-basic ser ut.
Vid en väldigt snabb titt, så ser oo-basic precis ut som VB (Visual Basic).
Har aldrig använt VBA mer än bara tittat på det lite.
Men jag förstod varför det var så fanns så många virus för word och excel. :)

Om du har möjlighet, så strippa en kopia av ditt excel-ark så mycket som möjligt.
Och PM-a till mej, så ska jag titta på det.
Lovar inget resultat...
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

Rune.K skrev:Installerade openoffice för att se hur oo-basic ser ut.
Vid en väldigt snabb titt, så ser oo-basic precis ut som VB (Visual Basic).
Har aldrig använt VBA mer än bara tittat på det lite.
Men jag förstod varför det var så fanns så många virus för word och excel. :)

Om du har möjlighet, så strippa en kopia av ditt excel-ark så mycket som möjligt.
Och PM-a till mej, så ska jag titta på det.
Lovar inget resultat...
Men som sagt, OO.org kommer inte att fungera. Det är helt enkelt för långsamt. Dessutom verkar det vara underlägset Gnumeric på en massa andra områden också, så jag vill helst inte använda det alls. Jag är inte så imponerad av OO.org :).

Men jag skickar exempelböcker som beskriver precis vad jag vill kunna göra i OO.org och Gnumeric-format.
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

Men jag skickar exempelböcker som beskriver precis vad jag vill kunna göra i OO.org och Gnumeric-format.

tackar på förhand...
Eftersom jag länge pratat om (i min bekanskapskrets) att Linux och open source program kan vara ett bra alternativ till Microsofts produkter, så är det på tiden att jag själv börjar använda/lära mej t.ex Openoffice Calc.

Har haft lite med support att göra i windowsmiljö........
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

Rune.K skrev:
Men jag skickar exempelböcker som beskriver precis vad jag vill kunna göra i OO.org och Gnumeric-format.

tackar på förhand...
Eftersom jag länge pratat om (i min bekanskapskrets) att Linux och open source program kan vara ett bra alternativ till Microsofts produkter, så är det på tiden att jag själv börjar använda/lära mej t.ex Openoffice Calc.

Har haft lite med support att göra i windowsmiljö........
Vi kan nog lika gärna glömma det här... OO.org kommer som sagt inte att gå att använda för min del, för att OO.org blir för långsamt. Gnumeric för sin del kan inte ens hålla de absolut definierade namngivna områdena, utan omdefinierar dem godtyckligt hela tiden om man använder sig av svenska tecken i namnen. Om man sätter ett namn t.ex., "ÖvrigaGrejjer" och definierad det som området Blad2!$A$1:$A$15 så definierar Gnumeric strax om det till t.ex. Blad2!$Y$238:$Z$315 eller något annat helt obegripligt område, allt för att göra livet spännande för användaren antar jag.

Jag orkar inte mer idag iaf :(.
Bilagor
Dynamiska-namnområden.gnumeric.tar.bz2
(4.12 KiB) Nerladdad 117 gånger
Dynamiska-namnområden.ods
(11.89 KiB) Nerladdad 136 gånger
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

En liten uppdatering till alla som följer detta rafflande drama i kalkylbladsmiljö.

Det har (förhoppningsvis) visat sig att det låg lite sanning i Rune.K så försynta fråga tidigare i tråden ("Du kanske inte behöver den funktionen i Openoffice."). Huruvida det behövs i OO.org vet jag inte ännu, som sagt finner jag Calc för långsamt för produktivt arbete, men jag har nog lyckats lösa det på ett acceptabelt sätt i Gnumeric. En av anledningarna till att man alls vill använda sig av Dynamiska Namngivna Områden i Excel är att om man definierar ett "för stort" område absolut i Excel och använder den som indatavektor för en validerad listruta, så kommer hela området att visas, inklusive tomma celler. Dessutom är det så att om man har data i de tre första cellerna i vektorn följt av tre tomma följda av ytterligare två celler med data så kommer det att bli tre valbara "hål" i listan som visas för användaren, något som varken ser snyggt eller profsigt ut. Så funkar det inte i Gnumeric. Gnumeric trycker ihop allt i en lista och sorterar den så att det inte blir några mellanrum. Därmed försvinner en del av anledningen till att använda dynamiska namgivna områden.

Problemet med att Gnumeric definierade om områden visade sig bero på att det bara ibland (av någon anledning som jag inte klurat ut ännu) sätter området som absolut (med $) och ibland utesluter $:et. När jag pillade dit dollartecknen löste det sig.

Nu tycks de mest grundläggande funktionerna i bladet alltså fungera och det återstår "bara" att göra om de ~200 namngivna områdena till absoluta referenser. Hoppas jag...
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

Hur går det?
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

Rune.K skrev:Hur går det?
Jo då, allt verkar fungera som det skall. Det enda som är lite märkligt är att jag får ett felmeddelande (Ogiltigt uttryck) när jag öppnar arbetsboken, utan någon information om vilket uttryck som skulle vara ogiltigt. Och inne i boken hittar jag inga tecken på att det skulle vara felaktiga beräkningar.
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

Ett sätt kan vara att använda spara som inifrån openoffice, så att du får en kopia och felet eventuellt försvinner.

Ibland tar får man till yxan...
djkmmo
Inlägg: 1904
Blev medlem: 20 jun 2008, 18:09
OS: Ubuntu
Utgåva: 12.04 Precise Pangolin LTS
Ort: Malmö

Re: Någon som pratar VBA?

Inlägg av djkmmo »

Rune.K skrev:Ett sätt kan vara att använda spara som inifrån openoffice, så att du får en kopia och felet eventuellt försvinner.

Ibland tar får man till yxan...
OpenOffice kan inte hantera Gnumerics xml-filer, men det blev ingen skillnad när jag sparade en ny kopia via Gnumeric. Men det spelar inte så stor roll; det verkar ju inte påverka något och om det påverkar något så lär jag väl märka det ;).
Rune.K
Inlägg: 6437
Blev medlem: 09 jul 2008, 17:19
OS: Kubuntu
Utgåva: 24.04 Noble Numbat LTS

Re: Någon som pratar VBA?

Inlägg av Rune.K »

Men då fungerar det 99.99% eller hur?

Jag brukar säga när folk klagar på sina datorer, man ska vara glad att det fungerar så bra som det gör!

Själv råkade jag ut för en rolig grej igår, jag har ikonen för system(den som visar dina diskar) precis ovanför papperskorgen.
Jag drog några filer till papperskorgen samtidigt som jag hostade till.
Papperskorgen for in system-mappen och jag är inte människa att få bort den därifrån........
Skriv svar

Återgå till "Programmering och webbdesign"