[Excel] Gegevens samenvoegen en printen

Pagina: 1
Acties:
  • 452 views sinds 30-01-2008
  • Reageer

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 13:45
Situatie:

Ik heb 2 werkbladen.
Het eerste werkbald is een standaard formulier met cellen waar variabele gegevens in moeten komen (naam, adres etc.)
In het tweede werkbald zijn relatiegegevens vastgelegd, waarbij het zo is dat iedere relatie overeenkomt met 1 rij.
Het is de bedoeling dat de relatiegegevens van het tweede werkblad in de invoercellen van het eerste werkblad komen te staan en dan afgedrukt worden.
Hoe kan ik dit het beste oplossen, want een functie als "afdruk samenvoegen" (in Word) is er niet in Excel.
Ik ga er dus vanuit dat dit via een VBa macro geregeld moet worden, maar ik heb geen idee hoe ik dat het beste kan oplossen.
Ik kan me voorstellen dat zoiets wel vaker gedaan moet worden dus er zijn vast mensen die een oplossing voor dit probleem hebben bedacht :)

Of heb ik stiekem toch een standaard functie in Excel over het hoofd gezien?!

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Dit kan gewoon in Excel hoor!
Stel je hebt in Blad1 in de cellen A1 t/m A10 gegevens staan.
In Blad2 heb je in de cellen B1 t/m B10 gegevens staan.
In cel B1 van Blad 1 zet je dan de volgende formule: =Blad2!B1

Vervolgens kun je die gaan kopieren voor de rest van de cellen in Blad 1.
Dit kun je heel eenvoudig doen, door (in dit geval) cel B1 van Blad1 te gaan staan en dan het vierkantje aan de rechteronderkant van de cel net zo ver naar beneden slepen met je muis, als dat nodig is.

Before me there was many, after me there will be none. I'm the one!


  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 13:45
mrbombastic schreef op 07 May 2003 @ 15:31:
Dit kan gewoon in Excel hoor!
Stel je hebt in Blad1 in de cellen A1 t/m A10 gegevens staan.
In Blad2 heb je in de cellen B1 t/m B10 gegevens staan.
In cel B1 van Blad 1 zet je dan de volgende formule: =Blad2!B1

Vervolgens kun je die gaan kopieren voor de rest van de cellen in Blad 1.
Dit kun je heel eenvoudig doen, door (in dit geval) cel B1 van Blad1 te gaan staan en dan het vierkantje aan de rechteronderkant van de cel net zo ver naar beneden slepen met je muis, als dat nodig is.
Dat snap ik :)
Maar stel ik heb 500 relaties met naw gegevens, telefoonnr etc. Voor elke relatie zijn deze gegeens in een rij opgenomen (je zou ook kunnen zeggen voor ieder geven een aparte kolom).
Al deze relaties moeten het formulier met daarop hun eigen gegevens ontvangen.
Dan zoek ik dus een manier om met een druk op een knop deze gegevens samen te voegen met het formulier en dan te printen, zodat ik 500 persoonlijk gerichte formulieren als resultaat geprint krijg.
De manier die jij voorstelt geeft niet dit resultaat.

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Dan zou ik het met MS Access proberen. Lijkt me dat je dan meer succes hebt, doordat je mbv queries heel gericht informatie kan opvragen.

Before me there was many, after me there will be none. I'm the one!


  • KingRichard
  • Registratie: September 2002
  • Laatst online: 17-08 19:31

KingRichard

former Duke of Gloucester

Het kan natuurlijk wel... Slordig voorbeeldje:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub PrintAlleFormulieren()

'# [KingRichard] [TOPIC=752490///][NOHTML][rml][ Excel] Gegevens samenvoegen en printen[/rml][/NOHTML][/TOPIC]
'# De printer braakt net zoveel formulieren uit als er rijen in het blad strBronblad zijn.

Dim intAantalRijen, n As Integer
Dim strBronblad, strDoelblad As Integer

strBronblad = "Relatiegegevens" 'Vul hier de naam van het blad in met alle relatiegegevens
strDoelblad = "Formulier"       'Vul hier de naam van het blad in met het formulier

' Hoeveel rijen bevatten gegevens?
Sheets(strBronblad).Select
Range("A1").Select
Selection.CurrentRegion.Select
intAantalRijen = Selection.Rows.Count

' Start!
For n = 1 To intAantalRijen
    ' Als bijv. de naam in de eerste kolom van strBronblad staat en hij moet in F4
    ' van het formulier, dan gebruik je onderstaande regel.
    ' Cel n,1 van strBronblad wordt gekopieerd naar cell 4,6 (F4) van strDoelblad
    Sheets(strDoelblad).Cells(4, 6).Value = Sheets(strBronblad).Cells(n, 1).Value ' bijv. naam
    Sheets(strDoelblad).Cells(8, 2).Value = Sheets(strBronblad).Cells(n, 2).Value ' bijv. adres
    Sheets(strDoelblad).Cells(4, 4).Value = Sheets(strBronblad).Cells(n, 3).Value ' bijv. tel.nummer
    ' etc. etc. Vul aan...
    
    ' Even printen:
    Sheets(strDoelblad).PrintOut
Next n
End Sub

Niet getest, trouwens.

[ Voor 7% gewijzigd door KingRichard op 09-05-2003 11:00 . Reden: Typefoutje en een property vergeten ]

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]