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

MH2

Medlem
  • Antal inlägg

    1 057
  • Gick med

  • Senaste besök

Allt postat av MH2

  1. Spara länken. Som du ser i kommentarerna längre ner på sidan kan man få problem om man vill återställa. Det kanske är enklare att köra "[shift]+klick" eller "[Ctrl]+klick" som vissa föreslår i bloggkomentarerna. Jag har just återställt min egen och det ÄR krångligt. Om du vill återställa DEE värdet: [open("%1")] så bör du skriva in citationstecknen "" manuellt. Koierar du från webben så blir det knas. Registerhacketet för återställning av "run" beskrivs här: http://support.microsoft.com/kb/207574/en-us
  2. http://www.drewery.net/blog/2006/08/29/utilising-dual-monitors-with-microsoft-excel-2003/
  3. Om du har "analysis toolkit" aktiverat så kan du även använda EDATE(). som returnerar datumet ett visst antal månader fram eller tillbaka. Typ: =EDATE(A5;-10*12)
  4. Så bra att det löste sig. Bara för arkivet: Jag var lite otydlig på sök/ersätt. Om du vill skriva in teckenkod 160 (hårt blanksteg) så håller du nere ALT och skriver in 0160 med det numeriska tangentbordet (det till höger, som inte finns på en bärbar). När du släpper upp Alt-tangenten så skrivs tecknet in (jag glömde alltså att nämna den inledande 0:an och att du måste använda det numeriska tangentbordet, smådetaljer ...).
  5. Och precis som alla andra så är nog ryssen helt medveten om att internet är nästan lika avlysningsbar som radiovågor. Trots att jag är betongsosse av födsel och gammal vana så tycker jag att det är patetiskt att Mona försöker ta poäng på FRA-lagen. Om sossarna hade haft makten så skulle lagen ha införts precis likadant (och Folkpartiet, Moderutterna, mittenaprtiet och jesus-demokraterna hade tävlat om att vara mest upprörda...). Det stora problemet med FRA-lagen är att de fullständigt har misslyckats med att förklara vad den skall vara bra för (det var oreglerat förut. och nu är det???) och att de inte har tagit folks legitima oro på allvar. FRA är en militär organisation som skall "spionera" efter yttre hot. Jag är mer oroad över vilken typ av informationsinhämtning våra inhemska organisationer och utländska bolag sysslar med. Mer eller mindre utan insyn.
  6. Finns det ett kunnummer eller liknande som är gemensamt? Då kan du använda Letarad() eller paret PASSA/INDEX. Om du söker efter Letarad i E-forum så finns det en miljon exempel (ungefär, 369 i alla fall )
  7. testa =TEXTNUM(A1) eller, om du vill vara riktigt brutal =TEXTNUM(STÄDA(RENSA(A1))) Om det inte fungerar så är problemet förmodligen att dina "mellanslag" är något riktigt konstigt tecken. Då kan du testa att gå in i en cell och kopiera de 2 första tecknen. Sen kör du en ersätt (CTRL+H) där du klistrar in de 2 okända tecknen och ersätter med ingenting. Om det inte går att klistra in tecknen så kan du kolla vad det är med hjälp av =KOD(A1) respektive =KOD(EXTEXT(A1;2;1)) "Vanliga" mellanslag har kod 32. Om du vill klistra in det i sök efter så kan du använda alt-tangenten + teckenkoden. Typ: [Alt]+032 En sista lösning (kanske den bästa vid närmare eftertanke) är att använda: Data->text till kolumner->avgränsade->blanksteg (dvs om minst ett av dina tecken är ett riktigt blanksteg) Om alla dina siffror är 4 tecken långa så kan du till och med använda fast bredd.
  8. Får inte redigera mitt inlägg. AllowSorting skall naturligtvis inte vara True
  9. hmm, Var tusan fick jag Protected ifrån? Hursomhelst. Tittar man på webben så verkar protect helt enkelt slå ut "visa alla". oavsett vad man kryssar i :-( Det du kan göra är att lägga till "UserInterfaceOnly" i din protect ActiveSheet.Protect UserInterfaceOnly:=True, AllowSorting:=True, bla Då gäller protecten bara för användarna. Inte för din VBA-kod. Dvs du kan köra ActiveSheet.ShowAllData i makron. Men menyvarianten av "visa alla" verkar vara borta (användaren kan fortfarande köra "alla" för enskilda kolumner) Kolla i hjälpen "UserInterfaceOnly:=True" sparas inte med arbetsboken. Du kan bli tvungen att köra den "i onödan" bara för att vara säker på att det gäller.
  10. Stäng av och sätt på skyddet ActiveSheet.Protected = False 'bla bla bla din kod ActiveSheet.Protected = True och, om behov finnes, lek med: ActiveSheet.Protect AllowSorting:=True
  11. Låter som torr luft. Var har du utblåset från burken? Kör du något slags AC? Men visst kan CTR-skärmar jävlas. Hade en arbetskamrat som var superkänslig. Han använde ett sådant skydd som Stefan nämner. Tyvärr var det lite för litet för skärmen så han fick "solbränna" i pannan. När han bytte till LCD-skärm försvann alla problem.
  12. Ingen aning. Men har du sett att du numera är terroriststämplad på Eforum. //eforum.idg.se/viewmsg.asp?EntriesId=1062134#1062174
  13. Det enklaste är att koppla ett snabbkommando till ditt makro ([ALT]+[F8], markera ditt makro, tryck på alternativ). Annars får du ge dig in i de mörkare sidorna av VBA, händelsehantering. Då fångar du en händelse (t.ex att värdet i F4 är ändrat) och startar ditt makro när det sker. Ställ dig i bladet det gäller och högerklicka på fliknamnet (längst ner, typ "blad 1"). Välj "visa kod" Nu får du upp en tom "VBA-sida". Högst upp på VBA-sidan har du två rullgardinsmenyer. I den vänstra väljer du "worksheet" och i den högra väljer du "change". Nu skall du få en tom kodsnutt i stil med: Private Sub Worksheet_Change(ByVal Target As Range) End Sub (om det råkade bli en annan händelse ovanför kan du ta bort den) Problemet är att den här händelsen är "för stor". Den reagerar på alla förändringar på sidan. Den måste smalnas av. Det gör man med hjälp av "Intersect" Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("F4")) Is Nothing Then Exit Sub ' Koden som du vill köra, typ: MsgBox ("jajjamensan det är F4 som är ändrad") ' eller länk till ditt färdiga makro End Sub Det kan även vara smidigt att stänga av händelsehanteringen så att du intee råkar triggas igång andra händelser. dvs i början av koden: Application.EnableEvents = False Och slutet av koden: Application.EnableEvents = True ******************************************** Ursäkta, missade att Monshi redan svarat. Dessutom skrev jag fel händelse... ******************************************** Men, vad tusan. Tror du inte att jag lämnade kvar fel händelse... [inlägget ändrat 2008-07-02 11:20:43 av MH2]
  14. Ingen kommentar från vår skogstaliban Bosse Terrorist?
  15. Poäng för att man fick lära sig något nytt (ok, bortglömt)
  16. Hi, hi. Klassiska hjärnsläpp suger. Särskilt när man lyckas stå för dom själv.. Lite sommarkul. Kolla konverterarna. Typ: Cint, cLng och allt vad de heter Val() kan vara användbart det också. I alla fall om du vill gardera dig mot skräptecken. Sen kan du alltid kontrollera indata på olika sätt. Typ: IsNumeric() VarType() TypeName() MsgBox ("F4 går att räkna med: " & IsNumeric(Val(Range("F4").Value))) MsgBox ("F4 är av typen: " & VarType(Range("F4").Value)) MsgBox ("F4 är av klartexttypen: " & TypeName(Range("F4").Value)) Osv Osv
  17. Vet inte riktigt vad du menar. Men, om du menar själva offertbladet så kan du testa "ThisWorkbook". Den används för att adressera den arbetsbok som innehåller makrot (offerten?) oavsett vad det heter. Typ: ThisWorkbook.Worksheets("faktura").Range("a1").Value = "någonting" Om du menar din bok med fakturanummer "en annan workbook" så blir du helt enkelt tvungen att hålla reda på namnet, annars krävs det tankeläsning från datorns sida och det är den inget bra på . Du får helt enkelt gå in i makrot och ändra referensen.
  18. Såg en annan sak. Du har bara ändrat WORKDAY-formeln för rad 5 och 6. Du måste nog kolla att du inte har olika formler på olika rader. [inlägget ändrat 2008-06-30 14:13:12 av MH2]
  19. Det enda jag kan se direkt är att Eforum har ändrat ett större än tecken, >, till "HTML-kod" & g t ; (greater than) I O2 står det (E2 & g t ; F2) där det skall vara (E2>F2) Det blev förmodligen när jag var inne och redigerade inlägget. ******************* Testar att redigera och se om det ställer till något [inlägget ändrat 2008-06-30 13:53:17 av MH2] Jo. Fast åt fel håll. Det ändrade & g t ; till > PS. Ändra visningsformatet för hjälpcellerna så att du ser både datum och tid. Då blir det lättare att se vad som händer. Typ: 2008-07-16 23:00 Får se om jag orkar ta mig in i Pejos lösning lite senare. Det ser ju intressant ut. [inlägget ändrat 2008-06-30 13:57:54 av MH2] [inlägget ändrat 2008-06-30 13:58:59 av MH2] Vad tusan, & g t ; skall vara sammanskrivet [inlägget ändrat 2008-06-30 14:01:07 av MH2]
  20. Ursäkta sent svar. Har inte kollat datorn på ett tag. Jag har ingen aning. Ingen aning. " #NAMN?" tyder ju på att den inte känner igen Workdays överhuvudtaget (den delen av formeln körs ju bara när det är en helgdag). Hmmm. Gooogle, google google. Ok. I office 2007 har "Workday" tydligen blivit en "riktig" funktion. inte ett tillägg. Du kanske måste nog använda en svensk formel istället. http://office.microsoft.com/sv-se/excel/HP100791861053.aspx Jupp, den heter ARBETSDAGAR (he, allt går igen. Toolkit-formeln hette ARBETSDAGAR i min gamla office 2000 också)
  21. Får se om E-forum vill vara med och leka nu. Det är verkligen segt. Vilkordsstyrd formatering är inget bra om du skall summera data sedan. Jag glömde att kolla tomma data. Pinsamt... Nedanstående exempel bygger på någorlunda mänskliga arbetstider. Klarar inte pass på >24 timmar. Du kan inte starta före midnatt och jobba till efter 18 dagen efter och förmodligen någonting till som jag har missat. Antag att kolumn a-c ser ut som förut ___A____B_____C__ Datum_starttid_sluttid Jag funderar på om man kan göra det lite enklare för sig med dolda hjälpkolumner Vi kan börja med att lägga in 2 kolumner som lägger ihop datum och tid så att vi får det lättare att hantera midnatt. Vi lägger helt enkelt ihop datum och tid (+ en dag om sluttiden är mindre än starttiden). Formeln för startid_med_datum (i D2) blir =OM(ANTAL(A2:C2)=3;B2+A2;"") och formeln för sluttid_med_datum (i E2) blir =OM(D2<>"";OM(B2<C2;A2+C2;A2+C2+1);"") OM vilkoret kollar om det finns några data. Annars retuneras en tom cell. Inte helt nödvändigt eftersom kolumn D och E skall ju döljas. Men bara för att visa principen Sen gör vi 2 kolumner med start/stopptid för OB. Inklusive datum (lite onödigt. Men det är lättare än att skriva in det i varje formel) I OB_start (F2) skriver vi =A2+TIDVÄRDE("18:") Och I OB_slut (G2) =A2+TIDVÄRDE("06:") Sen gör vi en snurra för att lista ut när helgen startar/slutar också (obs! använder "workday()" som finns i analysis toolpack. Kolla att det är ikryssat i "Verktyg->tillägg") Helg_start (H2) =OM(ELLER(VECKODAG(E2;2)>5;VECKODAG(D2;2)>5);Workday(E2;-1)+1;"") Helg_slut (I2) =OM(H2<>"";Workday(D2;1);"") Ok. Då vet vi det mesta vi behöver men vi lägger till två hjälkolumner till med total arbetstid respektive total helgtid. Det är bra att ha: Total_tid (J2) =OM(ANTAL(A2:C2)=3;(E2-D2)*24;0) Total_helgtid (K2) =OM(ANTAL(H2:I2)=2;(MIN(I2;E2)-MAX(H2;D2))*24;0) De här hjälpkolumnerna kan du dölja om du vill. Markera och gå till menyn "Format"->kolumn->dölj Ok. Nu kommer vi äntligen till de kolumner du egentligen ville ha. __l___M___N__O Ob1_Ob2_ob3_ob4 Ob1 (L2) =OM(J2<>0;J2-M2-N2-O2;0) Ob2 (M2) =OM(J2<>0;((D2<G2)*(MIN(E2;G2)-MIN(D2;F2))+(E2>F2)*(MIN(E2;G2+1)-MAX(F2;D2)))*24-O2;0) Ob3 (N2) =OM(K2<>0;K2-O2;0) Ob4 (O2) =OM(K2<>0;((D2<G2)*(D2>H2)*(MIN(E2;G2)-D2)+(E2>F2)*(MIN(E2;I2;G2+1)-MAX(F2;D2;H2)))*24;0) Jag rekomenderar att du testar en massa olika varianter och ser att det blir rätt. Det här käns ärligt talat lite rörigt... /m [inlägget ändrat 2008-06-27 15:20:27 av MH2]
  22. Jag tänkte säga att det är enkelt. Bara att sätt formeln från inlägg 2 i omformeln från inlägg 1. Men så enkelt är det ju inte. Du måste ju kunna hantera övergången mellan helg och vardag också. Det finns väl skift som börjar vardag och startar helg t.ex? Hmmm, varför känns det som om man missar någon enkel lösning här?
  23. Hmmm. jag gjorde visst en tankevurpa där. Om cellerna H2 och I2 antas innehålla start- och stopptid för OB1 så borde formeln för OB2 nog se ut så här: =(B2<$H$2)*(MIN(C2;$H$2)-B2)+(C2>$I$2)*(C2-MAX(B2;$I$2)) Sen får man hänga på helghantering osv. Vill du tillåta dygnsövergång så kan du testa =OM(B2<C2;(B2<$H$2)*(MIN(C2;$H$2)-B2)+(C2>$I$2)*(C2-MAX(B2;$I$2));(B2<$H$2+1)*(MIN(C2+1;$H$2+1)-MAX(B2;$I$2))+(C2+1>$I$2+1)*(C2-$I$2)) Och, om ob2 står i cell E2 så blir väl OB1 så här: =OM(B2<C2;C2-B2;C2+1-B2)-E2 Inte speciellt snyggt om jag får säga det själv..
  24. Antag att datumet står i A2, starttiden står i B2 och sluttiden i C2 Vi börjar med att ignorera veckosluten. Då kan du räkna ut OB2 med hjälp av =(B2<6/24)*(6/24-B2)+(C2>18/24)*(C2-18/24) eller, om du vill ha det som decimaltal (lättare att sumera): =((B2<6/24)*(6/24-B2)+(C2>18/24)*(C2-18/24))*24 Ob1 blir naturligtvis =((C2-B2)+(B2<6/24)*(B2-6/24)+(C2>18/24)*(18/24-C2))*24 eller, enklare =(C2-B2) - den cell där ob2 står. För att hantera veckosluten så kan du exempelvis använda en omsats och VECKODAG() Det här blir då en lämplig formel för OB4 =OM(VECKODAG(A2;2)>=6;((B2<6/24)*(6/24-B2)+(C2>18/24)*(C2-18/24))*24;0) och det här för OB2 =OM(VECKODAG(A2;2)<6;((B2<6/24)*(6/24-B2)+(C2>18/24)*(C2-18/24))*24;0) Ja, du fattar principen Alla ovanstående formler har uppenbara brister. Den klarar inte röda dagar utanför veckoslutet och det skiter sig om arbetstiden går över midnatt. Vill du hantera röda dagar så finns funktionerna "workday" osv. Men det är lite överkurs. Vill du hantera arbetstider som går över midnatt så är det enklaste att skriva in både datum och tid i varje cell med start/stopptid och anpassa formlerna efter det. Annars blir du nästan tvungen att göra en massa vilkor som hanterar konstiga fall (om starttid är större än sluttid t.ex). ********************** Ps: Jag skrev in tidera som 6/24 osv. Du kan naturligtvis länka till en cell istället. Då kan du ju enkelt ändra start/stopptider [inlägget ändrat 2008-06-26 16:17:13 av MH2]
  25. Vet inte riktigt vad du vill. Typ filtrera fram allt som är äldre än 2 dagar? Testa: ="<"&IDAG()-1 eller, om du vill se datumet i "mänskligt" format: ="<"&TEXT(IDAG()-1;"ÅÅÅÅ-MM-DD") Vill du använda autofilter så. Ähhh, anpassade. Nej, det går ju inte. Där måste du skriva in datumet manuellt. Hmmm.
×
×
  • Skapa nytt...