10. januar 2008 - 18:20Der er
13 kommentarer og 1 løsning
Bestemme modtagere i brevfletning med VBA. Word - data fra excel
Er det muligt, at stille ".LastRecord" til = sidste række i kolonnerne med data - evt. også med angivelse af, hvilken kolonne, der "betemmer". Fletningen foregår i Word med data fra excel.
With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = 1 .LastRecord = 300 End With .Execute Pause:=False End With End Sub
With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = 1 .LastRecord = 300 End With .Execute Pause:=False End With End Sub
ActiveDocument.MailMerge.MainDocumentType = wdCatalog ' ' Testantal rækker i databasen ' Dim rk As Integer On Error Resume Next Set xlapp = GetObject(, "Excel.application") If Err.Number <> 0 Then Set xlapp = CreateObject("excel.Application") End If xlapp.Workbooks.Open FileName:="C:\Kontrolmappe elektriske maskiner og hjælpemidler.xls" xlapp.Visible = False rk = xlapp.activeworkbook.Sheets(1).Range("c65536").End(xlUp).Row xlapp.activeworkbook.Saved = True xlapp.activeworkbook.Close Set xlapp = Nothing ' ' Nytdoc Makro ' '
With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = 1 .LastRecord = rk End With .Execute Pause:=False End With End Sub
Det virker ikke rigtigt. Ville det være en god ide, hvis jeg sendte de to filer til dig, da jeg ikke helt kan skue problemet. Vi kan evt. ligge den færdige kode ud, så andre kan have glæde af den.
Jeg har lige tjekket koden igen - nu virker den. Jeg havde ændret adressen på excelfilen - sorry. Når der bliver flettet over i word tager den dog første tomme række med, kan det ændres? Hvis kolonne F indeholder tomme celler, men indimellem fyldte, kan der laves makro, som kun tager rækker med, hvor der også er noget i kolonne F. Hvis du betragter det som nyt spørgsmål, er det ok med yderligere point.
Det første - at den tager første tomme række med, kan sikkert løses ved at ændre til
.LastRecord = rk - 1
Det andet bliver straks mere problematisk, fordi det ikke er den måde brevfletnign virker på. Det må i givet fald blive noget med at sætte noget filtrering på datane før du fletter, og om det kan lade sig gøre, kan jeg ikke lige gennemskue.
Her er et svar i første omgang. Hvis jeg får en god i dé til ovenstående, vender jeg tilbage.
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.