• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Word met excel koppelen

Status
Niet open voor verdere reacties.
Op dit Engelstalige site wordt uitgelegd hoe je het probleem kunt oplossen.

Met vriendelijke groet,


Ron

Hallo Ron,

Na veel proberen is het me gelukt! Geniaal! Alleen moet het rapport cijfer erbij geschreven worden. Maar stel ik wil dit ook op een andere document toepassen dan moet ik gewoon de naam veranderen van het document? Want mijn vraag is nu eigenlijk hoe ben je van start gegaan? Kan ik dit zelf ook?

Groet,
Romario
 
Het lijkt mij nogal omslachtig en tijdrovend om de bronbestanden steeds te hernoemen.
Ik neem aan dat de evaluaties in een aparte directory worden geplaatst.
We zouden dan de code aan kunnen passen zodat de gegevens van de bestanden 1 voor 1 worden verwerkt in je bestand.

Tuurlijk kun je dit zelf!
Een kwestie van oefenen en proberen.

Met vriendelijke groet,


Roncancio
 
Het lijkt mij nogal omslachtig en tijdrovend om de bronbestanden steeds te hernoemen.
Ik neem aan dat de evaluaties in een aparte directory worden geplaatst.
We zouden dan de code aan kunnen passen zodat de gegevens van de bestanden 1 voor 1 worden verwerkt in je bestand.

Tuurlijk kun je dit zelf!
Een kwestie van oefenen en proberen.

Met vriendelijke groet,


Roncancio

Het gaat nu eigenlijk om een bestand dat we meerdere keren uitsturen, maar dat het op een apart veld moet komen, nu hebben we bij evaluatie alles samengevoegd, maar bij dit CIF bestand willen we alles apart hebben van bedrijfsnaam tot aan het pakket dat ze afnemen in een apart veld hebben? Kan ik zoiets bouwen op de bestaande macro?

Groet,
Romario
 
Je kunt de macro aanpassen zodat de aanvullende gegevens ook geregistreerd worden.

Met vriendelijke groet,


Roncancio
 
Je kunt de macro aanpassen zodat de aanvullende gegevens ook geregistreerd worden.

Met vriendelijke groet,


Roncancio

Oke, maar we hebben het over meer checkboxen? Maakt dat verschil? Want ik moet dat bestand openen en dan een macro opnemen?
Het bestand is te groot om online te plaatsen.

Enige idee of suggesties?

Groet,
Romario
 
De code telt het aantal checkboxen, textboxen etc in het bestand, dus het aantal is niet van belang.
Ik sluit niet uit dat de code wat bijgeschaafd moet worden maar dat is vanaf hier moeilijk te bepalen.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
De code telt het aantal checkboxen, textboxen etc in het bestand, dus het aantal is niet van belang.
Ik sluit niet uit dat de code wat bijgeschaaft moet worden maar dat is vanaf hier moeilijk te bepalen.

Met vriendelijke groet,


Roncancio

Hallo Ron,

Ik heb het bestand even in tweeën gesplitst voor een idee.
Normaal gesproken is dit 1 document.

Groet,
Romario
 

Bijlagen

  • COMPANY INFORMATION FORM 1.doc
    76,5 KB · Weergaven: 14
  • PRODUCT CERTIFICATION 2.doc
    43,5 KB · Weergaven: 20
Laatst bewerkt:
Je zal de code moeten aanpassen zodat je aan kan geven wat er met de tekstvelden moet gebeuren.
In de code staat bijvoorbeeld
Code:
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then

Als het een checkbox betreft dan ...
Dit zal je aan moeten passen voor de textboxen.

Met vriendelijke groet,


Roncancio
 
Je zal de code moeten aanpassen zodat je aan kan geven wat er met de tekstvelden moet gebeuren.
In de code staat bijvoorbeeld
Code:
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then

Als het een checkbox betreft dan ...
Dit zal je aan moeten passen voor de textboxen.

Met vriendelijke groet,


Roncancio

Goedendag,

Ik heb nog 1 vraag of je me op weg zou kunnen helpen met de start voor dit evaluatie formulier? Want ik snap helemaal niks van de start en het verschil tussen de tekst en checkbox te maken.

Groet,
Romario
 
Het enige wat m.i. in de code aangepast moet worden is de code tussen de For ... Next lus.
Hierin wordt bepaald om wat voor soort besturingselement (textbox, checkbox) het gaat.
Aangezien je toch van plan bent om de gegevens in de B-kolom te plaatsen zou je de For ... Next lus kunnen vervangen door :
Code:
    For intCtl = 3 To intChk
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).CheckBox.Value
        ElseIf wrdDoc.FormFields(intCtl).Type = wdFieldFormTextBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).TextBox.Value
        End If
    Next
Deze code is overigens ongetest.

Met vriendelijke groet,


Roncancio
 
Het enige wat m.i. in de code aangepast moet worden is de code tussen de For ... Next lus.
Hierin wordt bepaald om wat voor soort besturingselement (textbox, checkbox) het gaat.
Aangezien je toch van plan bent om de gegevens in de B-kolom te plaatsen zou je de For ... Next lus kunnen vervangen door :
Code:
    For intCtl = 3 To intChk
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).CheckBox.Value
        ElseIf wrdDoc.FormFields(intCtl).Type = wdFieldFormTextBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).TextBox.Value
        End If
    Next
Deze code is overigens ongetest.

Met vriendelijke groet,


Roncancio


Goedenmorgen,

Dan zal het code er als volgt uit zien,

Code:
 Sub Evaluatie()
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim intCnt As Integer
Dim lngRow As Long
Dim intChk As Integer
Dim intCtl As Integer
Dim blnEmp As Boolean

    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open("C:\Documents and Settings\55006\Desktop\Evaluatie.doc")
    intChk = wrdDoc.FormFields.Count
    blnEmp = True
    
    
    For intCtl = 3 To intChk
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).CheckBox.Value
        ElseIf wrdDoc.FormFields(intCtl).Type = wdFieldFormTextBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).TextBox.Value
        End If
    Next
        
    For intCtl = 3 To intChk
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then
            Select Case intCtl
                Case 3
                    lngRow = 2
                Case 30
                    lngRow = 9
                Case 37
                    lngRow = 10
                Case 44
                    lngRow = 11
                Case 51
                    lngRow = 12
                Case 58
                    lngRow = 15
            End Select
            intCnt = intCnt + 1
            If intCnt = 6 Then
                If blnEmp = True Then
                    Range("G" & lngRow).Value = Range("G" & lngRow).Value + 1
                End If
                intCnt = 1
                If intCnt > 60 Or intCnt < 30 Then lngRow = lngRow + 1
                blnEmp = True
            End If
            If wrdDoc.FormFields(intCtl).CheckBox.Value = True Then
                Cells(lngRow, 1 + intCnt).Value = Cells(lngRow, 1 + intCnt).Value + 1
                blnEmp = False
            End If
        End If
    Next
    
    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
    ActiveWorkbook.Saved = True
End Sub

Groet,
Romario
 
Laatst bewerkt:
De 2e For... Next kan dan weg.

Code:
 Sub Evaluatie()
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim intCnt As Integer
Dim lngRow As Long
Dim intChk As Integer
Dim intCtl As Integer
Dim blnEmp As Boolean

    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open("C:\Documents and Settings\55006\Desktop\Evaluatie.doc")
    intChk = wrdDoc.FormFields.Count
    blnEmp = True
    
    
    For intCtl = 3 To intChk
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).CheckBox.Value
        ElseIf wrdDoc.FormFields(intCtl).Type = wdFieldFormTextBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).TextBox.Value
        End If
    Next       
  
    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
    ActiveWorkbook.Saved = True
End Sub

Met vriendelijke groet,


Roncancio
 
De 2e For... Next kan dan weg.

Code:
 Sub Evaluatie()
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim intCnt As Integer
Dim lngRow As Long
Dim intChk As Integer
Dim intCtl As Integer
Dim blnEmp As Boolean

    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open("C:\Documents and Settings\55006\Desktop\Evaluatie.doc")
    intChk = wrdDoc.FormFields.Count
    blnEmp = True
    
    
    For intCtl = 3 To intChk
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).CheckBox.Value
        ElseIf wrdDoc.FormFields(intCtl).Type = wdFieldFormTextBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).TextBox.Value
        End If
    Next       
  
    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
    ActiveWorkbook.Saved = True
End Sub

Met vriendelijke groet,


Roncancio

Het gaat niet helemaal goed hij leest niet alle velden, echter maar een 3 paar, laat ik hem dan toch niet goed lopen?

Groet,
Romario

(Bekijk bijlage Wie wat waar en hoe.xls
 
Laatst bewerkt:
Dit is de nieuwe versie.
De code leest de velden overigens 1 voor 1 van boven naar beneden uit in het tekstbestand.

Code:
Sub Evaluatie()
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim intCnt As Integer
Dim lngRow As Long
Dim intChk As Integer
Dim intCtl As Integer
Dim blnEmp As Boolean

    On Error Resume Next
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open("C:\Documents and Settings\55006\Desktop\CIF.doc")
    intChk = wrdDoc.FormFields.Count
    blnEmp = True
    
    For intCtl = 2 To intChk
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).CheckBox.Value
        ElseIf wrdDoc.FormFields(intCtl).Type = wdFieldFormTextInput Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).Result
        End If
    Next
  
    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
    ActiveWorkbook.Saved = True
End Sub

Met vriendelijke groet,


Roncancio
 
Dit is de nieuwe versie.
De code leest de velden overigens 1 voor 1 van boven naar beneden uit in het tekstbestand.

Code:
Sub Evaluatie()
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim intCnt As Integer
Dim lngRow As Long
Dim intChk As Integer
Dim intCtl As Integer
Dim blnEmp As Boolean

    On Error Resume Next
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open("C:\Documents and Settings\55006\Desktop\CIF.doc")
    intChk = wrdDoc.FormFields.Count
    blnEmp = True
    
    For intCtl = 2 To intChk
        If wrdDoc.FormFields(intCtl).Type = wdFieldFormCheckBox Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).CheckBox.Value
        ElseIf wrdDoc.FormFields(intCtl).Type = wdFieldFormTextInput Then
            Range("B" & intCtl).Value = wrdDoc.FormFields(intCtl).Result
        End If
    Next
  
    wrdApp.Quit
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
    ActiveWorkbook.Saved = True
End Sub

Met vriendelijke groet,


Roncancio

Geniaal dit, ik hoef hem maar een klein beetje te veranderen zodat ie de velden treu of false anders weergeeft en sommige stukken tekst hoger of lager te zetten zodat dit op 1 lijn staat.

Super bedankt!

Groet,
Romario
 
Graag gedaan.
Gaarne nog de vraag op opgelost zetten.
Bvd.

Met vriendelijke groet,


Roncancio
 
Graag gedaan.
Gaarne nog de vraag op opgelost zetten.
Bvd.

Met vriendelijke groet,


Roncancio

Ik dacht dat het gelukt was! Maar als ik de macro draai worden de velden niet helemaal goed ingevuld! Ik ben al het schuiven geweest met text maar krijg hem niet zoals ik hem hebben zou willen! Bekijk bijlage Book1.xls

Misschien nog enige idee hoe ik dat voor mekaar zou kunnen krijgen?:eek:

Groet,
Romario
 
Wat we kunnen doen is de code aanpassen zodat deze kijkt of een cel een gekleurde achtergrond heeft en indien dat zo is de volgende witte cel gebruiken om gegevens in te voeren.
De code gaat wel uit van de volgorde van het bestand, dus de inhoud van het 1e veld verschijnt dus op de 1e rij.

Worst case scenario:
Van elk veld apart in de code vermelden in welke rij de gegevens moet worden geplaatst.
Dus zoiets als
Code:
[B1] = wrdDoc.FormFields(8).Value
[B2] = wrdDoc.FormFields(3).Value
.....
etc, etc

Met vriendelijke groet,


Roncancio
 
Wat we kunnen doen is de code aanpassen zodat deze kijkt of een cel een gekleurde achtergrond heeft en indien dat zo is de volgende witte cel gebruiken om gegevens in te voeren.
De code gaat wel uit van de volgorde van het bestand, dus de inhoud van het 1e veld verschijnt dus op de 1e rij.

Worst case scenario:
Van elk veld apart in de code vermelden in welke rij de gegevens moet worden geplaatst.
Dus zoiets als
Code:
[B1] = wrdDoc.FormFields(8).Value
[B2] = wrdDoc.FormFields(3).Value
.....
etc, etc

Met vriendelijke groet,


Roncancio

De volgorde van B1 en B2 begrijp ik, maar hoe ga ik de waarde bepalen die achter het bij het fromfield staan?

Groet,
Romario
 
Als je dubbelklikt om de velden in Word, verschijnt een menu met onder meer de naam.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan