Avatar billede Tor4Every1 Juniormester
25. marts 2021 - 14:14 Der er 6 kommentarer

Indsætning af linje med Formel fra ovenstående..(VBA)

Hej Alle, 

Jeg er igang med at lave en kode til at kunne indsætte en række med hjælp fra en box, hvor man trykker hvilket række nummer det skal indsætte en ny række i ...  dette skal helst gøres med formlen fra under eller oven af ..  så den husker alle formler hver gang.. 

Sub Tilføj_linje_tilbud()
'Opretter en ny linje til sælger på arket Tømrer.
'MGB oprettet den 24.03.2021

Dim myInput As Variant
Dim rækkenummer As Integer

myInput = InputBox("Indtast rækkenummer for, hvor ny linje skal være f.eks. '79'." & vbNewLine & vbNewLine & "Min. 4 og maks. 365.", "Tilføj ny linje")

    'Tjekker om input er et tal.
    If Not IsNumeric(myInput) Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer. Prøv evt. igen."
        Exit Sub
    Else
        rækkenummer = CInt(myInput)
    End If
   
    'Tjekker om input er et tal i det rigtige interval.
    If Not rækkenummer <= 365 And rækkenummer > 36 Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer i intervallet 4-365. Prøv evt. igen."
        Exit Sub
    End If
 
    Rows(rækkenummer).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

End Sub


Det hele gør den her,,  dog kan jeg ikke få den til at autofill  fra linjen ...  kan nogen hjælpe med dette sikkert simple problem ?


På forhånd tak..
Avatar billede ebea Ekspert
25. marts 2021 - 17:29 #1
Hvad er det du skal auto fylde, hvor, og fra??
Og så virker din check af om hvor den indsætter linjen, ikke. Du kan indsætte hvor du vil.
Avatar billede Tor4Every1 Juniormester
26. marts 2021 - 06:52 #2
Hej Ebea,

Det hele rækken jeg skal indsætte fra formlen oppe over eller neden under ...
Avatar billede Tor4Every1 Juniormester
26. marts 2021 - 07:07 #3
burde den gøre nu :)

myInput = InputBox("Indtast rækkenummer for, hvor ny linje skal være f.eks. '79'." & vbNewLine & vbNewLine & "Min. 37 og maks. 365.", "Tilføj ny linje")

    'Tjekker om input er et tal.
    If Not IsNumeric(myInput) Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer. Prøv evt. igen."
        Exit Sub
    Else
        rækkenummer = CInt(myInput)
    End If
   
    'Tjekker om input er et tal i det rigtige interval.
    If Not rækkenummer = 365 And rækkenummer < 36 Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer i intervallet 36-365. Prøv evt. igen."
        Exit Sub
    End If
Avatar billede Tor4Every1 Juniormester
26. marts 2021 - 07:12 #4
men så virkede den kun på mindre end de 37,  hvis jeg gør sådan her..  så kan jeg bruge begge tal.. 

Dim myInput As Variant
Dim rækkenummer As Integer

myInput = InputBox("Indtast rækkenummer for, hvor ny linje skal være f.eks. '79'." & vbNewLine & vbNewLine & "Min. 37 og maks. 365.", "Tilføj ny linje")

    'Tjekker om input er et tal.
    If Not IsNumeric(myInput) Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer. Prøv evt. igen."
        Exit Sub
    Else
        rækkenummer = CInt(myInput)
    End If
   
    'Tjekker om input er et tal i det rigtige interval.
    If Not rækkenummer = 365 And rækkenummer < 36 Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer i intervallet 36-365. Prøv evt. igen."
        Exit Sub
    End If

    'Tjekker om input er et tal i det rigtige interval.
    If Not rækkenummer = 365 And rækkenummer > 365 Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer i intervallet 36-365. Prøv evt. igen."
        Exit Sub
    End If
Avatar billede Tor4Every1 Juniormester
26. marts 2021 - 07:25 #5
Dim myInput As Variant
Dim rækkenummer As Integer

myInput = InputBox("Indtast rækkenummer for, hvor ny linje skal være f.eks. '79'." & vbNewLine & vbNewLine & "Min. 4 og maks. 666.", "Tilføj ny linje")

    'Tjekker om input er et tal.
    If Not IsNumeric(myInput) Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer. Prøv evt. igen."
        Exit Sub
    Else
        rækkenummer = CInt(myInput)
    End If
   
    'Tjekker om input er et tal i det rigtige interval.
    If Not rækkenummer = 666 And rækkenummer < 4 Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer i intervallet 4-666. Prøv evt. igen."
        Exit Sub
    End If

    'Tjekker om input er et tal i det rigtige interval.
    If Not rækkenummer = 666 And rækkenummer > 666 Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer i intervallet 4-666. Prøv evt. igen."
        Exit Sub
    End If
   
   
    Rows(rækkenummer).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range(rækkenummer).Select
    Selection.AutoFill Destination:=Range(rækkenummer), Type:=xlFillDefault



End Sub
Avatar billede Tor4Every1 Juniormester
26. marts 2021 - 08:16 #6
Hej Ebea,

Jeg tror jeg løste problematikken på denne måde.. 

(dog har jeg et problem, hvis jeg sletter en helt Row, kan den ikke køre efterfølgende)


Sub Tilføj_linje_tilbud111()
'Opretter en ny linje til sælger på arket Tilbud.
'MGB 26.03.2021


Dim myInput As Variant
Dim rækkenummer As Integer

myInput = InputBox("Indtast rækkenummer for, hvor ny linje skal være f.eks. '79'." & vbNewLine & vbNewLine & "Min. 4 og maks. 666.", "Tilføj ny linje")

    'Tjekker om input er et tal.
    If Not IsNumeric(myInput) Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer. Prøv evt. igen."
        Exit Sub
    Else
        rækkenummer = CInt(myInput)
    End If
   
    'Tjekker om input er et tal i det rigtige interval.
    If Not rækkenummer = 666 And rækkenummer < 4 Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer i intervallet 4-666. Prøv evt. igen."
        Exit Sub
    End If

    'Tjekker om input er et tal i det rigtige interval.
    If Not rækkenummer = 666 And rækkenummer > 666 Then
        MsgBox "Fejl: Du skal indtaste et rækkenummer i intervallet 4-666. Prøv evt. igen."
        Exit Sub
    End If
   
   
    Rows(rækkenummer).Select
    Selection.Copy
    Selection.Insert Shift:=xlDown

Range(Cells(rækkenummer, 1), Cells(rækkenummer, 3)).Select
Selection.Clear

Range(Cells(rækkenummer, 8), Cells(rækkenummer, 9)).Select
Selection.Clear

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

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