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

Samenvoegen

Status
Niet open voor verdere reacties.

henryvanbeek

Gebruiker
Lid geworden
10 jan 2007
Berichten
84
Beste Helpmij,

Weer een uitdaging aangegaan met mezelf. Het volgende wil ik doen. Ik heb 5 lijsten met gegevens met dezelfde kolomindeling en die wil ik dan onder elkaar zetten in een lijst.
Namelijk deze lijst kunnen we dan opsturen en deze word dan door software in een database verwerkt. Maar zoiets zou toch moeten kunnen met samenvoegen.

Of iets in VBA.

Dit is een uitgekleede versie van de lijst..

Bekijk bijlage RCM - Boom - Sleever_Test2.zip


kan iemand me hiermee verder helpen?

Met vriendelijke groet,

Henry van Beek
 
Inderdaad met VBA

Code:
Sub samenvoegen()
Application.ScreenUpdating = False
    For Each sh In ThisWorkbook.Sheets
        If sh.Name <> "Upload" Then
            For i = 2 To sh.Range("A" & sh.Rows.Count).End(xlUp).Row
                With Sheets("Upload")
                    sh.Rows(i).Copy .Range("A" & .Range("A" & .Rows.Count).End(xlUp).Row + 1)
                End With
            Next i
        End If
    Next
Application.ScreenUpdating = True
End Sub
 
VenA, In ieder geval bedankt ik ben een stukje verder. Maar nu de vraag als ik specifiek de sheets waar hij het weg moet halen wil benoemen. Namelijk in de sheet die ik wil gebruiken staat meer informatie in. Maar die heb ik er uit geknipt omdat er vertrouwelijke info in stond en de file anders te groot werd.
 
De code maakt een één op één kopie van de data uit de verschillende tabjes naar de tab Upload. Als je bepaalde tabje wil uitsluiten dan zal je dat hier
Code:
If sh.Name <> "Upload" Then
ergens moeten aanpassen. Zonder voorbeeld kan ik niet beoordelen welke wel en welke niet meegenomen moeten worden.
 
Zet de te selecteren sheets in een Array en loop daar dan doorheen.
 
een voorbeeld is dat bv. systeem en asembly naar upload toe moeten. Ik zoek even op hoe ik die aray kan maken en hoe ik die moet gebruiken.
 
Code:
Sub samenvoegen()

    Application.ScreenUpdating = False
    mySheetArray = Array("Systeem", "Assembly")
        For Each it In mySheetArray
            Sheets("Upload").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(Sheets(it).Cells(1).CurrentRegion.Rows.Count - 1, 10) = _
                Sheets(it).Range("A2:J" & Sheets(it).Cells(1).CurrentRegion.Rows.Count).Value
        Next
    Application.ScreenUpdating = True
    
End Sub
 
Beste Rudi / VenA,

De code heb ik ingevoegd maar het gaat mis in de volgende regel, Mijn vermoeden is dat het mis gaat in de manier waarop ik de sheets declareer in de aray.
Alleen het ontbreekt mij aan de kennis om te begrijpen wat ik nu verkeerd doe.


Code:
Sub samenvoegen()

    Application.ScreenUpdating = False
    
    'Sheets("Upload").Select
    'Rows("2:2").Select
    'Range(Selection, Selection.End(xlDown)).Select
    'Selection.ClearContents
    
    mySheetArray = Array("Object", "Installatie", "Systeem", "Assembly", "Component")
        For Each it In mySheetArray
        [COLOR="#FF0000"]    [B]Sheets("Upload").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(Sheets(it).Cells(1).CurrentRegion.Rows.Count - 1, 10) = _
                Sheets(it).Range("A2:J" & Sheets(it).Cells(1).CurrentRegion.Rows.Count).Value[/B][/COLOR]        Next
    Application.ScreenUpdating = True
    
End Sub
 
Ik weet niet of het met het kopîëeren gebeurd is, maar die Next moet wel op de volgende regel.
Getest op jouw voorbeeldbestand doet hij het prima !
 
die amateur, ok, maar die proffesional, is dat geen professional :o ?
 
tja het moet natuurlijk een professional zijn .. maja wie is perfect he..

Nu back to the point.. het werkt bij mij niet
@ Rudi Next op de vorige regel dat was een fout in het kopieren van de code
ik heb office 2010
 
Kan je miscchien nogmaals een voorbeeldje van je werk tot nu toe plaatsen. Inclusief de tabjes en de code? (Er hoeft nagenoeg geen data in te staan.)
 
Hoi,

Ik je PB wel gezien maar kan er niet op reageren omdat ik geen vereningslid of donateur ben? (Ik ga eens zoeken op Helpmij:D)

Maar maakt ook niet zoveel uit. Gewoon even nagenoeg al je regels en (eventuele opmaak) uit de diverse tabjes verijderen en dan het het bestand even oplaanals en dan hier plaatsen. Ik denk dat je ergens een typefoutje gemaakt hebt.
 
ik gok dat ook op een tikfout, vb. nog ergens een spatie achter een naam van een werkblad zoals "Assembly "
 
beste helpmij mede forum leden,

bij deze een link naar 4shared. ik krijg het bestand gewoon niet onder de de 1Mb zonder afbreuk te doen aan het testen.

>>>>hier<<<<
 
En nu? case closed? Of ga je alle onnodige data verwijderen en plaats je het het bestandje opnieuw?
 
De reden waarom het niet werkt is wanneer er geen data op een bepaald blad staat.
Is dit toevallig of kan dit voorkomen dat een werkblad geen gegevens bevat ?
 
Hey Rudi / VenA,

Een van de databladen was i.d.d. leeg en dat is ook het probleem. Ik heb er nu een messagebox voorgezet met de melding dat de bladen niet leeg mogen zijn
Nu op zoek naar een manier op te valideren dat de data niet leeg is.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan