VBA in Word

  • Onderwerp starter Onderwerp starter MBBS
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

MBBS

Gebruiker
Lid geworden
7 feb 2006
Berichten
269
Ik zoek een macro om volgende bewerking uit te voeren :

Resultaat zou moeten zijn :
tekst tekst tekst <foto;2016_01><foto;2016_02><foto;2016_03><foto;2016_04><foto;2016_05><foto;2016_06>


Aan de gebruiker zouden 3 vragen moeten worden gesteld :

1. Voer jaartal in = 2016
2. Voer 1e foto in = 01
3. Voer laatste foto in = 06


Macro zou dan telkens de code moeten invoeren tot laatste foto is bereikt...

Iemand om te helpen.

mvg
 
Dit is wel een heel summiere vraag. Om te beginnen: waar moeten de foto's vandaan gehaald worden? Je moet namelijk ook het pad in de macro meegeven. Verder is het wel te doen met een lus, maar dan vraag je natuurlijk niet om '01' en '06', maar om '1' en '6'. Neem maar eens een macro op met het veld INCLUDEPICTURE, en maak daar eens een lus van die je baseert op de 3 vragen die je de macro laat stellen met een Inputbox.
 
Octafish, bedankt voor je antwoord.

Ondertussen code kunnen samenstellen :

Code:
Sub FotoInvoegen()


Dim input1 As String
Dim input2 As Integer
Dim input3 As Integer

input1 = InputBox("naamfoto")
input2= InputBox("nr1e")
Input3 = InputBox("nrlaatste")

 Response = MsgBox("Name Image : " & input1 _
        & vbCrLf & _
        "First Image : " & input2 _
        & vbCrLf & _
        "Last Image : " & input3 _
        & vbCrLf, vbYesNo)
 If Response = vbNo Then Exit Sub
  
i = input2
Do Until i > input3
  Dim MyText As String
  MyText = "<foto;" & input1 & ";" & i & ">"
  Selection.TypeText (MyText)
     i = i + 1
Loop

End Sub
Er is inderdaad een probleem met de cijfers kleiner dan 10.
Is er een mogelijkheid om indien het maar 1 cijfer is daar een nul voor te plaatsen.
 
Uiteraard kan dat, anders had ik het zo niet voorgesteld :).
Code:
Sub FotoInvoegen()
Dim NaamFoto As String
Dim StartFoto As Integer, LaatsteFoto As Integer, i As Integer

    NaamFoto = InputBox("naamfoto")
    StartFoto = InputBox("nr1e")
    LaatsteFoto = InputBox("nrlaatste")
    
    Response = MsgBox("Name Image : " & NaamFoto & vbCrLf & "First Image : " _
        & StartFoto & vbCrLf & "Last Image : " & LaatsteFoto & vbCrLf, vbYesNo)
    If Response = vbNo Then Exit Sub
    For i = StartFoto To LaatsteFoto
        Selection.TypeText "<foto;" & NaamFoto & ";" & Right("00" & i, 2) & ">"
        i = i + 1
    Next i

End Sub
 
Kleine aanpassing, maar een wereld van verschil !

Waarvoor dank !

Maar... hij springt nu telkens 2 cijfers verder...



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