Avatar billede rashid Praktikant
20. maj 2009 - 13:40 Der er 7 kommentarer og
1 løsning

Organisere et regnark

jeg er sikker på at det er foretaget tidligere, men jeg spørger igen da jeg ikke har kunnet finde det.
Jeg har et ark med "rådata"
data består af en række felter, hvor et af felterne hedder "TYPE". Dette kan være 0,03,04 og 99
Jeg ønsker hjælp til en makro, der på bagrund af "TYPE" kan organisere(kopiere data) data i forskellige ark -> et ark benævnt 0, et ark benævnt 03 etc.

er det til at have med at gøre ??
Avatar billede supertekst Ekspert
20. maj 2009 - 13:53 #1
Ja - men spørgsmål:

- er arkene 0,03 o.s.v. oprettet i forvejen?
- arket med rådata - hedder dette også "rådata"?
- er det hele rækken, der skal kopieres til det "respektive ark"?
Avatar billede rashid Praktikant
20. maj 2009 - 13:56 #2
a) arkene er ikke oprettede i forvejen, så ud fra typen skal disse oprettes
b) ja, arket har jeg valgt at kalde rådata
c) det er hele rækken der skal kopieres.

håber det kaster lidt lys over det :-)
Avatar billede supertekst Ekspert
20. maj 2009 - 14:32 #3
Ja - har konstrueret et system for et stykke tid siden, der har en problematik, der ligner.

Kan du læse & anvende VBA?
Avatar billede rashid Praktikant
20. maj 2009 - 14:43 #4
hej

Ja, jeg kan godt læse VBA kode ;-)... og anvende det.

takker for du vil kigge på det.
Avatar billede supertekst Ekspert
20. maj 2009 - 16:18 #5
Rem Koden anbringes "under" Rådata-ark
Rem ==================================
Const typeKolonne = "D"                            'Tilpasses
Dim råArk As Worksheet

Dim antalKolonner
Public Sub udførOrganisering()                      'Evt. forbind med knap
Dim typeNr, række

    Set råArk = ActiveWorkbook.Sheets("rådata")
    antalKolonner = ActiveCell.SpecialCells(xlLastCell).Column
   
    Application.ScreenUpdating = False
   
Rem traverser TYPE-kolonnen indtil blank
    For række = 2 To 65000
        Range(typeKolonne & CStr(række)).Select
       
        If Selection.Value <> "" Then
            typeNr = Selection.Value
Rem findes typeNr-fanen
            If findesTypeArk(typeNr) = False Then
                opretTypeArk typeNr
            End If
           
            indsætItypeArk række, typeNr
        Else
            Exit For
        End If
    Next række

    Application.ScreenUpdating = True
   
    MsgBox ("Gennemløb afsluttet")
End Sub
Private Function findesTypeArk(nr)
Dim ark
    For Each ark In ActiveWorkbook.Sheets
        If ark.Name = nr Then
            findesTypeArk = True
            Exit Function
        End If
    Next
   
    findesTypeArk = False
End Function
Private Sub opretTypeArk(nr)
    With ActiveWorkbook
        .Sheets.Add after:=Sheets(ActiveWorkbook.Sheets.Count)
        .Sheets(.Sheets.Count).Name = nr
    End With
End Sub
Private Sub indsætItypeArk(række, typeNr)
Dim ræk, sArk

    Set sArk = ActiveWorkbook.Sheets(typeNr)
    sArk.Activate

Rem find første tome række
    With sArk
        For r = 1 To 65000
            If .Range("A" + CStr(r)) = "" Then
                ræk = r
                Exit For
            End If
        Next r
                   
        For kol = 1 To antalKolonner
            .Cells(ræk, kol) = råArk.Cells(række, kol)
        Next kol
   
        .Columns.AutoFit
    End With
   
    råArk.Activate
End Sub
Avatar billede supertekst Ekspert
20. maj 2009 - 16:19 #6
I givet fald kan hele filen sendes til dig - mail-adr. under min profil
Avatar billede supertekst Ekspert
25. maj 2009 - 09:07 #7
Hvis "TypeNr" er numerisk:

        If Selection.Value <> "" Then
            typeNr = cstr(Selection.Value)  '<----------
Rem findes typeNr-fanen
            If findesTypeArk(typeNr) = False Then
                opretTypeArk typeNr
            End If
Avatar billede rashid Praktikant
29. maj 2009 - 13:33 #8
supermange tak 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

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