Vervolg Word Document Variabele (array) aanmaken

Status
Niet open voor verdere reacties.

DutchOirs

Gebruiker
Lid geworden
30 sep 2009
Berichten
720
Goedemiddag allen,

Vervolg van vorige vraag betreffen een variabele overbrengen van een excel doc. naar een word doc.

Ben in vorige vraag eruit hoe men een variabele overbrengt onder Excel-Word 2003.
Wilde nu graag een array overbrengen, maar het Word document wil er niet aan.

Heb het volgende gedaan onder Excel VBA:
Code:
Dim UpDNN(55) As Integer
      Set Word = CreateObject("word.basic")           ' Set Word
      Word.fileopen WrdBestand                        ' opent een Word document met het Path & Naam file & extensie
      Word.appshow                                    ' toont het document
          
      With GetObject(WrdBestand)                      ' Update variabelen van Excel --> Word doc.
        for i = 1 to 55
          .variables("UpDNN(i)") = "DNN" & i
        next i
         .Fields.Update
      End With
Onder Word in het document een tabel aangemaakt waarvan één kolom als Veldnaam DNN(1), DNN(2), DNN(3) enz enz

Dit werkt dus niet.
Het werkt wel als ik geen for - next lus maak, maar iedere variables appart benoem, dus .variables("UpDNN(1)") = "DNN" & i, .variables("UpDNN(2)") = "DNN" & i, .variables("UpDNN(3)") = "DNN" & i, enz enz.

Heeft iemand hier een idee over?

Vr. Gr.

Dutch
 
Laatst bewerkt:
Ik ben niet kapot van je veldnamen, met die haakjes. Is bepaald onhandig. Maar moet wel kunnen, als je het goed doet :)
Code:
        for i = 1 to 55
          .variables("UpDNN(" & i &")") = "DNN" & i
        next i
Dit is overigens maar de helft van je oplossing; nu wordt alleen de matrix goed gevuld. En wel met de tekst “DNN1” t/m “DNN55”. En dat zal ook wel niet de bedoeling zijn.
 
Hoi OctaFish, werkt perfect thanks.

Dit was/is inderdaad de 1e helft van de matrix.

Bedoeling was wel om een DNN1, DNN2 enz. te krijgen

De 2e helft is een array met 3 velden

de Getallen Get1, Get2 en Get3 wilde ik met de Dim Get(55,3) doen.

Ben er al mee aan het stoeien :)
 
Hoi OctaFish,

Ben eruit, allemaal gelukt.

Zal ff neerzetten wat het geworden is, niet schrikken :)
De variabelen die overgebracht worden
Code:
      Set Word = CreateObject("word.basic")       ' Set Word
      Word.fileopen WrdBestand                    ' opent een Word document met het Path & Naam file & extensie
      Word.appshow                                ' toont het document
          
      With GetObject(WrdBestand)                                                    ' Update variabelen van Excel --> Word doc.
        .variables("MaakDatum") = ActiveWorkbook.Worksheets("Control").Range("C18") ' MaakDatum = "00-00-0000"   ' voor Basis
        .variables("MaakDatum") = Format(.variables("MaakDatum"), "dd-mm-yyyy")
        .variables("UpdateNr") = ActiveWorkbook.Worksheets("Control").Range("D14")  ' Updatenummer = UpdateNr    ' "00" voor Basis
        .variables("SPprijs") = ActiveWorkbook.Worksheets("Control").Range("S8")    ' zet huidige SpeelPot neer
        .variables("SPprijs") = Format(.variables("SPprijs"), "##,##0.00")
        .variables("JPprijs") = ActiveWorkbook.Worksheets("Control").Range("S10")   ' zet huidige JackPot neer
        .variables("JPprijs") = Format(.variables("JPprijs"), "##,##0.00")
        .variables("UpDatTrek") = ActiveWorkbook.Worksheets("Control").Range("C15") ' datum afgelopen zaterdag neer
        .variables("UpMnd") = ActiveWorkbook.Worksheets("Control").Range("D15")                '
        .variables("UpAantSP") = ActiveWorkbook.Worksheets("Control").Range("J10")  ' aantal Spelers
        .variables("UpAantR") = ActiveWorkbook.Worksheets("Control").Range("L10")   ' aantal Rijtjes
        .variables("UpWkNr") = ActiveWorkbook.Worksheets("Control").Range("D14")    ' WeekNr van Updating
        .variables("UpGet1") = UpGet1
        .variables("UpGet2") = UpGet2
        .variables("UpGet3") = UpGet3
        .variables("UpGet4") = UpGet4
        .variables("UpGet5") = UpGet5
        .variables("UpGet6") = UpGet6
        .variables("UpResGet") = UpResGet
        For i = 1 To 55
          If ActiveWorkbook.Worksheets("Spelers").Range("E" & 14 + i) <> "" Then
          
            .variables("UpDNN(" & i & ")") = "DNN" & ActiveWorkbook.Worksheets("Spelers").Range("D" & 14 + i)
            .variables("UpGet(" & i & "," & 1 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("E" & 14 + i)
            .variables("UpGet(" & i & "," & 2 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("F" & 14 + i)
            .variables("UpGet(" & i & "," & 3 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("G" & 14 + i)
            If ActiveWorkbook.Worksheets("Spelers").Range("K" & 14 + i) = 2 Then
              i = i + 1
              .variables("UpDNN(" & i & ")") = "DNN" & ActiveWorkbook.Worksheets("Spelers").Range("D" & 14 + i - 1)
              .variables("UpGet(" & i & "," & 1 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("L" & 14 + i - 1)
              .variables("UpGet(" & i & "," & 2 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("M" & 14 + i - 1)
              .variables("UpGet(" & i & "," & 3 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("N" & 14 + i - 1)
            End If
            If ActiveWorkbook.Worksheets("Spelers").Range("K" & 14 + i) = 3 Then
              i = i + 1
              .variables("UpDNN(" & i & ")") = "DNN" & ActiveWorkbook.Worksheets("Spelers").Range("D" & 14 + i - 1)
              .variables("UpGet(" & i & "," & 1 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("L" & 14 + i - 1)
              .variables("UpGet(" & i & "," & 2 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("M" & 14 + i - 1)
              .variables("UpGet(" & i & "," & 3 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("N" & 14 + i - 1)
              i = i + 1
              .variables("UpDNN(" & i & ")") = "DNN" & ActiveWorkbook.Worksheets("Spelers").Range("D" & 14 + i - 2)
              .variables("UpGet(" & i & "," & 1 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("O" & 14 + i - 2)
              .variables("UpGet(" & i & "," & 2 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("P" & 14 + i - 2)
              .variables("UpGet(" & i & "," & 3 & ")") = ActiveWorkbook.Worksheets("Spelers").Range("Q" & 14 + i - 2)
            End If
          Else
            .variables("UpDNN(" & i & ")") = "-"  '"DNN" & ActiveWorkbook.Worksheets("Spelers").Range("D" & 15)
            .variables("UpGet(" & i & "," & 1 & ")") = "-"
            .variables("UpGet(" & i & "," & 2 & ")") = "-"
            .variables("UpGet(" & i & "," & 3 & ")") = "-"
          End If
        Next i
        .Fields.Update
      End With

Nogmaals bedankt voor de hulp. Kan nu automatisch een update maken vanuit Excel voor de club, welke ik naar iedereen toestuur als PDF.
Ook een PDF maken vanuit Excel van Word naar PDF.
Wat men allemaal niet kan maken met dat VBA gewoon fantastisch..

Fijne avond verder.

Vr. Gr.

Dutch
 
Hallo Octafish,

Kom toch weer een vraagje tegen.

Weet je ook toevallig hoe je een cel van een tabel kan kleuren?
Heb onderstaande geprobeerd maar geen van allen werkt dus
Code:
     .variables("UpGet(" & i & "," & 1 &")"). BackColor = RGB(255, 0, 0)
     .variables("UpGet(" & i & "," & 1 & ")").interior = RGB(255, 0, 0)
     .variables("UpGet(" & i & "," & 1 & ")").arcering = RGB(255, 0, 0)

     .variables("UpGet(" & i & "," & 1 &"). BackColor = RGB(255, 0, 0)")
     .variables("UpGet(" & i & "," & 1 & ").interior = RGB(255, 0, 0)")
     .variables("UpGet(" & i & "," & 1 & ").arcering = RGB(255, 0, 0)")

     .variables ("UpGet(" & i & "," & 1 & ").activeCell.interior.ColorIndex = 65535")
     .variables ("UpGet(" & i & "," & 1 & ").Cell.interior.ColorIndex = 65535")

Had u nog een idee?

Vr. Gr.

Dutch
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan