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

Hoe kan ik waardes uit 900 tabbladen in 1 tabel krijgen?

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

GVGV

Nieuwe gebruiker
Lid geworden
9 aug 2017
Berichten
3
Hoi ,

Voor mijn werk ben ik aan een klantenbestand aan het werken.
Er is een oude, waar elke klant een apart tabblad heet. Omdat dit moeilijk selecteren is ben ik het aan het omzetten naar één tabblad.
De eerste paar honderd heb ik handmatig getypt, maar vroeg mij nu toch echt af of dit niet makkelijker kan.
Het gaat om 900 klanten, en de gegevens die onder elkaar moeten komen (naam, geboortedatum, adres etc.) staan steeds op dezelfde plek in het bestand. Bijvoorbeeld naam in C4.

Weet iemand hoe ik dit makkelijk kan omzetten?
Graag uitgebreide uitslag, ik ben een excelbeginner.

Alvast bedankt.
 
Hoi GVGV (?)


Lastig om zonder voorbeeld te werken.
Gebruikelijk is om een (geanonimiseerd) voorbeeldbestand bij te voegen.

Stel dat je op het eerste tabblad alle gegevens wilt verzamelen.
en alle werkbladen er achter de gegevens hebben staan in de cellen C4:C7.
dan kan je deze VBA code gebruiken:

Code:
Sub LaM()

For i = 2 To Sheets.Count

    With Sheets(1)
    
    .Range("A" & i) = Sheets(i).Range("C4")
    .Range("B" & i) = Sheets(i).Range("C5")
    .Range("C" & i) = Sheets(i).Range("C6")
    .Range("D" & i) = Sheets(i).Range("C7")

    End With
Next i
End Sub

dit verzamelt de gegevens uit alle werkbladen en plaatst deze in kolom A t/m D van het eerste werkblad.

Lambert
 
Laatst bewerkt:
Hoi GVGV (?)


Lastig om zonder voorbeeld te werken.
Gebruikelijk is om een (geanonimiseerd) voorbeeldbestand bij te voegen.

Stel dat je op het eerste tabblad alle gegevens wilt verzamelen.
en alle werkbladen er achter de gegevens hebben staan in de cellen C4:C7.
dan kan je deze VBA code gebruiken:

Code:
Sub LaM()

For i = 2 To Sheets.Count

    With Sheets(1)
    
    .Range("A" & i) = Sheets(i).Range("C4")
    .Range("B" & i) = Sheets(i).Range("C5")
    .Range("C" & i) = Sheets(i).Range("C6")
    .Range("D" & i) = Sheets(i).Range("C7")

    End With
Next i
End Sub

dit verzamelt de gegevens uit alle werkbladen en plaatst deze in kolom A:D van het eerste werkblad.

Lambert


Hoi Lambert,

Bedankt voor de tips en het snelle reageren.
Echter is het zo dat de gegevens niet in aangrenzende cellen zitten.
Wel in C4, C5, C6 en C7, maar bijvoorbeeld ook in I11.
Moet ik het per reeks invullen? Dus eerst alle namen (C4), daarna alle geboortedata (C5)? Of kan alles in 1 keer?

Groeten, GVGV
 
Hi,

de regel .Range("A" & i) = Sheets(i).Range("C4")
dient slechts ter illustratie.
omdat ik niet weet hoe jouw bestand er uit ziet.

je moet voor elk veld wat je wilt toevoegen in je tabel (naam, geboortedatum, adres etc.) zo'n regel in de code zetten.
Denk er daarbij aan dat je de 'A' telkens met één letter ophoogt. (A- B - C - etc)
de cel in "Range("C4")" moet dan verwijzen naar de locatie van het veld in het werkblad met klantgegevens.

groet,
 
Hi,

de regel .Range("A" & i) = Sheets(i).Range("C4")
dient slechts ter illustratie.
omdat ik niet weet hoe jouw bestand er uit ziet.

je moet voor elk veld wat je wilt toevoegen in je tabel (naam, geboortedatum, adres etc.) zo'n regel in de code zetten.
Denk er daarbij aan dat je de 'A' telkens met één letter ophoogt. (A- B - C - etc)
de cel in "Range("C4")" moet dan verwijzen naar de locatie van het veld in het werkblad met klantgegevens.

groet,

Hoi Lambert,

Ik begrijp nog niet wat je bedoelt.
Ik voeg 2 foto's bij. 1 van hoe het model nu is, en 1 van hoe het zou moeten worden.

Oud:
ATTACH=CONFIG]304833[/ATTACH]

Nieuw:
Naamloos2.jpg

Ik hoop dat het zo concreter lukt.
Nogmaals: ik ben echt een beginner, dus vind wat je tot nu toe stuurde al erg moeilijk.

Alvast bedankt.

Groeten, GVGV
 

Bijlagen

  • Naamloos.jpg
    Naamloos.jpg
    141,1 KB · Weergaven: 53
Hi,

hier de code iets meer toegespitst op jou model:
Code:
Sub LaM()
For i = 2 To Sheets.Count

    With Sheets(1)
    
    .Range("A" & i) = Sheets(i).Range("G9")
    .Range("B" & i) = Sheets(i).Range("C11")
    .Range("C" & i) = Sheets(i).Range("C12")
    .Range("D" & i) = Sheets(i).Range("H11")
    .Range("E" & i) = Sheets(i).Range("H12")
    .Range("F" & i) = Sheets(i).Range("C14")
    .Range("G" & i) = Sheets(i).Range("C15")
    .Range("I" & i) = Sheets(i).Range("C16")
    'kopieer deze regels voor alle volgende velden
    
    End With
Next i
End Sub


je moet deze toevoegen in de VBA editor. deze open je met ALT + F11
Daar zie je links in beeld jouw bestand staan met daar onder alle tabbladen. De laatste heet "ThisWorkbook".
dubbel klik daar op. er verschijnt een groot wit teksvlak waar je de bovenstaande code kunt plakken.
druk dan op F5 om de code uit te voeren.

Lambert
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan