• 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.

Koppelen velden

Status
Niet open voor verdere reacties.

KupCom

Gebruiker
Lid geworden
26 nov 2011
Berichten
60
Hallo allemaal,

Ik ben bezig met een inschrijfformulier die ingevuld moeten worden door de deelnemende verenigingen. Op het eerste blad staat het formulier waar alle gegevens van de deelnemers ingevuld moeten worden. Voor elke deelnemer een apart blokje.

Op het tweede blad moeten al die kolommen gekoppeld worden, dat blad moeten we namelijk exporteren naar een CSV voor onze wedstrijdsoftware. Dat is erg veel werk om dat allemaal handmatig te doen. Er zit steeds 15 regels verschil in, dus de naam van deelnemer 1 staat op rij E22 en de naam van deelnemer 2 staat op rij E37. Tussenvoegsel deelnemer 1 staat op rij E23 en de tussenvoegsel van deelnemer 2 staat op E38. Ga zo maar door...

Ik heb al geprobeerd om =Invoerscherm!E22 + 15 te doen in Excel, maar dat gaat niet helaas.
Weet iemand een andere oplossing om de velden te koppelen?
 
Waarschijnlijk ga je met een voorbeeldje, ontdaan van gevoelige info, beter geholpen worden.
 
Hier een voorbeeld. Gevoelige informatie heb ik verwijderd of weergeven als hekjes. Een niet bestaande deelnemer heb ik als voorbeeld voorgedaan.
 
Dit doe je best via VBA
Dim rDoel As Range
Dim rBron As Range

Worksheets("Export to Meet").Select
Set rDoel = Range("C3")
Worksheets("Invoerscherm").Select
Set rBron = Range("E22")

Do While rBron.Value <> ""

rDoel.Value = rBron.Value
rDoel.Offset(0, 1).Value = rBron.Offset(1, 0).Value
rDoel.Offset(0, 2).Value = rBron.Offset(2, 0).Value
rDoel.Offset(0, 3).Value = rBron.Offset(4, 0).Value
rDoel.Offset(0, 4).Value = rBron.Offset(5, 0).Value
rDoel.Offset(0, 5).Value = rBron.Offset(6, 0).Value
rDoel.Offset(0, 6).Value = rBron.Offset(7, 0).Value
rDoel.Offset(0, 7).Value = rBron.Offset(9, 0).Value
rDoel.Offset(0, 8).Value = rBron.Offset(10, 0).Value
rDoel.Offset(0, 9).Value = rBron.Offset(11, 0).Value
rDoel.Offset(0, 10).Value = rBron.Offset(12, 0).Value

Set rBron = rBron.Offset(15, 0)
Set rDoel = rDoel.Offset(1, 0)
Loop
Laat dit maar eens lopen.
 
Een oplossing hoe het zou kunnen (zie bijlage).

Kolom A is een hulpkolom.

Zie ook E57 en E58 in het invulblad. (oranje cellen).

Je bestand ingekort zodat het < 100kb wordt.

Heb je hier vragen over, laat het gewoon even weten.
 

Bijlagen

Laatst bewerkt:
Een oplossing hoe het zou kunnen (zie bijlage).

Kolom A is een hulpkolom.

Zie ook E57 en E58 in het invulblad. (oranje cellen).

Je bestand ingekort zodat het < 100kb wordt.

Heb je hier vragen over, laat het gewoon even weten.

Goed bedacht, maar kolom A moet echt CLUBNAME blijven. Dit heeft te maken met de wedstrijdsoftware. Het CSV mag maar op één bepaalde manier opgebouwd zijn.
 
Is een userform misschien een oplossing om alles in te vullen.
Hier een vbtje die natuurlijk nog wel verfijnt moet worden.
 

Bijlagen

Druk eens Alt + F11, dit brengt je in VBA.

Typ:

Sub Test()


End Sub

Plak men vorige tekst daartussen en duw F5.
 
Druk eens Alt + F11, dit brengt je in VBA.

Typ:

Sub Test()


End Sub

Plak men vorige tekst daartussen en duw F5.

Als ik dat doe krijg ik geen resultaat. Ik kom wel in het scherm plak jouw tekst tussen die twee tags druk op F5 klik op uitvoeren, maar verder gebeurd er niets.
 
Als ik dat doe krijg ik geen resultaat. Ik kom wel in het scherm plak jouw tekst tussen die twee tags druk op F5 klik op uitvoeren, maar verder gebeurd er niets.

Wacht ik zie het al, er gebeurd wel iets maar het komt op het eerste blad te staan i.p.v. op het tweede blad.
 
