03. januar 2007 - 19:31Der er
12 kommentarer og 1 løsning
Lopslag i excel skal overføres til word
Jeg har en medlemsliste stående i excel. Lad os kalde det dok1.xls
Kan det lade sig gøre at lave et lopslag eller lignende fra mit word dokument ind i mit excel dokument, så jeg ikke skal skrive mine medlemmers navne og adresse, hver gang jeg skal skrive breve?
Mine medlemmer hedder fra nr. 1-100 Når jeg så taster 1 skulle kunde 1 gerne komme op osv.
Word skal gerne hente 4 linier linie1 = navn linie2 = adresse1 linie3 = adresse2 linie4 = postnr + by
Jeg har stillet spg. i WORD-kategorien uden held. Nu vil så høre om det er noget i kan hjæpe mig med.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Kunne man evt. lave en userform eller hvad det nu hedder i excel, som henter dataene ved et lopslag og sætter de ovenstående 4 linier ind i et word dokument og derefter lukker excel, så man er klar til at indtaste i word
Enten kopier nedenstående kode - som anført - eller send en mail til:pb@supertekst-it.dk - så returnerer jeg systemfilerne...
Kode i ThisDocument: (Word-dok Alt+F11) Sub AutoOpen() Load UserForm1 UserForm1.Show 0 End Sub
Kode i Userform: Rem Reference til Microsoft Excel 5.0 Object Library er tilføjet (VBA (Alt+F11) - Tools/References) Dim xls As Object, xSti, kundeData As String Private Sub CommandButton1_Click() 'OK - indsæt data With ActiveDocument WordBasic.Insert kundeData End With
Me.CommandButton1.Visible = False Me.Label2 = "" Me.TextBox1 = "" End Sub Private Sub CommandButton2_Click() 'Annuller - userform lukkes Unload UserForm1 End Sub Private Sub TextBox1_Change() If Me.TextBox1.Value <> "" And IsNumeric(Me.TextBox1.Value) = True Then kundeData = hentKundedata(Val(Me.TextBox1)) If kundeData <> "" Then Label2.Caption = kundeData Me.CommandButton1.Visible = True Else Me.Label2.Caption = "Kundedata ej fundet" End If End If End Sub Private Sub UserForm_activate() hentSti Me.CommandButton1.Visible = False End Sub Private Sub hentSti() xSti = ActiveDocument.Path If Right(xSti, 1) <> "\" Then xSti = xSti + "\" End If End Sub Private Function hentKundedata(kundeNr) Dim antalRæk, r, aData As String
aData = "" Set xls = CreateObject("Excel.application") With xls .workbooks.Open (xSti + "kunder.xls") .sheets(1).Activate antalRæk = .activecell.specialcells(xllastcell).Row For r = 1 To antalRæk If .Cells(r, 1) = kundeNr Then Rem I Excel ark1> Kol 1: Nr / 2: Navn / 3: Adresse1 / 4: Adresse2 / 5: PostNr By Rem ============================================================================ aData = aData + .Cells(r, 2) + vbCr + _ .Cells(r, 3) + vbCr + _ .Cells(r, 4) + vbCr + _ .Cells(r, 5) hentKundedata = aData xls.Application.Quit Set xls = Nothing Exit Function End If Next r End With
xls.Application.Quit Set xls = Nothing hentKundedata = "" End Function
Har sendt Momsseddel til dig i går på din "anden mail" - den første virker stadig ikke - forsendelser hertil returneres. Læg besked her, hvis du ikke har modtaget det fremsendte.
Synes godt om
Ny brugerNybegynder
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.