Avatar billede webmaster-steel Nybegynder
16. maj 2007 - 15:15 Der er 6 kommentarer og
1 løsning

Macro til excel

Hej jeg skal bruge lidt hjælp til en lille opgave her.

Jeg har en masse data magen til det nedenfor
-1,43640    5,6    1
-1,43600    5,0    1
-1,43560    5,2    1
-1,43520    5,4    1
-1,43480    5,8    1
-1,43440    5,6    1
-1,43400    6,0    1
-1,43360    5,4    1
-1,43320    5,2    1
-1,43280    5,8    1
-1,43240    0,0    0
-1,43200    -0,2    0
-1,43160    -0,8    0
-1,43120    0,2    0
-1,43080    0,2    0
-1,43040    0,2    0
-1,43000    -0,4    0
-1,42960    0,2    0
-1,42920    -0,2    0
-1,42880    -0,6    0
-1,42840    0,0    0
-1,42800    -0,6    0
-1,42760    -1,2    0
-1,42720    0,4    0
-1,42680    0,0    0
-1,42640    -1,2    0
-1,42600    -0,8    0
-1,42560    -0,6    0
-1,42520    6,0    1
-1,42480    5,0    1
-1,42440    5,2    1
-1,42400    5,6    1
-1,42360    5,6    1
-1,42320    5,4    1
-1,42280    6,0    1
-1,42240    5,0    1
-1,42200    5,4    1
-1,42160    5,0    1
-1,42120    5,6    1
-1,42080    5,4    1

Som i nok kan se så længst til venstre skifter den mellem 1 og 0
Jeg vil gerne havde lavet en macro der fortæller mig hvor mange 1ér der er inden den skifter til 0, derefter vil jeg gerne vide hvor mange 0ér der er fra den skiftede til 0 til den skifeter til 1 igen, og derefter vil jeg igen gerne vide hvor mange 1ér der er fra den skiftede til 1 til den bliver 0 igen osv.
Jeg skal ikke bruge et tal der viser det totale antal af 1ér & 0ér men hvor mange der er imellem "skiftet"
Avatar billede kabbak Professor
16. maj 2007 - 19:14 #1
en makro

Sub TælTal()
    Dim Data As Variant, DataTal() As Variant, I As Long
    Dim antalTal As Integer
    Data = Range(Range("A1"), Range("C65536").End(xlUp).Offset(1, 0)) ' ret til hvor dine data står, her A, B og C kolonnen brugt
    ReDim DataTal(UBound(Data) - 1)
    antalTal = 1
      For I = 1 To UBound(Data) - 1
        If Data(I, 3) = Data(I + 1, 3) Then
            antalTal = antalTal + 1
        Else
            DataTal(I - 1) = antalTal
            antalTal = 1
        End If
    Next
   
    ' ret D til den kolonne den må skrive i, alt i kolonnen bliver overskrevet
    Range(Range("D1"), Range("D" & UBound(DataTal) + 1)) = WorksheetFunction.Transpose(DataTal)
End Sub
Avatar billede webmaster-steel Nybegynder
17. maj 2007 - 09:24 #2
Super lige hvad jeg manglede :)
Avatar billede kabbak Professor
17. maj 2007 - 10:42 #3
et svar ;-))
Avatar billede webmaster-steel Nybegynder
17. maj 2007 - 18:02 #4
Kan du måske hjælpe med at den rykker alle resultaterne sammen så der ikke er en masse tomme celler imellem :)
Avatar billede kabbak Professor
17. maj 2007 - 19:01 #5
vil det sige at du vil have dem i en kolonne, lige under hinanden, i stedet for ud for de forskellige serier ??
Avatar billede kabbak Professor
17. maj 2007 - 19:06 #6
Sub TælTal()
    Dim Data As Variant, DataTal() As Variant, I As Long
    Dim antalTal As Integer, X As Integer
    Data = Range(Range("A1"), Range("C65536").End(xlUp).Offset(1, 0))    ' ret til hvor dine data står, her A, B og C kolonnen brugt
    ReDim DataTal(UBound(Data) - 1)
    antalTal = 1
    For I = 1 To UBound(Data) - 1
        If Data(I, 3) = Data(I + 1, 3) Then
            antalTal = antalTal + 1
        Else
            DataTal(I - 1) = antalTal
            antalTal = 1
        End If
    Next

    ' ret D til den kolonne den må skrive i, alt i kolonnen bliver overskrevet
    X = 1    ' første rækkei i kolonnen
    For I = 0 To UBound(DataTal)
        If Not IsEmpty(DataTal(I)) Then
            Range("D" & X) = DataTal(I)
            X = X + 1
        End If
    Next
End Sub
Avatar billede webmaster-steel Nybegynder
18. maj 2007 - 08:44 #7
Hatten a det er lige hvad jeg skulle bruge, takker mange gange for hjælpen...
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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