Avatar billede Uni-Food Nybegynder
01. november 2010 - 11:06 Der er 6 kommentarer og
1 løsning

Automatisere indsætning af rækker indeholdende rullelister, formler og referencer via knap

I en regnebog har jeg oprettet et ark til beregning af pris på vores produkter. Produkterne kan have varierende bredde, længde og tilbehør. Priser på disse hentes via rulle lister, Lopslag og hvis formler fra min prisliste.
Jeg bruger det først omtalte ark som økonomisk overblik i mit tilbudsmateriale (word dokument).
Jeg har tre forskellige produkt typer og dermed tre forskellige grafiske opstillinger. Typisk indeholder mine projekter adskillige positioner, som alle skal prissættes. For nuværende kopierer jeg de relevante rækker og indsætter dem hvor jeg skal bruge dem.
Er det muligt at lave tre knapper, en til hver af mine tre produkttyper, sådan at når man trykker på denne knap, vil den  automatisk indsætter de nødvendige rækker for en given produkttype?
Avatar billede supertekst Ekspert
01. november 2010 - 11:23 #1
Det lyder muligt. Kunne du sende en kopi af filen / bygge en lille model, der illustrerer det ønskede.

@-adresse under min profil.

og så velkommen til...
Avatar billede finb Ekspert
01. november 2010 - 11:51 #2
Nej, upload, så andre også kan se opgaven !
Avatar billede supertekst Ekspert
11. november 2010 - 09:44 #3
Const totalTekst = "Total"

Dim antalRækker As Long
Dim totalStartRække As Long
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If Range("B" & ActiveCell.Row) = "" Then
        indsætProdukt "P1", ActiveCell.Row
    Else
        Message_1
    End If
End Sub
Private Sub CommandButton2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If Range("B" & ActiveCell.Row) = "" Then
        indsætProdukt "P2", ActiveCell.Row
    Else
        Message_1
    End If
End Sub
Private Sub CommandButton3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If Range("B" & ActiveCell.Row) = "" Then
        indsætProdukt "P3", ActiveCell.Row
    Else
        Message_1
    End If
End Sub
Private Sub CommandButton1_Click()
    hentProduktKalk "P1"
End Sub
Private Sub CommandButton2_Click()
    hentProduktKalk "P2"
End Sub
Private Sub CommandButton3_Click()
    hentProduktKalk "P3"
End Sub
Private Sub hentProduktKalk(produkt)
    antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
   
    totalStartRække = findTotalRække(totalUdstyrTekst)
    ledigRække = findLedigRække(totalStartRække)
   
    indsætProdukt produkt, ledigRække
End Sub
Private Function findLedigRække(sidsteRække)
    For ræk = sidsteRække To 1 Step -1
        If Range("B" & ræk) = "" Then
            findLedigRække = ræk
            Exit Function
        End If
    Next ræk
End Function
Private Function findTotalRække(tekst)
    With ActiveSheet.Range("B4:B" & antalRækker)
        Set c = .Find(tekst, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findTotalRække = c.Row
        Else
            findTotalRække = 0
        End If
    End With
End Function
Private Sub indsætProdukt(produktType, række)
Dim antalRæk As Long, antalKol As Long
    ActiveWorkbook.Sheets(produktType).Select
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
    antalKol = ActiveCell.SpecialCells(xlLastCell).Column
   
    ActiveSheet.Range("A1:L" & antalRæk).Select
    Selection.Copy
   
    Sheets("kalkulation").Select
    ActiveSheet.Range("A" & række).Select
    Selection.Insert Shift:=xlDown
   
    Application.CutCopyMode = False
End Sub
Private Sub Message_1()
        MsgBox ("Marker en celle i tom række")
End Sub
Avatar billede Uni-Food Nybegynder
10. december 2010 - 13:50 #4
Det virker som ønsket.
Avatar billede supertekst Ekspert
10. december 2010 - 14:02 #5
Tak og god jul..
Avatar billede Uni-Food Nybegynder
10. december 2010 - 14:06 #6
Tak, og i lige måde, jeg beklager den lange ventetid, er der tildelt point?
Erkendtligheden ikke glemt.
Avatar billede supertekst Ekspert
10. december 2010 - 14:26 #7
Ok - der er også en verden udenfor E.

Nej ingen points endnu - du skal accepter mit svar i #3 - så sker det.
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
Kurser inden for grundlæggende programmering

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