Avatar billede excel123 Nybegynder
01. juni 2008 - 23:01 Der er 3 kommentarer og
1 løsning

Forklaring af makro

Jeg har fået makro af staal84 http://www.eksperten.dk/spm/833066
som virker fint. Jeg har prøvet at forstår hvordan makro virker men jeg forstår det ikke helt.
Er det rigtigt at han bruger 2 nedenstående linier til at finde sidste celle som ikke er tom  i kolonne B?
For i = 1 To Sheets("ark1").Range("B250").End(xlUp).Row
Cells(i, 2).Select
Hvis det er rigtigt så forstår jeg ikke at han bruger """TælM = TælM + 1""". Burde makro ikke tælle  """TælM = TælM - 1""".
Tæller makroen fra celle b250 mod B1 eller omvendt? Hvordan styrer man det?
Jeg forstår heller ikke "Range("A" & TælM + 1).Value"
If ActiveCell.Value = "Mandag" Then
            TælM = TælM + 1
            MAN = ActiveCell.Offset(0, -1).Value
            Sheets("ark2").Range("A" & TælM + 1).Value = MAN
        End If
Avatar billede jkrons Professor
02. juni 2008 - 08:13 #1
Din første antagelse er korrekt.  For i = 1 to betyder at der tælles "oppefra" indtil sidste række nås. Derfor TælM = TælM + 1.

Range("A" & TælM + 1).Value" placerer værdien i en række, der er 1 højere end den TælM har, altså den næste "ledige".
Avatar billede staal84 Nybegynder
02. juni 2008 - 14:38 #2
Ja, første del betyder, at der tælles oppe fra og ned til sidste udfyldte række.
Dette er knyttet til dit "ark 1". Den starter i cellen B1 og går en celle ned (next), indtil der ikke er udfyldt flere celler indfor det valgte interval.

TælM, TælT og TælO er knyttet til dit "Ark2".
Hver gang der er fundet en "mandag" på ark 1 lægges der 1 til din TælM.

TælM bruges til at angive den række vi indsætter den fundne værdi i på ark 2. Hver gang du har fundet en "mandag" forøges variablen med 1, så den næste "mandag" indsættes i cellen under (ellers ville den bare overskrive værdien  og du ville ende med kun at have sidste "mandag"'s værdi skrevet på ark 2).

TælM er en variable vi har fundet på, og derfor har den ingen værdi. (Værdi = 0)

Første mandag:
TælM = TælM +1 (værdi = 1)
Vi indsætter værdien i Kolonne A, Række TælM + 1  (Altså cellen A2)

Anden mandag:
TælM = TælM +1 (værdi = 2)
Vi indsætter værdien i Kolonne A, Række TælM + 1  (Altså cellen A3)

TælM er altså bare en værdi og sammensat med et kolonne bogstav har du et range.
Avatar billede excel123 Nybegynder
03. juni 2008 - 02:29 #3
Tak for svar begge to!
Jeg har bare et spørgsmål mere. Hvis jeg skal starte i at skrive  i cellen A3 istedet for A2 så hjælper det ikke at skrive TælM = TælM +2. Hvordan løses det?
Send  et svar!
Avatar billede staal84 Nybegynder
03. juni 2008 - 09:19 #4
Indsæt disse efter Dim TælO as Integer:

TælM = 1
TælT = 1
TælO = 1

Jeg tror ikke, det er nødvendigt at oprette et nyt spørgsmål, hvis du blot ønsker at få forklaret en 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