Avatar billede h_s Forsker
31. juli 2006 - 19:48 Der er 9 kommentarer og
1 løsning

Åbne et word-dot som doc med en makro fra Excel

Jeg skal bruge en makro, der åbner en Skabelon som doc og henter
celle C3 fra Ark Info over i bogmærke "navn" og bevare bogmærket.
Og gemmer word-doc som "Navn"-måned-år ex. hans-august-06.

Filen skal gemmes i C:\test\
Avatar billede mvhansen Nybegynder
31. juli 2006 - 22:17 #1
Hej h_s

Her er vba kode du kan bruge
jeg henter fra excel A1til og med G110 over i bogmærke i word-doc
du kan se om du kan bruge det

------------------------------------------

Private Sub CommandButton17_Click()
Dim y As Word.Application
Set y = CreateObject("Word.Application")

  With y
  .Visible = True
    Sheets("Medlemmer").Visible = True
    '.Documents.Open Filename:="C:\test\test.doc"
    .Documents.Open Filename:=ThisWorkbook.Path & "\test.doc"
    Worksheets("Medlemmer").Range("A1:G110").Copy
    .Selection.GoTo What:=wdGoToBookmark, Name:="Medlemmer"
    .Selection.Paste
    Application.CutCopyMode = False
    Sheets("Medlemmer").Visible = False
   
    End With
End Sub

------------------------------------------------------

mvh

mvhansen
Avatar billede h_s Forsker
01. august 2006 - 08:40 #2
Hej Mvhansen

Tak skal du ha'!
Men åbner denne makro også skabelonen og gemmer den igen?
01. august 2006 - 18:21 #3
Avatar billede learningvba Nybegynder
02. august 2006 - 08:27 #4
Prøv om ikke dette fungerer på din pc.

Sub Put_Ark1C3_In_TestDot_Bookmark_BogMark_SaveAsDot_And_Close()
'Reference:
'Microsoft Word 11.0 Object Library

'Husk:
'Word-fil: Test.Dot i C:\Temp har et bogmærke, BogMark, med tekst.

  Const Bogmærke As String = "BogMark"
  Const DotPath As String = "C:\Temp\"
  Const DotName As String = "Test.dot"

  Const Ark1 As String = "Ark1"
  Const CellStr As String = "C3"
 
  Dim MyWordApp As Word.Application
  Set MyWordApp = CreateObject("Word.Application")
  With MyWordApp
      .Visible = False 'True når du vil følge med
      .Documents.Open DotPath & DotName, , False, False, , , , , , wdOpenFormatTemplate
      .Documents(DotName).Activate
      If .ActiveDocument.Bookmarks.Exists(Bogmærke) Then
        .ActiveDocument.Bookmarks(Bogmærke).Select
        .Selection.Text = Worksheets(Ark1).Range(CellStr).Text
        .Selection.Bookmarks.Add Bogmærke
       
        Debug.Print "The input & the result:"
        Debug.Print "Word says:  " & Worksheets(Ark1).Range(CellStr).Text
        Debug.Print "Excel said: " & .ActiveDocument.Bookmarks(Bogmærke).Range.Text
      Else
        Debug.Print "Bogmærket " & Bogmærke & " findes ikke i dokumentet."
      End If
      .Documents(DotName).Close True
  End With
  MyWordApp.Quit
  Set MyWordApp = Nothing
End Sub
Avatar billede learningvba Nybegynder
02. august 2006 - 08:29 #5
Hmm, brug SaveAs i stedet for .Close.
Ovenstående gemmer ændringerne i samme Dot-fil som blev åbnet.
(Alt for tidligt om morgenen :-) )
Avatar billede learningvba Nybegynder
02. august 2006 - 08:41 #6
1 ½kop senere:

Sub Put_Ark1C3_In_TestDot_Bookmark_BogMark_SaveAsDocument()
'Reference:
'Microsoft Word 11.0 Object Library

'Husk:
'Word-fil: Test.Dot i C:\Temp har et bogmærke, BogMark, med tekst.

  Const Bogmærke As String = "BogMark"
  Const DotDocPath As String = "C:\Temp\" 'Variabel navn ændret.
  Const DotName As String = "Test.dot"

  Const Ark1 As String = "Ark1"
  Const CellStr As String = "C3"
 
  Dim MyWordApp As Word.Application
  Set MyWordApp = CreateObject("Word.Application")
  With MyWordApp
      .Visible = False 'True når du vil følge med
      .Documents.Add DotDocPath & DotName 'Rettet.
      .Documents(DotName).Activate
      If .ActiveDocument.Bookmarks.Exists(Bogmærke) Then
        .ActiveDocument.Bookmarks(Bogmærke).Select
        .Selection.Text = Worksheets(Ark1).Range(CellStr).Text
        .Selection.Bookmarks.Add Bogmærke
       
        Debug.Print "The input & the result:"
        Debug.Print "Word says:  " & Worksheets(Ark1).Range(CellStr).Text
        Debug.Print "Excel said: " & .ActiveDocument.Bookmarks(Bogmærke).Range.Text
      Else
        Debug.Print "Bogmærket " & Bogmærke & " findes ikke i dokumentet."
      End If
      .Documents(DotName).SaveAs DotDocPath & "Hans-06-August", , , , False 'Rettet, erstat selv med navn osv.
                          'OBS År før måned giver en bedre oversigt med mange filer over flere år.
  End With
  MyWordApp.Quit
  Set MyWordApp = Nothing
End Sub

mvhansen's eksempel er absolut et flot eksempel med rigelig inspiration, så eventuelle point bør gå til ham for at være først.
Avatar billede learningvba Nybegynder
02. august 2006 - 08:46 #7
Linien
      .Documents(DotName).Activate
skal remmes ud, ' ind foran

Linien
      .Documents(DotName).SaveAs DotDocPath & "Hans-06-August", , , , False 'Rettet, erstat selv med navn osv.

rettes til

.ActiveDocument.SaveAs DotDocPath & "Hans-06-August", , , , False 'Rettet, erstat selv med navn osv.

Slut, tror jeg :-)
Avatar billede h_s Forsker
04. august 2006 - 20:54 #8
Hej Learningvba og mvhansen

Jeg har prøvet begge jeres forslag, men jeg får fejl. Jeg kan ikke se hvad fejlene er, men jeg tror det har noget med bogmærket at gøre. Jeg skal hente Cellen C3 i arket Info ind i Bogmærket "Navn". Det skal så bruges til at danne filnavnet.

Som Learningvba skiver, så vil det være en fordel at bruge år før måned. Det kan jeg godt for stå, men så skal
Avatar billede h_s Forsker
04. august 2006 - 20:57 #9
Ups. jeg kom til at trykke Send før tid, så jeg prøver igen...

Som Learningvba skiver, så vil det være en fordel at bruge år før måned. Det kan jeg godt for stå, men så skal filen hedde: "Bogmærket Navn"-åååå-mm. F.eks. Henrik Sørensen-2006-08.

Jeg har svært ved at gå ind og rette i en makro, så der skal ikke være ret mange steder jeg selv skal ind og rode.

Håber I kan/vil hjælpe mig!
Avatar billede h_s Forsker
18. august 2006 - 18:29 #10
Hundet løsning selv!
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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