@Diffractorator
Plaats hem eens in het voorbeeld (zoals je dit voor ogen hebt).

Ik krijg het met jouw oplossing niet werkend.

@KupCom

Je kunt voordat je de gegevens naar csv verzendt eerst nog:

Kopieren => kies Plakken Speciaal => Waarden.

Vervolgens kun je kolom A verwijderen.

Heb je hier vragen of opmerkingen over, laat het gewoon even weten.
 
Laatst bewerkt:
Het script van Diffractorator werkt inderdaad niet naar behoren. Diffractorator; probeer het maar eens uit met een stuk of vijf deelnemers. Het komt niet op blad 2 maar op het eerste blad door de tekst heen.
 
Ik ben wel achter de fout in de macro van Diffractorator. Hij plaatst de gegevens uiteindelijk niet in het tweede tabblad maar in de eerst ''over'' de bestaande tekst. Hoe moet ik dit oplossen in de macro?!
 
Ok, heb er een loop bijgemaakt om alle sheets te overlopen
Code:
Sub test()

Dim rDoel As Range
Dim rBron As Range
Dim rVer As Range
Dim rNum As Range
Dim sht As Worksheet

For Each sht In Application.Worksheets
    If sht.Name <> "Export to Meet" Then
            
        Worksheets("Export to Meet").Select
        Range("C1").Select
        Do While Selection <> Empty
            Selection.Offset(1, 0).Select
        Loop
        Set rDoel = Selection
        sht.Select
        Set rBron = Range("E22")
        Set rVer = Range("E7")
        Set rNum = Range("E8")
        
        Do While rBron.Value <> ""
        
            Worksheets("Export to Meet").Select
            rDoel.Value = rBron.Value
            rDoel.Offset(0, 1).Value = rBron.Offset(1, 0).Value
            rDoel.Offset(0, 2).Value = rBron.Offset(2, 0).Value
            rDoel.Offset(0, 3).Value = rBron.Offset(4, 0).Value
            rDoel.Offset(0, 4).Value = rBron.Offset(5, 0).Value
            rDoel.Offset(0, 5).Value = rBron.Offset(6, 0).Value
            rDoel.Offset(0, 6).Value = rBron.Offset(7, 0).Value
            rDoel.Offset(0, 7).Value = rBron.Offset(9, 0).Value
            rDoel.Offset(0, 8).Value = rBron.Offset(10, 0).Value
            rDoel.Offset(0, 9).Value = rBron.Offset(11, 0).Value
            rDoel.Offset(0, 10).Value = rBron.Offset(12, 0).Value
            
            rDoel.Offset(0, -2).Value = rVer
            rDoel.Offset(0, -1).Value = rNum
            
            Set rBron = rBron.Offset(15, 0)
            Set rDoel = rDoel.Offset(1, 0)
        Loop
    End If
Next sht

End Sub
 
Waarschijnlijk doe ik iets verkeerd, want ik krijg alleen Jan in de cellen (t/m cel 699).

Als bijlage het bestand met de laatste macro.

Ik heb het bestand ingekort anders bleef het niet < 100kb.

Kun je eens zien wat hier dan niet goed gaat?
 

Bijlagen

De loop gaat alle sheets bekijken. U hebt een Data sheet toegevoegd.

Als ik deze sheet delete en ook alle data die ondertussen al ingevuld was in de "Export to Meet" sheet. Dan werkt het bij mij.
 
Allen,

Het is gelukt, zat waarschijnlijk met VBA in het verkeerde scherm te klooien. Toen ik de code als macro heb gemaakt werkte het uitstekend!

Samen met mijn ''collega'' hebben we opnieuw gekeken naar de sheet, en vinden dat het al heel goed is gelukt, natuurlijk ook door jullie hulp, daarvoor dank. Wel willen we de sheet aanpassen. Het is nu zo als een deelnemer wil deelnemen aan meerdere programmanummers steeds het blok opnieuw moet invullen. Daarom hebben we nu in één deelnemers blok vier vakjes voor het inschrijven gemaakt.

De macro moet nu dus aangepast worden. Als deelnemer 1 meedoet aan twee programmanummers moet op de CSV (tab: Export to Meet) twee keer zijn persoonlijke gegevens komen plus natuurlijk zijn inschrijfgegevens zoals programmanummer, slag en afstand. Deelnemers kunnen zich maximaal voor vier programmanummers opgegeven. De macro moet dus als het ware kijken naar het aantal inschrijvingen..

Hier vinden jullie het bestand weer met de eerste sheet aangepast. Hoop dat jullie het snappen, en dat jullie mij opnieuw kunnen helpen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan