Avatar billede rodding Juniormester
03. februar 2001 - 19:03 Der er 12 kommentarer og
1 løsning

Autokopier rækker til et andet ark - Excel.

Jeg håber på en macro? der kan udføre følgende.

Jeg har et markeret område. Jeg vil gerne at rækkerne hvor kolonne ?? indeholder en bestemt værdi kopieres til et andet ark og placeres i næste ledige række i en bestemt område.

Hilsen Rodding
Avatar billede thue Nybegynder
04. februar 2001 - 00:09 #1
Du skal bare bruge funktionen \'hvis\'

Eksempel:
=HVIS(Ark1!A1>2;SAND;FALSK)

Håber det virker...

Venligst
Thue
04. februar 2001 - 12:35 #2
Hej Rodding

Det kunne være noget lignende dette :

Sub CopyValues()
Dim rCell As Range
Dim sValue As String
Dim rCell2 As Range

    sValue = \"VærdiJegSkalFinde\"
    For Each rCell In Worksheets(\"Ark1\").Range(\"A1:A30\")
        If rCell.Value = sValue Then
            rCell.EntireRow.Copy
            For Each rCell2 In Worksheets(\"Ark2\").Range(\"A1:A10000\")
                If rCell2.Value = \"\" Then
                    rCell2.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
                        False, Transpose:=False
                    Exit For
                End If
            Next rCell2
        End If
    Next rCell
End Sub
Avatar billede rodding Juniormester
04. februar 2001 - 12:43 #3
Hej Thue.

Jeg ved ikke rigtigt - eller også er det ikke sevet ind.

Hvis jeg har et område på ark1 fra A5..H175, hvor jeg ønsker at alle rækker, hvor kolonne
H indeholder ex. navnet \"Fidelia\", skal kopieres til Ark2. Hvis der findes 5 rækker med
\"Fidelia\" spredt på Ark1 skal disse gerne blive placeret i Ark2 fra ex. pos. A3 og 5 rækker
ned.

04. februar 2001 - 12:50 #4
Her løbes igennem
Her løbes der igennem kolonne H for \"Fidelia\" og hele rækken kopieres, hvorefter det løbes nedad i ark2 efter første ledige celle som er blank. Godt
Nu smutter den tilbage til ark1, for at finde næste celle med \"Fidelia\" osv.

Sub CopyValues()
Dim rCell As Range
Dim sValue As String
Dim rCell2 As Range

    sValue = \"Fidelia\"

    For Each rCell In Worksheets(\"Ark1\").Range(\"H5:H175\")
        If rCell.Value = sValue Then
            rCell.EntireRow.Copy
            For Each rCell2 In Worksheets(\"Ark2\").Range(\"A1:A10000\")
                If rCell2.Value = \"\" Then
                    rCell2.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
                        False, Transpose:=False
                    Exit For
                End If
            Next rCell2
        End If
    Next rCell
End Sub
Avatar billede rodding Juniormester
04. februar 2001 - 12:50 #5
Hej Flemming.

Det ser ud til at du løber med point\'erne.

Jeg er på vej ud af døren så jeg vender tilbage.
Avatar billede johs_j Novice
04. februar 2001 - 21:38 #6
I menuen Data er der et punkt der hedder Filter/Avanceret filter

Hvorfor ikke bruge denne funktion??
05. februar 2001 - 09:31 #7
eller data / sorter - men det er jo ikke pr. automatik, men hårdt manuelt arbejde.
Avatar billede rodding Juniormester
05. februar 2001 - 14:05 #8
Mer vil ha\' mer.

Flemming, din kode er ok, men før du scorer point, så lige et tillægsspørgsmål.

Hvis jeg nu ved at Kolonne H indeholder max 10 forskellige værdier(navne) og at de alle skal kopieres til eget ark. Ja så ville det jo være smart hvis koden selv finder de forskellige væredier, opretter div. ark (opkaldt efter værdien), samt udfører kopieringen.

Ja ja, det er jo bare hvis...
05. februar 2001 - 15:30 #9
nå så det vil mer !

Så prøv denne her - du skal dog helt manuelt oprette de max 10 forskellige ark, som skal benyttes, og give dem det HELT rigtige navn, for at makro\'en virker

Sub CopyValuesToSheets()
Dim rCell As Range
Dim sValue As String
Dim rCell2 As Range
    For Each rCell In Worksheets(\"Ark1\").Range(\"A1:A30\")
        sValue = rCell.Value
        rCell.EntireRow.Copy
        For Each rCell2 In Worksheets(sValue).Range(\"A1:A10000\")
            If rCell2.Value = \"\" Then
                rCell2.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
                    False, Transpose:=False
                Exit For
            End If
        Next rCell2
    Next rCell
End Sub
05. februar 2001 - 15:31 #10
Hov... du skal dog selv lige ændre
For Each rCell In Worksheets(\"Ark1\").Range(\"A1:A30\")
til:
For Each rCell In Worksheets(\"Ark1\").Range(\"H5:H175\")

Mvh
Flemming
05. februar 2001 - 19:31 #11
Den her kode virker lidt bedre - og så opretter og navngiver den automatisk nye ark.

God fornøjelse

Sub CopyValuesToSheets()
Dim rCell As Range
Dim sValue As String
Dim rCell2 As Range
    Application.ScreenUpdating = False
    For Each rCell In Worksheets(\"Ark1\").Range(\"H5:H175\")
        If rCell.Value = \"\" Then Exit For
        sValue = rCell.Value
        If SheetExists(sValue) = False Then
            Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
            Worksheets(Worksheets.Count).Name = sValue
        End If
        rCell.EntireRow.Copy
        For Each rCell2 In Worksheets(sValue).Range(\"A1:A10000\")
            If rCell2.Value = \"\" Then
                rCell2.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
                    False, Transpose:=False
                Exit For
            End If
        Next rCell2
    Next rCell
    Application.CutCopyMode = False
End Sub

Public Function SheetExists(SheetName As String) As Boolean
    On Error Resume Next
    SheetExists = ActiveWorkbook.Worksheets(SheetName).Index
End Function
Avatar billede rodding Juniormester
06. februar 2001 - 16:42 #12
Nu tror jeg at det kommer til at virke.
Mange tak.
06. februar 2001 - 17:56 #13
Velbekomme
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