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

Kopieren naar eerst beschikbare regel in ander Excel bestand

Status
Niet open voor verdere reacties.

quintengel

Gebruiker
Lid geworden
14 jan 2010
Berichten
9
Beste lezers,

Ik heb een vraagje over excel en ben verder helemaal onbekend met macro's en VBA. Heb al wat gezocht op het forum en vindt hier allemaal codes maar kan hier tot nog toe niet echt wijs uit worden.

Ik wil Excel automatisch een regel uit tablad X laten kopieren naar de eerst beschikbare regel in een ander (overzichts) bestand in Excel. Tablad X wordt dagelijks aangepast en naar elke aanpassing moet dus automatisch een regel naar een overzicht in eeen ander excel bestand worden gekopieerd. Is dit mogelijk?

Alvast bedankt voor jullie reacties!
Mvg
Quint
 
Beste Wim,

Bedankt voor je snelle reactie. Ik heb e.a. even bekeken maar kom er niet uit, al die VBA code is voor mij echt een groot vraagteken.

Kan iemand een duidelijke uitleg verzorgen, zo ingewikkeld kan het toch niet zijn! Alvast super bedankt!

Mvg,
Quint
 
Beste lezers,

Tablad X wordt dagelijks aangepast en naar elke aanpassing moet dus automatisch een regel naar een overzicht in eeen ander excel bestand worden gekopieerd. Is dit mogelijk?

Quint

En na kopieeren, moet dan de regel op Tabblad X weg ?
 
Beste Jacques,

Bedankt voor je reactie. De regel op tablad X mag gewoon blijven staan, het gaat echt om het kopieren van die regel naar de eerste beschikbare regel in een ander excel bestand. De indeling van de kolommen op tablad X is gelijk aan de indeling van de kolommen in het andere excel bestand.

Mvg,
Quint
 
Beste Quint, als je echt totaal onbekend bent met VBA is er goede kans dat dit je niet op basis van wat uitleg gaat lukken, maar om je een beetje op weg te helpen, dezelfde code waar Hoornvan naar verwees, met wat uitleg ertussen

Code:
Sub Overdragen()
With Application
         'With xxx geeft aan dat alle opdrachten die beginnen met een punt gelezen moeten worden als xxx.Opdracht

    .ScreenUpdating = False
       'zorgt alle handelingen 'onzichtbaar' gebeuren

[Blad1!A1].Resize(, [IV1].End(xlToLeft).Column).Copy
      'pakt op Blad1 de volledige eerste regel en kopieert deze.

Workbooks.Open "C:\Excel\Totaal.xls" 'Pad nog aan te passen
          'opent het bestand waar naar weggeschreven moet worden.

[Blad1!A65536].End(xlUp).Offset(1).PasteSpecial xlPasteValues
          '[Blad1!A65536].End(xlUp)   gaat van de onderste cel in Blad1 van het zojuist geopende werkboek omhoog naar de eerste cel met iets erin. 
          '.Offset(1) gaat vervolgens één rij naar beneden. Da's handig, op die manier schrijf je dingen weg op de eerste lege regel.
           '.PasteSpecial xlPasteValues    is niets anders dan Plakken Speciaal --> Waarden. Op die manier voorkom je dat je formules gaat lopen plakken, die in een ander bestand meestal voor chaos en ergernis zorgen. 

ActiveWorkbook.Close True
         'sluit het actieve bestand, in dit geval dus het bestand waarin de regel is weggeschreven.


Workbooks.Open "C:\Excel\Verzend.xls" 'Pad nog aan te passen
[Blad1!A65536].End(xlUp).Offset(1).PasteSpecial xlPasteValues
ActiveWorkbook.Close True
            'doet dit allemaal nog een keer maar naar een ander bestand, voor jou niet zo relevant, gok ik.

    .CutCopyMode = False
          'zorgt dat de geslecteerde cellen uit het geheugen gaan (dacht ik?)

    .ScreenUpdating = True
          'zorgt dat veranderingen weer WEL weergegeven worden op het scherm.

End With
     'afsluiting van With ... End With hierboven.
End Sub


Wat misschien makkelijker is: voorbeeldbestandjes.
En meer info. Wanneer moet de info weggeschreven worden? Je zegt 'na elke aanpassing', maar dat levert chaos op, want dat betekent dat er iets weggeschreven wordt élke keer als er één cel verandert.

Succes, groeten, Marcel
 
Zelfde bewerking, nu zonder copy
Code:
Sub Overdragen()
'Rij
sq = Workbooks("werkbestand.xls").Sheets(1).UsedRange.Rows(1)
sl = [IV1].End(xlToLeft).Column
For j = 1 To 2
  With Workbooks.Open("C:\Excel\" & Choose(j, "Totaal", "Verzend") & ".xls")
     .Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, sl) = sq
     .Save
     .Close False
  End With
  Next
End Sub
 
Toelichting VBA code's

Beste Quint, als je echt totaal onbekend bent met VBA is er goede kans dat dit je niet op basis van wat uitleg gaat lukken, maar om je een beetje op weg te helpen, dezelfde code waar Hoornvan naar verwees, met wat uitleg ertussen

Marcel

Ben zelf ook niet bekend met VBA en daarom volg ik deze items.
Marcel, ik vind de toelichting zeer duidelijk.Top :thumb:

Met vriendelijke groeten,

Oeldere
 
Beste Marcel,

Allereerst enorm bedankt voor je reactie en je uitleg. Excuses voor de late reactie, ik heb een aantal dagen in het buitenland gezeten.
Ondanks de duidelijke uitleg kom ik er nog niet helemaal uit, de code begrijp ik iets beter, maar de stappen om er te komen ontbreken me nog. Heb gewoon te weinig kennis van macro's en VBA. Naar aanleding van jou reactie zal ik even een voorbeeldbestand plaatsen.

Het 'Samenvatting' excel bestand is een soort van sjabloon. Hij wordt elke keer onder een andere naam opgeslagen en de 'lege' wordt telkens opnieuw gebruikt. De gegevens die in Samenvatting.xls in rij 4 komen te staan moet automatisch worden gekopieerd naar de eerst beschikbare regel in het overzicht.xls bestand. Er moet bijvoorbeeld een button op het Sammenvatting tablad komen met 'kopieer naar totalen'. Zo wil ik uiteindelijk een overzicht krijgen van alle verstuurde facturen.

Enorm bedankt weer voor jullie aandacht en ik hoop dat iemand een geschikte oplossen heeft. Alvast mijn dank.

Mvg,
Quint
 

Bijlagen

  • Samenvatting.xls
    14 KB · Weergaven: 76
  • Overzicht.xls
    15 KB · Weergaven: 95
Je moet enkel het juiste pad nog aanpassen in de macro overdragen
 

Bijlagen

  • Samenvatting.xls
    26 KB · Weergaven: 187
Hartelijk dank Warme Bakkertje!

Het is gelukt! Helemaal goed!

Bedankt voor al jullie hulp!

Mvg,
Quint
 
:thumb: Graag gedaan.
Zet je de vraag dan nog even op opgelost (rechts onderaan de pagina)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan