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

Macro Aanvullen rijen in hoofdbestand

Status
Niet open voor verdere reacties.

GerbenDenker

Gebruiker
Lid geworden
29 mrt 2013
Berichten
74
Hallo, ik kom er niet uit.
Probeer allerlei dingen, maar het werkt niet.

Ik heb een werkbestand waarin gegevens komen (soort adres bestand die ik bewerk) en een moederbestand, waarin ik alles wil bewaren.



Ik heb 2 aparte bestanden, Tijdelijk en Hoofd.
In het bestand Tijdelijk - blad 1 - bereik A31:R31 komen waarden te staan.

Die wil ik kopiëren naar het bestand Hoofd - blad 1 - bereik A31:R31.
Maar... de nieuwe rijen moeten onderaan de reeds bestaande rijen komen te staan.

Zo wil ik de moederbase vullen (soort back-up) en kan ik het werkbestand daarna vullen met nieuwe gegevens.


Beide bestanden staan in d:\test

Weet iemand de macro code ervoor ?
 
Zal zoiets worden denk ik?
Code:
Sub Spaarie()
    Application.ScreenUpdating = False
    Workbooks.Open "D:\test\Hoofd.xls"
    With ActiveWorkbook
        With .Sheets(1)
            r = .Range("A" & Rows.Count).End(xlUp).Row
            ThisWorkbook.Sheets(1).Range("A31:R31").Copy .Cells(r, 1)
        End With
        .Close True
    End With
    Application.ScreenUpdating = True
End Sub
 
He hoi,

Het werkt perfect - dank !
Maar nu gebeurt het dat als ik de macro 2 x uitvoer (teveel klikken of zo) met nog dezelfde gegevens in Blad 1 van het bestand Tijdelijk, er dus teveel dubbele regels in komen staan....


Is het mogelijk om een veiligheid in te bouwen dat, als dubbele regels worden gekopieerd, de reeds bestaande blijven staan ?
Er mag geen foutmelding komen of zo; de rest moet worden door gekopieerd.
 
Nu heb ik erin 'gebouwd' dat als de regel gekopieerd is, de regel in bestand Tijdelijk leeg gemaakt wordt.
Code:
Sub Spaarie()
    Application.ScreenUpdating = False
    Workbooks.Open "D:\test\Hoofd.xls"
    With ActiveWorkbook
        With .Sheets(1)
            r = .Range("A" & Rows.Count).End(xlUp).Row
            With ThisWorkbook.Sheets(1).Range("A31:R31")
                .Copy .Cells(r, 1)
                .Clear
            End With
        End With
        .Close True
    End With
    Application.ScreenUpdating = True
End Sub
Akkoord?
 
Hoi,
Nee komt nu niet goed.

De gegevens worden niet geplakt in het Hoofdformulier en na afloop zijn de gegevens van het tijdelijke bestand gewist....
Dus nu zijn beide tabellen leeg..
 
Oeps :D *foutje bedankt*
Aangepast:
Code:
Sub Spaarie()
    Application.ScreenUpdating = False
    Workbooks.Open "D:\test\Hoofd.xls"
    With ActiveWorkbook
        With .Sheets(1)
            r = .Range("A" & Rows.Count).End(xlUp).Row
            With ThisWorkbook.Sheets(1).Range("A31:R31")
                .Copy ActiveWorkbook.Sheets(1).Cells(r, 1)
                .Clear
            End With
        End With
        .Close True
    End With
    Application.ScreenUpdating = True
End Sub
 
Hoi, het werkt nog niet helemaal zoals ik zou wensen, hoewel je hulp al heel wat heeft gebracht.
Na het overzetten (kopiëren naar de hoofd-base) worden de resultaten in de tijdelijke base gewist.
Dus dat werkt eigenlijk wel.

Het bestand Tijdelijk wordt vanuit een ander excel bestand gevuld dmv een macro of handmatig invullen door iemand.
Dat lukt, alleen kan het voorkomen dat degene die met het programma werkt, een dubbele rij vult in de tabel van het bestand Tijdelijk.
(Een rij die ik bijvoorbeeld al had binnengehaald c.q. verwerkt naar de Hoofd-base.

Eigenlijk zou ik als 2e vangnet dus nog willen dat als er een exact gelijke rij wordt gekopieerd naar de Hoofdbase, deze de reeds bestaande niet overschrijft, maar er feitelijk niets gebeurd.
De te kopiëren rij mag dan ook wel verwijderd worden uit de Tijdelijke base. Of overschrijven mag ook, als dat makkelijker is.

Als ik dat test, kopieert hij de reeds bestaande rijen er gewoon onder - aangevuld - . (in de Hoofdbase dus).
Is zoiets mogelijk ?

Als het te ingewikkeld is; de waarde in de cellen in kolom D zijn altijd uniek en mogen dus eigenlijk niet 2x hetzelfde zijn.
Is dat af te vangen, zodat, als de dubbele waarde (inclusief hele rij dus) gekopieerd wordt, dit dus niet gebeurd.
(Eventueel vervangen mag - liever niet).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan