Just nu i M3-nätverket
Gå till innehåll

Ms Excel 2002


speedy1

Rekommendera Poster

Hej alla!

 

En klurig sak...

 

1. Varje gång jag öppnar den aktuella Excel-filen vill jag att en speciell cell ska vara markerad direkt.

 

2. Sedan ska det gå att tabba sig till vissa utvalda celler i en viss ordning (och i dem fylla i uppgifter).

 

3. Slutligen ska alltihop kunna skrivas ut, men det är väl inga konstigheter.

 

Jag ska alltså fylla i uppgifter i vissa celler som jag vill kunna tabba mig emellan, (med slutresultat i en helt annan cell).

 

Kan någon hjälpa mig?

 

Mvh

/speedy1

 

 

Länk till kommentar
Dela på andra webbplatser

Kan hjälpa dig med en del.

 

1.

Private Sub Workbook_Open()
   Worksheets("blad1").Cells(1, 1).Select
End Sub

(funktionen hittar du i ThisWorkbook blad Excel-objekten i VBA)

 

2. Lås upp de celler du vill tabba dig emellan (via formatera celler -> skydd). Skydda sedan bladet och se till att användaren enbart kan markera olåsta celler.

I viss ordning, kanske går att ställa in på något sätt, men vet ej hur

 

 

3. Skriva ut - definiera utskriftsområdet. Inte använt det så mycket, men det borde väl excel komma ihåg mellan gångerna. Eller så skapar du ett makro, kopplar det till en knapp. Makrot kan du säkerligen spela in på normalt vis.

 

Löste jag det för dig?

 

ED:

apropå tab-ordning. Mellan cellerna i Excel är det nog ganska svårt att ordna, men det går.

Du kan upptäcka när cell A2 blir aktiv. Och vet du att du istället vill vara i A3 kan du med lite VBA kod hoppa dit. Du kan även hålla reda på vilken cell du kommer ifrån och hoppa därefter. Men det är nog bättre om du har dina upplåsta celler i rätt ordning.

 

 

/T

 

[inlägget ändrat 2004-01-13 20:27:20 av Monshi]

[inlägget ändrat 2004-01-13 20:46:07 av Monshi]

[inlägget ändrat 2004-01-13 20:46:33 av Monshi]

Länk till kommentar
Dela på andra webbplatser

Gör inte auto_open saken?

 

Nu är jag vilsen.

 

Förklara gärna. Någon egenskap i Excel jag ännu inte känner till? Finns massor, men även massor med plats i min databas.

 

/T

 

Länk till kommentar
Dela på andra webbplatser

Konstigt nog hittade jag inte i hjälpen varken i XP Uk eller xl2k sw versionerna på auto makron.

jag återkommer när jag hittat rätta sökordet i hjälpen.

hinner inte förklara för tillfället.

BI

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Speedy här igen! Tusen tack för de utförliga svaren på min fråga. Tyvärr skrev ni en hel del uttryck som jag inte förstår:

 

1. Private Sub Workbook_Open()

Worksheets("blad1").Cells(1, 1).Select

End Sub

 

(funktionen hittar du i ThisWorkbook blad Excel-objekten i VBA)

 

Min kommentar till punkt 1; ?

 

 

 

2. Lås upp de celler du vill tabba dig emellan (via formatera celler -> skydd). Skydda sedan bladet och se till att användaren enbart kan markera olåsta celler.

I viss ordning, kanske går att ställa in på något sätt, men vet ej hur

 

Min kommentar till punkt 2; Lås upp celler? Det verkar inte så konstigt, men hur "skyddar jag bladet?

Se till att användaren enbart kan markera olåsta celler? Hur?

(I viss ordning vill jag ha dem, det får jag kolla mer på...)

 

 

 

3. Skriva ut - definiera utskriftsområdet. Inte använt det så mycket, men det borde väl excel komma ihåg mellan gångerna. Eller så skapar du ett makro, kopplar det till en knapp. Makrot kan du säkerligen spela in på normalt vis.

 

Min kommentar till punkt 3; Det som detta gäller är en tabell man man säga, där jag ska skriva ut ALLTIHOP, alltså allt inom ramen för tabellen; rubriker, texter mm. och givetvis de ifyllda uppgifterna! Allt ska skrivas ut!

Makro? Är nyfiken på Makro, men förstår det inte... hjälp...?

 

"Löste jag det för dig?"

Som du förstår... inte än! ;o)

 

 

 

ED:

apropå tab-ordning. Mellan cellerna i Excel är det nog ganska svårt att ordna, men det går.

Du kan upptäcka när cell A2 blir aktiv. Och vet du att du istället vill vara i A3 kan du med lite VBA kod hoppa dit. Du kan även hålla reda på vilken cell du kommer ifrån och hoppa därefter. Men det är nog bättre om du har dina upplåsta celler i rätt ordning.

/T

 

Min kommentar till ED; Upptäcka när cell A2 blir aktiv??? VBA-kod???

Mina celler som ska vara upplåsta är: E5-F8-F10-F12-F14-E20-C21 (i den ordningen). Går det att lösa?

 

 

 

Gör inte auto_open saken?

BI

 

Min kommentar; ?

 

 

 

Konstigt nog hittade jag inte i hjälpen varken i XP Uk eller xl2k sw versionerna på auto makron.

jag återkommer när jag hittat rätta sökordet i hjälpen.

hinner inte förklara för tillfället.

BI

 

 

Tacksam för mer hjälp!

 

Mvh/Speedy

 

 

Länk till kommentar
Dela på andra webbplatser

Först - finns en möjlighet till Citat, vilket gör texten mer lättläst.

[ citat ] hej [ /citat ]

blir

hej

utan de extra mellanslagen

 

1. Öppna arbetsboken. Högerklicka på bladets namn och välj visa kod. Du är nu i VBA editor. Öppna, via arbetsområdet till vänster, ThisWorkbook. Via rullgardinmenyerna i fönstret du öppnat kan du välja funktionen jag beskrivit. Klistra in koden jag givit dig och editera den att välja den cell du önskar.

OBS!

Denna punkt kan dock vara av mindre vikt om den cell du vill ha markerad är den första olåsta cellen.

 

2. Lås upp: Markera en, eller flera, celler och välj formatera. Under fliken skydd, bocka av "låst"

Stäng.

Via menyn Verktyg->skydd kan du skydda arket. Bocka av "markera låsta celler"

Nu kan du enbart markera och påverka de celler som ej är låsta.

Excel tabbar uppifrån och ned. Det blir inte riktigt den ordningen du önskar. Vill du ha annan ordning måste vi lägga till lite kod, men det undviker vi helst. Kan du lösa det på annat sätt?

 

3. Skriva ut. Testa vanlig utskrift, borde räcka. Om du behöver ange utskriftsområde görs det i arkiv-menyn.

Eller, om detta inte räcker, återkom.

 

Hur många steg framåt tog vi nu? Snart framme?

Hämta gärna inspiration från XLdennis:

http://www.xldennis.com

/T

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Nu ska vi se…

 

Jag fick inte fram ThisWorkbook, hittade inget som hette så?!

 

Låsa upp fungerar bra!

 

Skydda ark fungerar bra!

 

(Varje gång jag öppnar filen nu kommer ett varningsmeddelande om nåt med ”inaktiverade makro/säkerhetsnivå o dyl. Kan jag få bort det? SKA jag få bort det?)

 

Eftersom Excel tabbar uppifrån och ner hoppar den mellan de celler jag vill, och i rätt ordning.

MEN, den öppnar filen med samma cell markerad som när jag stängde filen. Jag vill ha en SPECIELL cell markerad (E5) oavsett vilken som är markerad när jag stänger filen. Går det att lösa?

 

Den skriver ut allt, inga problem!

 

Makro? Vill du förklara vad det är? Hur används det?

 

Ja, jag tror att vi snart är framme! :o)

 

Mvh/Speedy

 

 

 

Länk till kommentar
Dela på andra webbplatser

Jag fick inte fram ThisWorkbook, hittade inget som hette så?!

Öppnade du VBA-editorn? Antingen via menyn Verktyg->makro->Visual Basic Editor eller via högerklick på namnfliken och valt "Visa kod".

När du öppnat EDitorn, öppna menyn Visa och klikca på Projektgranskaren. Kanske det fönstret inte syns fr dig annars. Där hittar du ThisWorkbook.

 

(Varje gång jag öppnar filen nu kommer ett varningsmeddelande om nåt med ”inaktiverade makro/säkerhetsnivå o dyl. Kan jag få bort det? SKA jag få bort det?)

beror på att någon VBA-kod/makro kod är sparad med arket. Den kommer att finnas där om du vill styra öppningscellen.

 

Cell E5

Följande enkla kod i Thisworkbook Workbook_open

worksheets("Blad1").range("e5").select

 

Byt ut Blad1 till namnet på ditt ark.

 

 

Makron, en benämning på VBA-program. Normlat sett kallar man det man "spelat" in för makro. Du kan med Excel spela in det du gör och återspela detta. Detta lagras i VBA-kod, men kallas normalt sett för makro.

Mao, makron används för att utföra repetetiva uppgifter.

Eller - VBA-kod kan användas för att göra Excel mer dynamiskt.

 

Hälsa på hos XLDennis, där finns en hel del matnyttigt.

 

http://www.xldennis.com

 

Ser vi målet nu?

/T

 

 

Länk till kommentar
Dela på andra webbplatser

Vill du ha bort varningsmeddelandet så väljer du Verktyg, Makro, Säkerhet och därefter låg säkerhetsnivå. Men du gör det på egen risk.

 

Länk till kommentar
Dela på andra webbplatser

Auto_open hittades inte direkt i hjälpen på nya officen, det är kanske endast för oss seniler som dessa type av program är menade.

Auto open är ett program (makro) som körs varje gång dokumentet öppnas. Fungerar i Office programmen.

 

Office innehåller ett antal program som körs automatiskt varje gång en händelse inträffar men måste namnges på ett speciellt sätt.

 

Kanske finns det något mera om detta på de Excel sidor som det görs reklam om här i forumet?

 

BI

 

Länk till kommentar
Dela på andra webbplatser

När jag gjorde en enkel sökning google efter auto_open fann jag bara en massa diskussioner/varningar om virusproblem med Excel. Möjligt att MS inte uppmuntrar användningen av denna funktion.

 

/T

 

Länk till kommentar
Dela på andra webbplatser

JAG HITTADE DET!!!!

Detta från Word. I Excel namnges de lite annorlunda men fungerra på samma sätt, i Access finns det AutoExec.

 

AutoClose makron användas bla annat av Adobe.

 

By giving a macro a special name, you can run it automatically when you perform an operation.

 

Macro name When it runs

AutoExec When you start Word or load a global template

AutoNew Each time you create a new document

AutoOpen Each time you open an existing document

AutoClose Each time you close a document

AutoExit When you quit Word or unload a global template

 

Auto macros in code modules are recognized if either of the following conditions are true.

 

The module is named after the auto macro (for example, AutoExec) and it contains a procedure named "Main."

A procedure in any module is named after the auto macro.

Just like other macros, auto macros can be stored in the Normal template, another template, or a document. In order for an auto macro to run, it must be either in the Normal template, in the active document, or in the template on which the active document is based. The only exception is the AutoExec macro, which will not run automatically unless it is stored in one of the following: the Normal template, a template that is loaded globally through the Templates and Add-Ins dialog box, or a global template stored in the folder specified as the Startup folder.

 

In the case of a naming conflict (multiple auto macros with the same name), Word runs the auto macro stored in the closest context. For example, if you create an AutoClose macro in a document and the attached template, only the auto macro stored in the document will execute. If you create an AutoNew macro in the normal template, the macro will run if a macro named AutoNew doesn't exist in the document or the attached template.

 

Note You can hold down the SHIFT key to prevent auto macros from running. For example, if you create a new document based on a template that contains an AutoNew macro, you can prevent the AutoNew macro from running by holding down SHIFT when you click OK in the New dialog box (File menu) and continuing to hold down SHIFT until the new document is displayed. In a macro that might trigger an auto macro, you can use the following instruction to prevent auto macros from running.

 

BI

 

 

Länk till kommentar
Dela på andra webbplatser

Hej igen!

 

Du hade rätt, det var det fönstret jag inte såg; projektutforskaren, men nu fungerar det.

 

Jag skrev fel senast, den senast markerade cellen var inte den som markerades när jag sedan öppnade filen. Av någon anledning var alltid cell F10 (en av dem jag tabbar mellan) markerad när jag öppnade filen (jag vet inte varför).

Trots att jag tidigare inte styrde öppningscellen (tror jag!) kom varningsmeddelandet upp varje gång jag öppnade filen.

Nu har jag däremot lagt in koden så att cell E5 markeras direkt när filen öppnas, så NU kommer väl definitivt varningsmeddelandet upp i fortsättningen.

Jag låter det nog vara så, jag känner inte för att sätta ner säkerhetsnivån eftersom jag inte vet vad det innebär… (en fråga om detta kommer längre ner…)

 

Nu är alltså någon VBA-kod/makro sparad med arket? Eftersom jag NU styr öppningscellen?

 

Är ”ThisWorkbook” ett VBA-program? VBA-kod gör Excel mer dynamiskt?

 

Med risk för att vara tjatig; Makro? Spela in? Repetitiva uppgifter? När jag ska göra ett arbete (vad som helst) i Word/Excel, hur använder jag/har jag användning för, Makro? Vore väldigt tacksam om du ville förklara det ytterligare… (förklara det som om jag vore 5 år, för jag fattar inte alls).

 

T.ex. som ”BI” skrev:

Macro name When it runs

AutoExec When you start Word or load a global template

AutoNew Each time you create a new document

AutoOpen Each time you open an existing document

AutoClose Each time you close a document

AutoExit When you quit Word or unload a global template

 

Jag förstår givetvis vad det står, men hur används det?

 

”AutoOpen”? ”AutoClose”? Är det något jag ”ska” använda här? Virusproblem? HJÄLP!

 

Det här pratet om att ev. sänka säkerhetsnivå m.m… påverkar det andra program? Datorn? Har det med säkerheten ut mot Internet att göra (jag har bredband)? Menas något helt annat?

(Jag vill absolut inte ha problem med andra program eller med datorn p.g.a. det här).

 

Känner mig ganska nöjd just nu, med min tabell. Jag har lyckats låsa det som inte ska påverkas, jag får cell E5 markerad när jag öppnar filen, kan tabba mellan de celler jag vill (och i den ordning jag vill) samt fylla i uppgifterna där de ska vara och därmed få resultatet i en separat cell.

 

Kan jag flytta denna fil till andra datorer utan att något förändras?

 

Som du (ni) förstår är jag totalt novis på det här, men nyfiken på att lära mig. Därför hoppas jag på ännu mer information! Ska även kolla på www.xldennis.com.

 

Ja, målet är riktigt nära nu. Är en bra bit in på upploppet…

 

Mvh/Speedy

 

 

 

Länk till kommentar
Dela på andra webbplatser

Det här pratet om att ev. sänka säkerhetsnivå m.m… påverkar det andra program? Datorn? Har det med säkerheten ut mot Internet att göra (jag har bredband)? Menas något helt annat?

 

Enbart hur Excel behandlar makron/VBA påverkas. I det läge du nu har inställt måste du godkänna att de körs. Vi lägre säkerhet körs de automatiskt.

Det finns en del virus skrivna att köras i VBA-kod (Excel, Word, Access tex), därför införde Microsft dessa säkerhetsnivåer. Om du känner dig säker på att inte få några virus kan du sänka nivån.

 

Kan jag flytta denna fil till andra datorer utan att något förändras?

Ja.

 

Är ”ThisWorkbook” ett VBA-program? VBA-kod gör Excel mer dynamiskt?

Ja. Med mer dynamiskt menar jag att VBA-kod går att fås att fatta dynamiska beslut utifrån värdena i cellerna och kan påverka värdet i flera celler. Det är inte enkelt att göra, ofta omöjligt, att göra samma saker med vanlig Excel-formler. Formler kan ex.v enbart påverka den cell där de är skrivna. VBA kan påverka hela arks egenskaper.

Ta dig en titt hos XLDennis, du förstår nog vad jag menar.

Makro - en gammal benämning. Med makro menar jag de inspelningar man kan göra. Meny Verktyg -> Makro ->spela in nytt.

 

När du spelar in ett makro skapar Excel VBA-kod som kan utföra de operationer du gör. Om du öppnar VBA-editorn, kan du i projektgranskaren se, och ändra, det Excel har skrivit.

 

VBA står för Visual Basic for Applications. Visual Basic specialanpassat för program. Mycket av det du kan göra med vanliga Visual Basic kan du även göra med VBA.

 

AutoXXX

tror det motsvaras i Excel av Workbook_open _close _activate osv.

Bry dig inte om dem.

 

 

Testa testa testa. Mycket går att göra i Excel, mycket mer än du tror.

 

Vad är det du skapar?

/T

 

Länk till kommentar
Dela på andra webbplatser

BI: ahaa, det är Events-procedurer helt enkelt.

 

Ja de finns under Excel också, fast som du skriver under lite andra namn.

 

Du kan för övrigt skapa egna händelseprocedurer (events).

 

Kolla denna sida hos XLDennis:

http://www.xldennis.com/klassobjekt(vba).htm

 

Nyttjar det i mitt Tipsark, kanske du får se det på en webbsida snart...

 

/T

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Jag måste alltså godkänna makro (varningsmeddelandet) för att kunna använda min fil (det finns bara "Ok)"?

Och just när jag använder filen (mallen) finns det risk för virus?

 

Bra att jag kan flytta den till annan dator, vilket är vitsen för att jag ska ha nytta av den här filen. :o)

Ok, jag bryr mig inte om det där med ”AutoOpen” och AutoClose”…

 

Ja, jag förstår att man kan göra massor i de här programmen, mycket mer än jag kan ana, och någonsin har användning för.

 

Det jag skapar är en sorts mall för att räkna ut en speciell kostnad utifrån vissa värden man ska fylla i (i de cellerna jag tabbar mig mellan).

 

En annan fråga som gäller denna mall; i den sista rutan jag tabbar mig till (C21) är det meningen att datum ska fyllas i. Tyvärr får jag bara till det så att jag måste skriva i datum så här: 2004-01-18. Jag vill att det ska kunna skrivas så här istället: 040118, alltså utan strecken och utan ”20”. Hittar inte något bra alternativ i ”Formatera celler” o.s.v. Förslag?

 

Händelseprocedurer/events?

 

 

Håller även på med ett annat arbete som jag inte blir helt nöjd med. Det är en tabell med priser där alltihop går över 6 flikar. Vill att priserna justeras automatiskt på alla flikarna när jag ändrar värden i några celler på första fliken (på flik 2, 3 osv ska första cellen påverkas beroende på den sista cellen på föregående flik).

Alltså:

Jag skriver en formel i cell A1 som ser ut så här: =SUMMA((A6+B3)*(1+B4))

Sedan drar jag ner denna till A2, A3 A4 osv, med det lilla svarta krysset. Då kommer ju cellreferenserna (A6, B3 och B4) att öka med ett steg i taget. Så vill jag inte ha det, utan jag vill att B3 och B4 ska vara samma fasta värde (konstant?) hela tiden, medan A6 fortfarande ökar med ett i taget.

 

Hur ska jag skriva formeln för att få B3 och B4 att hålla samma fasta värde (att inte öka med ett i taget)? En baggis för dig/er?

 

 

Mvh/Speedy

 

 

 

Länk till kommentar
Dela på andra webbplatser

Om du bara kör makron som du har spelat in/skrivit själv så finns det ingen risk för virus så vitt jag vet. Det är snarare om du öppnar en excel-fil från nån annan som du inte känner dig riktig säker med.

 

Skriv formeln så här:

 

