Avatar billede hede98 Nybegynder
27. juli 2010 - 09:59 Der er 12 kommentarer

Tilbudssystem - m. link til word

Hej

Jeg har et word dokument, som indeholder vores virksomheds kontrakt samt de produkter min kunde ønsker at købe.
Idag sidder jeg og skriver disse produkter ind, for hver gang en kunde ønsker at købe dem. Jeg vil gerne have det lavet sådan at når jeg kommer til afsnittet med produkter så kan jeg åbne en excel fil, hvor jeg på forsiden kan vælge mine produkter i en dropdown boks, som så henter tekst og pris frem (virker allerede) De produkter jeg har valgt skal så overflyttes til word med en total under det sidste produkt der er valgt. Men det er meget forskelligt om jeg har 3 eller 10 produkter så min total kan ikke sættes fast ind, men skal automatisk komme lige under det sidste punkt!

F.eks. 1:
Pordukt 1 - tekst - antal - pris
Produkt 2 - tekst - antal - pris
Total.......................Pris

F.eks. 2:
Pordukt 1 - tekst - antal - pris
Produkt 2 - tekst - antal - pris
Pordukt 3 - tekst - antal - pris
Produkt 4 - tekst - antal - pris
Total.......................Pris
Avatar billede supertekst Ekspert
27. juli 2010 - 10:20 #1
Du kan få konstrueret det sådan - at du direkte fra Word kan se varerne fra Excel og vælge disse - uden at Excel åbnes på nofrmal vis. Alt via VBA..
Avatar billede hede98 Nybegynder
27. juli 2010 - 10:25 #2
Hvad så med min total?
Har du et eksempel eller kan du lave det?, så jeg kan komme videre!

På forhånd mange tak.
Avatar billede supertekst Ekspert
27. juli 2010 - 13:01 #3
Hvor meget kender du til VBA?
Avatar billede hede98 Nybegynder
27. juli 2010 - 13:53 #4
ikke ret meget, men hvis jeg se et lille eksemple, så tror jeg godt jeg selv kan tilrette det
Avatar billede supertekst Ekspert
27. juli 2010 - 14:01 #5
Ok - prøver at finde et eksempel - vender tilbage..
Avatar billede hede98 Nybegynder
27. juli 2010 - 14:05 #6
mange tak, du må gerne sende excel og word til hh@henrikhedegaard.dk
Avatar billede panebb Novice
28. juli 2010 - 07:42 #7
jeg arbejder med samme problemstilling og er meget interesseret i at se resultat/eksempel - hvis det er muligt
Avatar billede hede98 Nybegynder
30. juli 2010 - 20:38 #8
Hej Panebb
Jeg har ikke modtaget noget, men når jeg gør, så får du det selvfølgelig at se.
Avatar billede supertekst Ekspert
31. juli 2010 - 14:42 #9
VBA-kode i Userform (Word dokumentet), hvori nr, tekst og pris fra Excel-arket vises og kan vælges. Efter valg overføres det til dokumentet og beregnet total ligeledes.

Const minH = 42
Const maxH = 198

Const produktFilSti = "C:\Documents and Settings\pb.KHNBPB\Skrivebord\HEDE\"    'tilpasses
Const produktFilNavn = "produkter.xlsx"                                        'tilpasses

Dim produktXls As Object, ræk, total As Single
Private Sub CommandButton1_Click()                  'skift mellem maksimer/minimer userform
    If Me.Height = minH Then
        Me.Height = maxH
    Else
        Me.Height = minH
    End If
End Sub
Private Sub CommandButton2_Click()                  'overfør valgte produkter til word
Dim ix As Integer
    total = 0
   
    For ix = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(ix) = True Then
            overførTilWord ix
        End If
    Next ix
   
    If Me.ListBox1.ListCount > 0 Then
        overførTotalTilWord
    End If
   
    Unload UserForm1
End Sub
Private Sub overførTilWord(ix)
Dim nr As String, tekst As String, pris As String
    With Me.ListBox1
        nr = .List(ix)
        tekst = .List(ix, 1)
        pris = Format(.List(ix, 2), "##,##0.00")
    End With

    With Selection
        .TypeText Text:=nr & vbTab & tekst & vbTab & pris
        .TypeParagraph
    End With
   
    total = total + pris
End Sub
Private Sub overførTotalTilWord()
    With Selection
        .TypeText Text:="Total" & vbTab & vbTab & Format(total, "##,##0.00")
        .TypeParagraph
    End With
End Sub
Private Sub UserForm_activate()
    Me.Height = minH                                'minimeret højde
    Me.ListBox1.ColumnCount = 3
    Me.ListBox1.ColumnWidths = "20,225,25"
   
    åbnProduktFil
    visprodukter
    lukProduktFil
End Sub
Private Sub åbnProduktFil()
    Set produktXls = CreateObject("Excel.Application")
    With produktXls
        .Visible = False
        .Workbooks.Open produktFilSti & produktFilNavn
    End With
End Sub
Private Sub lukProduktFil()
    produktXls.Application.Quit
    Set produktXls = Nothing
End Sub
Private Sub visprodukter()

    With produktXls.sheets(1)
        For ræk = 2 To 65000
Rem afslutter, når tom celle i A mødes
            If .Range("A" & CStr(ræk)) = "" Then
                Exit Sub
            Else
                Me.ListBox1.AddItem .Range("A" & CStr(ræk))                                'nr
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = .Range("B" & CStr(ræk))    'tekst
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Format(.Range("C" & CStr(ræk)), "#,##0.00")  'pris
            End If
        Next ræk
    End With
End Sub
Avatar billede supertekst Ekspert
16. august 2010 - 09:32 #10
Noget nyt?
Avatar billede supertekst Ekspert
04. november 2010 - 16:09 #11
Måske skulle dette spm. afsluttes?
Avatar billede info-ebud-dk Nybegynder
02. februar 2011 - 20:44 #12
Hej Hede98

Det du ønsker at gøre er temmelig vanskeligt i Word og Excel, netop på grund af den varierende struktur eller størrelse på et tilbud. Der skal nødvendigvis en del kodning til. Excel er fint til gentagne beregninger med den samme "struktur" på problemet.

Prøv at kigge på www.ebud.dk. Det er netop et tilbudssystem, lavet af en håndværker og en udvikler (undertegnede) i fællesskab. Det kan nok opfylde dit behov.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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