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

short

Medlem
  • Antal inlägg

    136
  • Gick med

  • Senaste besök

  1. ScreenUpdating hade jag redan men CalculationManual gjorde revolution. Körtiden i fall 1 gick från 24 sek till 1,5 sek och i fall 2 från 20 sek till 1 sek.
  2. Jag har två körtidsproblem: 1. Följande kod genomlöps tre ggr (tre olika flikar där citerad kod är för den första fliken) For c = 58 To 2298 Step 56 Range(Range("AnslagJan").Cells(c, 1), Range("AnslagJan").Cells(c + 7, 12)) = 0 Range(Range("AnslagJan").Cells(c + 9, 1), Range("AnslagJan").Cells(c + 9, 12)) = 0 Range(Range("AnslagJan").Cells(c + 11, 1), Range("AnslagJan").Cells(c + 13, 12)) = 0 Range(Range("AnslagJan").Cells(c + 15, 1), Range("AnslagJan").Cells(c + 17, 12)) = 0 Range(Range("AnslagJan").Cells(c + 19, 1), Range("AnslagJan").Cells(c + 24, 12)) = 0 Range(Range("AnslagJan").Cells(c + 26, 1), Range("AnslagJan").Cells(c + 30, 12)) = 0 Range(Range("AnslagJan").Cells(c + 32, 1), Range("AnslagJan").Cells(c + 34, 12)) = 0 Range(Range("AnslagJan").Cells(c + 36, 1), Range("AnslagJan").Cells(c + 39, 12)) = 0 Range(Range("AnslagJan").Cells(c + 42, 1), Range("AnslagJan").Cells(c + 47, 12)) = 0 Next c Det är alltså 4560 rader där 12 celler på varje rad ska nollas. Det tar ca 24 sek eller 8 sek per fik.. 2. Följande kod genomlöps en gång: For rad = 171 To 2355 Step 56 For månad = 13 - Z To 12 Sheets("Avgifter").Cells(rad, månad + 16) = _ Sheets("Avgifter").Cells(rad - 27, månad + 16) * Sheets("Avgifter").Cells(rad - 48, 13) Sheets("Bidrag").Cells(rad, månad + 16) = _ Sheets("Bidrag").Cells(rad - 27, månad + 16) * Sheets("Bidrag").Cells(rad - 48, 13) Next månad Next rad Det är alltså två flikar med vardera 80 rader där som mest 12 celler ska beräknas (Z står för antal månader som väljs och kan variera mellan 12 - 1. Det maximala antalet är alltså 160 rader med 12 celler vardera. Körtiden är i max-fallet 20 sek. Finns det någon smartare kod som ger samma resultat i fall 1 respektive fall 2 på kortare tid?
  3. 1. Man låser fönsterrutor t ex efter kolumn A och skjuter in bladet så att kolumn AAA syns 2. Mellan A och AAA (och efter AAA) finns flera dolda kolumner som man kan öppna genom att trycka på en knapp som går till kod som tar fram dolda kolumner 3. När man tryckt på knappen scrollar datorn automatiskt till kolumn A FRÅGA: Finns det något sätt att förhindra scrollningen till kolumn A - alternativt lagra undan adressen till där man stod för att sedan lägga in kod som hoppar tillbaka till utgångsläget . Användarna klagar över att de måste manuellt ta sig tillbaka till kolumn AAA (man vill se de dolda kolumner som finns i anslutning till AAA)
  4. Om man kopierar ett antal celler som innehåller formler och klistrar in dem i en annan arbetsbok blir resultatet en länk till den sida man kopierat från. Finns det något sätt där man kan undvika själva länken och bara klistra in samma formel som står i cellen man kopierat? Har prövat alla inklistringsalternativ utan att lyckas.
  5. Antag att man i första kolumnen skriver olika typer av fruktträd t ex äpplen, Päron och i andra kolumnen skriver olika typer t ex astrakan, greve Molke. Därefter skapar man en Pivotabell (med antalsuppgifter) samt ett AutoFilter så kommer det fram en intressant skillnad. Om man i AutoFiltret väljer Äpple i första kolumnen försvinner alla äppelsorter i rullgardinen på den andra kolumnen. I en Pivottabell är det inte så. Där kan man fortfarande i kolumn 2:s rullgardin välja greve Molke fast det är ett päron. Detta får till följd att en oaktsam användare som väljer i en Pivottabells rullgardiner kan tro att han ser utfallet som inkluderar Greve Molke fast dessa siffror inte är med (för i presentationen finns dessa värdena för Greve Molke inte med). Går det att få Pivottabellens rullgardiner att fungera som AutoFiltrets dvs att icke längre valbara alternativ försvinner ur rullgardinen?
  6. short

    AutoFilter

    Glömde det i hastigheten och glädjen att ha fått till det. Fixat nu. TACK
  7. short

    AutoFilter

    Sub AA() Dim af As AutoFilter Dim v As Filter Dim a As Integer Dim i As Integer Dim k As Integer Set af = Sheets("Blad1").AutoFilter For i = 1 To 4 With af.Filters(i) If .On = False Then Cells(20, 5 + i) = 0 Else a = af.Filters(i).Count Set v = ActiveSheet.AutoFilter.Filters(i) If a = 2 Then Cells(20, 5 + i) = v.Criteria1 Cells(21, 5 + i) = v.Criteria2 Else If a = 1 Then Cells(20, 5 + i) = v.Criteria1 Else For k = 0 To a - 1 Cells(20 + k, 5 + i) = v.Criteria1(k + 1) Next k End If End If End If End With Next i End Sub Jag fick just ihop det själv. Ovanstående kod verkar fungera.
  8. short

    AutoFilter

    Det börjar närma sig - kanske. Din testrutin fungerar. Jag behöver dock läsa vilka värden AutoFiltret är inställt på. af.Filters(1) innehåller fem värden i min test men vilka är de? Jag försöker läsa innehållet i af.Filters men det går inte. Jag har försökt med Criteria1 men det går inte heller.
  9. short

    AutoFilter

    Sub nn() Dim v As Filter Dim i As Integer If ActiveSheet.AutoFilterMode Then On Error Resume Next For i = 1 To 4 If ActiveSheet.AutoFilter.Filters(i).On Then Set v = ActiveSheet.AutoFilter.Filters(i) Cells(20, 5 + i) = v.Criteria1 Cells(21, 5 + i) = v.Criteria2 Cells(22, 5 + i) = v.Criteria3 Cells(23, 5 + i) = v.Criteria4 Cells(24, 5 + i) = v.Criteria5 Else Cells(20, 5 + i) = 0 End If Next i On Error GoTo 0 End If End Sub Jag har försökt med ovanstående men jag får bara ut två kriterier per kolumn även om det finns flera. Det verkar som om det vid fler än två kriterier så lagras det en Array i Criteria1. Frågan är hur jag kommer åt detta (dvs om så är fallet).
  10. short

    AutoFilter

    Jag testade med filter i två kolumner Sub nn() Dim v As Filter If ActiveSheet.AutoFilterMode Then Set v = ActiveSheet.AutoFilter.Filters(1) Debug.Print v.Criteria1 Debug.Print v.Criteria2 Debug.Print v.Criteria3 Set v = ActiveSheet.AutoFilter.Filters(2) Debug.Print v.Criteria1 End If End Sub Om jag för filter1 har två urvalskriteria så får jag programfel när jag försöker få tag på det tredje (som inte finns-jag vet ju inte hur många som finns). Jag får också programfel om jag för ett filter tillåter alla (dvs inte har filtrerat bort några värden). Hur undviker jag detta?
  11. short

    AutoFilter

    Jag har fyra kolumner med data där varje kolumn har ett AutoFilter. Jag behöver ta reda på hur varje AutoFilter är inställt. Jag har försökt med hjälp av AutoFilter.Property men jag lyckas inte få till det.
  12. Nu är jag i luften igen. Tack! Man får tydligen inte ha klena nerver.
  13. Thoshiba Satellite L50-B-1T2 Windows 8.1 Jag upptäckte nyss att program som jag skrivit i den nya datorn och som innehåller ActiveX-kontroller inte heller fungerar. Mig veterligt har jag inte rört några inställningar. Vad kan ha inträffat???
  14. I samband med datorbyte har jag förlorat möjligheten att använda ActiveX-kontroller. Jag får meddelandet "Objektet kan inte infogas". Det ställer till problem med äldre tillämpningar som innehåller ActiveX-kontroller som nu inte fungerar. Jag har ett dimmigt minne att man ska ställa in något för att kunna använda ActiveX men jag har glömt hur. Hjälp!!
  15. Mja det var ett misslyckat skämt. När jag utökade flytten till att omfatta den tredubbla mängden "flyttar" och således borde ha tagit närmare tre minuter att köra med min första kod så blev körtiden efter att ha följd dina råd sju sekunder!!!!
×
×
  • Skapa nytt...