=((a6+$b$3)*(1+$b$4))

 

 

Länk till kommentar
Dela på andra webbplatser

Vad gäller datum så rekommnderar jag dig att hålla dig till ett format Excel känner igen. ååmmdd är inte det.

 

Kan inte guida dig till något lämpligt format.

 

Men, om du matar in som 2004-01-01 kan då få excel att formatera det som ÅÅMMDD, men du kan inte skriva in 040101 och få Excel att känna igen det som ett datum. Inte utan VBA-kod, och VBA-kod ska man undvika så länge man kan. Excels inbyggda fukntionalitet räcker oftast långt.

 

Händelsprocedur - kraftfulla, men besvärliga, funktioner som reagerar på händelser i Excel. Exv Workbook_open som exekveras när du öpnnar arbetsboken.

 

 

Hur ska jag skriva formeln för att få B3 och B4 att hålla samma fasta

tecknet $ låser en cellreferens.

Testa, använd gärna F4 för att cykla mellan olika låsningar av cellreferensen.

 

/T

 

[inlägget ändrat 2004-01-18 20:44:55 av Monshi]

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Tack för svaren. Det var det "låstecknet" jag var ute efter. :o)

Jag kan väl få alla flikarna att hänvisa till specifika celler i första fliken?

Förmodar att jag då måste ha namnet på första fliken (+ cellen) i formeln på de andra flikarna.

 

Återkommer när jag testat...

 

(Bara några få meter kvar till mållinjen...)

 

Mvh/Speedy

 

 

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Det fungerar att låsa celler med "$".

 

Däremot, ang. min första fråga här, den som gällde min mall som jag skulle skicka till en annan dator. Har skickat den till den andra datorn nu, men när jag sedan öppnar den där är en helt annan cell markerad direkt.

När jag öppnade filen på den första datorn var cell E5 markerad direkt. Det är så jag vill ha det!

 

Visserligen är det bara att tabba så markeras E5, men den ska ju vara markerad direkt?!

 

Vad har gått fel? Hur kan det bli så?

 

Mvh/Speedy

 

 

 

Länk till kommentar
Dela på andra webbplatser

Är säkerheten på dator2 så högt uppdragen att makron inte körs?

 

Det är min enkla teori.

 

Annars, ingen aning.

 

För du har väl kopierat hela arbetsboken? Om du kopierat enbart ett ark, ett blad. följde inte VBA-koden med.

 

Inser nu att det kan kanske vara bättre att lägga koden i arbetsblads aktiveringsfunktion, den körs när ett blad blir aktiverat och följer med.

 

om så önskas, ta bort den kod som väljer cellen nu.

Lägg istället in i arbetbladet denna kod:

 

Private Sub Worksheet_Activate()

Me.Range("a5").Select

End Sub

 

/T

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Säkerheten kanske inte är inställd på samma nivå eftersom på dator 2 kommer inte meddelandet om säkerhetsnivån upp när jag öppnar filen. Kan det vara så? Hur ändrar jag det?

 

Ja, jag har kopierat hela arbetsboken (filen).

 

Tror jag lyckades lägga in koden i arbetsbladet som du beskrev. Ska skicka filen till dator 2 och testa om det blir riktigt.

 

Återkommer

 

2 meter kvar...

 

Mvh/Speedy

 

 

 

Länk till kommentar
Dela på andra webbplatser

Glöm koden jag gav ovan, den fungerar inte.

 

I övrigt - ingen aning!!

Om säkerhetsnivån är för hög varnar Excel att makron ej kommer att köras.

 

Kontrollera om makrokoden finns kvar på dator2.

Vart det skulle tagit vägen har jag ingen aning om, nej har inga fler ideer...

 

/T

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Ska jag glömma den nu när jag gjort om filen?! :o)

Har skickat filen till dator 2, ska se vad som händer...

 

Eftersom inget varningsmeddelande kommer upp är väl säkerheten för låg? Var ändrar jag det?

 

Du menar om makrokoden fortfarande står inskriven Visual Basic... ?

 

 

Ska kolla...

 

Mvh/Speedy

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...