Avatar billede dkhb Mester
21. februar 2001 - 10:43 Der er 6 kommentarer og
1 løsning

Autofyld med vba.

Hvad skal jeg skrive for at formlen automatisk kopier sig til resten af arket??

Det går galt når jeg indtaster mere data i arket end til eks. G4.
Sub Opdater()
    Range(\"g2\").Select
    Selection.AutoFill Destination:=Range(\"g2:g4\")
    Range(\"g2\").Select
    Range(\"a2\").Select
    Selection.AutoFill Destination:=Range(\"a2:\")
    Selection.Sort Key1:=Range(\"a2\"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
21. februar 2001 - 11:03 #1
Hvis du har din formel i f.eks. g2 og vil have den til Range(\"g2:g4\") kan det gøres således.

Sub Opdager()
  Range(\"g2:g4\").Select
  Selection.FillDown
End Sub

Jeg tror, at jeg har en fornemmelse af, hvad du vil, men jeg er ikke sikker...!
Du har nogle data i kolonnerne A->F og en formel i G (right?)
Du fylder flere data i A->F og vil gerne have kopieret formler i G kolonnen, således er i G findes en formel for hver linie, som er udfyldt i A->F. Hvis det er rigtigt, så kan du lave denne lille ting. (Jeg går udfra, at du har formelen i G2.

Sub Opdater()
  Dim rCell As Range
  Dim iRow As Integer
  \'Finder ud af hvor mange rækker der er udfyldt
  For Each rCell in Worksheets(\"Ark1\").Range(\"A3:A10000\")
    If rCell = \"\" Then
      iRow = rCell.Row - 1   
      Exit for
    End If
  Next rCell

  \'Indsætter formler for alle rækker
  Range(\"G2:G\" & iRow).Select
  Selection.FillDown
  Range(\"A2\").Select
End Sub

God fornøjelse
Avatar billede dkhb Mester
22. februar 2001 - 14:37 #2
Det er helt rigtigt, sådan har jeg mine formler stående. Men når jeg skriver hvad du skriver, kopier den, den tekst jeg har stående i G1 ned i G2, og der sker ikke noget med resten af kollonen.
22. februar 2001 - 14:42 #3
Underligt - virker perfekt hos mig - jeg kan sende et eksempel - eller du kan sende mig din fil.

flemse@post3.tele.dk
22. februar 2001 - 16:07 #4
Ændre arknavnet så der peges på det rigtige ark !

Fra:
  For Each rCell In Worksheets(\"Ark1\").Range(\"A3:A10000\")

Til:
  For Each rCell In Worksheets(\"Eksamen på PC\").Range(\"A3:A10000\")

Mvh
Flemming
Avatar billede dkhb Mester
23. februar 2001 - 09:07 #5
TAk, nu virker det. Men det var ikke meningen at den også skulle kopier formateringen. Jeg har en vandret linie mellem række 1 og 2, den bliver nu også kopieret ned i B-kollonen.
23. februar 2001 - 17:22 #6
OK - prøv denne her

Dim rCell As Range
Dim iRow As Integer
Dim sFormel As String
    sFormel = Worksheets(\"Eksamen på PC\").Range(\"H3\").FormulaR1C1

    \'Finder ud af hvor mange rækker der er udfyldt
    For Each rCell In Worksheets(\"Eksamen på PC\").Range(\"A3:A10000\")
        If rCell = \"\" Then
            iRow = rCell.Row - 1
            Exit For
        End If
    Next rCell
 
    \'Indsætter formler for alle rækker
    For Each rCell In Worksheets(\"Eksamen på PC\").Range(\"H2:H\" & iRow)
        rCell.FormulaR1C1 = sFormel
    Next rCell

    \'Sortering
    Range(\"D2\").Select
    Selection.Sort Key1:=Range(\"D2\"), Order1:=xlAscending, Key2:=Range(\"C2\") _
        , Order2:=xlAscending, Key3:=Range(\"B2\"), Order3:=xlAscending, Header:= _
        xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
23. februar 2001 - 17:26 #7
eller blot denne her, som er lidt hurtigere !

Private Sub cmdopdater_Click()
Dim rCell As Range
Dim iRow As Integer
Dim sFormel As String
    sFormel = Worksheets(\"Eksamen på PC\").Range(\"H3\").FormulaR1C1

    \'Finder ud af hvor mange rækker der er udfyldt
    For Each rCell In Worksheets(\"Eksamen på PC\").Range(\"A4:A10000\")
        If rCell <> \"\" Then
            rCell.Offset(0, 7).FormulaR1C1 = sFormel
        Else
            Exit For
        End If
    Next rCell
 
    \'Sortering
    Range(\"D2\").Select
    Selection.Sort Key1:=Range(\"D2\"), Order1:=xlAscending, Key2:=Range(\"C2\") _
        , Order2:=xlAscending, Key3:=Range(\"B2\"), Order3:=xlAscending, Header:= _
        xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
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