Avatar billede lempert75 Nybegynder
12. maj 2009 - 23:43 Der er 4 kommentarer og
1 løsning

Løkke i regneark

Hej,

Jeg har aldrig modtaget undervisning i VBA-programmering, så den lille smule jeg kan har jeg lært ved at prøve mig frem og finde svar herinde på eksperten.

Det er lykkedes at lave en meget simpel løkke i en makro:

Den starter sådan her:
Dim Counter
    Counter = 0
    Do
    Counter = Counter + 1

Så kommer der en masse som excel skal gøre herunder spørge ned i en ekstern database.

Den slutter af med:

Loop Until Counter = 44186

1. Hver gang jeg skal køre den går jeg ind i makroen og ændrer 44186 manuelt til den mængde af linier jeg denne gang har fodret den med. Kan jeg ude fra excel arket skrive eksempelvis 44186 i en celle, således at man ikke skal ind i makroen og ændre den?
2. Kan man kode noget i makroen, således man kan se hvor langt den er nået? Så der fremkom en boks hvor der står "Har behandlet nummer 4.581 af 44186?
3. Jeg plejer at sætte den til at koge kl. 22 om aftenen. De sidste par gange har den ikke været færdig næste morgen når jeg møder ind. Kan man skrive en kodestump ind så man kan "breake" den og den så bare har det data hvor den nu måtte være nået til og så kan jeg sætte igang næste aften?

Jeg håber jeg kan få et svar "for dummies" da jeg som nævnt indledningsvis er meget jomfruelig ud i makroer...
Avatar billede lempert75 Nybegynder
13. maj 2009 - 00:31 #1
Jeg skal nok give flere point. Var ikke obs på at man kunne graduere point-tildeling...
Avatar billede kabbak Professor
13. maj 2009 - 08:21 #2
Dim Antal As Long, Counter As Long
Antal = Val(InputBox("Indtast antal rækker", "Antal", "44186")) ' spørger om antal

    Counter = 0
    Do
    DoEvents ' gør at du kan stoppe koden ned CTRL +BREAK
    Counter = Counter + 1
Application.StatusBar = "Behandlet " & Counter & " af " & Antal ' skriver i statuslinjen nederst
Loop Until Counter = Antal
Avatar billede jkrons Professor
13. maj 2009 - 16:40 #3
Eller

    Dim Antal As Long, Counter As Long
    Counter = 0
    Do
        DoEvents ' gør at du kan stoppe koden ned CTRL +BREAK
        ActiveCell.Value = ActiveCell.Value + 1
        Counter = Counter + 1
        Application.StatusBar = "Behandlet " & Counter & " af " & _
            ActiveSheet.Range("a1").Value
    Loop Until Counter = ActiveSheet.Range("a1").Value
    Application.StatusBar = False

Hvis du faktisk gerne vil kinne skrive antallet i regnearket. Ret A1 til den celle, hvor du vil skrive det. Den sidste linje !resetter" statuslinjen, når koden er færdig.
Avatar billede lempert75 Nybegynder
13. maj 2009 - 22:50 #4
I er fantastiske! Det var lige det der skulle til...
Jeg har uddelt 30 point til kabbak, hvordan uddeler jeg nogen til jkrons? Hvor mange point er det rimeligt at uddele? I må sige til hvis I skal have flere
Avatar billede jkrons Professor
13. maj 2009 - 22:56 #5
Du behøver ikke at give point til mig. Jeg byggede bare videre på kabbaks løsning.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester