Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: VBA cellen kopiëren naar ander bestand...  (gelezen 35885 keer)

0 leden en 1 gast bekijken dit topic.

Offline sammyvandeputte

  • Lid
  • *
  • Berichten: 51
  • Geslacht: Man
VBA cellen kopiëren naar ander bestand...
« Gepost op: 03 juni 2019, 15:54:46 »
Beste specialisten

Waarom doet (mijn opgenomen) macro het niet?
Vanuit het geopende bestand "uno" met sneltoets S: De macro selecteert de cellen A1 en A2 van werkblad "samen". opent vervolgens bestand "alles", gaat daar naar de eerste lege cel in kolom A en moet daarin de gegevens plakken, het bestand alles opslaan en sluiten... Of zou dit moeten doen... :(

Sub Macro2()
'
' Macro2 Macro
'
' Sneltoets: Ctrl+Shift+A
'
    Sheets("samen").Select
    Range("A1:B1").Select
    Selection.Copy
    Workbooks.Open Filename:="C:\Users\Sammy\Documents\alles.xlsx"
   
    Range("A1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWindow.Close
End Sub

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #1 Gepost op: 03 juni 2019, 17:11:35 »
Hallo Sammy,

probeer deze code eens:

Sub Macro2()

     Worksheets("samen").Range("A1:A2").Copy
     Workbooks.Open Filename:="C:\Users\Sammy\Documents\alles.xlsx"
     Sheets("Blad1").Range("A" & Rows.Count).End(xlUp).Offset(1).Select
     ActiveSheet.Paste
     ActiveWorkbook.Save
    ActiveWindow.Close
End Sub

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #2 Gepost op: 03 juni 2019, 17:12:47 »
Zoiets?
Sub dotch()
Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\Users\Sammy\Documents\alles.xlsx"
Set doel = Workbooks("alles.xlsx").Worksheets("Blad1")
LRDoel = doel.Cells(doel.Rows.Count, "A").End(xlUp).Offset(1).Row
    Workbooks("uno.xlsm").Worksheets("samen").Range("A1:B1").Copy _
    Workbooks("alles.xlsx").Worksheets("Blad1").Range("A" & LRDoel)
Application.CutCopyMode = False
    ActiveWorkbook.Save
    ActiveWindow.Close
End Sub

Offline Danny A

  • Volledig lid
  • **
  • Berichten: 125
  • Geslacht: Man
  • Oplossing.be
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #3 Gepost op: 03 juni 2019, 17:38:56 »
is dit iets ?

groet
Danny

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #4 Gepost op: 03 juni 2019, 17:48:05 »
@ Danny,
Vermijdt het gebruik van Select,het is zelden nodig en het vertraagt je code.
DezeSheets("samen").Range("A1:B1").Copydoet net hetzelfde als
Sheets("samen").Select
    Range("A1:B1").Select
    Selection.Copy

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #5 Gepost op: 03 juni 2019, 18:23:53 »
@ allen,
De gegeven oplossingen doen allemaal wat Sammy's code eigenlijk ook hoort te doen, maar dan in een verbeterde (met variaties) uitvoering.
So far so good, maar de vraag was eigenlijk
Citaat
Waarom doet (mijn opgenomen) macro het niet?

@ Sammy,
Lang geleden, zeg. Vraagje nog steeds vanuit dezelfde bezigheid ?  ;)

Zoals hierboven min of meer aangegeven: er is geen enkel argument te vinden waarom je code niet zou werken.
Wat ik wel zie : je hebt het over sneltoets S, maar je code wordt getriggerd door Ctrl+Shift+A.
Misschien zit daar het addertje ?
Probeer anders eens in de editor je code met F5 uit te voeren (als dat wél werkt mag je aannemen dat het aan de sneltoets ligt), gaat het toch niet dan kan je nog met F8 je code regel per regel uitvoeren om te zien waar het spaak loopt.
Succes !

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #6 Gepost op: 03 juni 2019, 19:40:33 »
Hallo pitufo,

De code van Sammy werkt niet. De sneltoetscombinatie heeft er niets mee te maken, want ook de macro handmatig uitvoeren in de Macro-editor geeft verschillende foutmeldingen. Ik denk niet dat de vraag van Sammy beantwoorden, ook gelijk zou zijn aan Sammy helpen. Code meegeven die wel werkt leek mij voldoende.  ;)
Zo dachten de meeste helpers er trouwens over  :).

Groeten,

Theo

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #7 Gepost op: 03 juni 2019, 21:06:04 »
De meeste helpers dachten er inderdaad zo over, SoftAid, en ik zeg ook niet dat ze ongelijk hadden om een betere code voor te stellen.
Zelf heb ik de code van Sammy zelfs niet geprobeerd, ze gewoon lezen volstaat om te zien dat ze moet werken, en dus vond ik een bijkomende reactie tamelijk wenselijk.
Op welke regels (je zegt namelijk "verschillende foutmeldingen") gaat die bij jou dan fout ?

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #8 Gepost op: 03 juni 2019, 22:04:57 »
hallo pitufo,


Zelf heb ik de code van Sammy zelfs niet geprobeerd, ze gewoon lezen volstaat om te zien dat ze moet werken...
Ze "moet" wel, maar ze doet het toch niet, hoor.....  :P
Op welke regels gaat die bij jou dan fout ?
Op mijn Excel 2007:

ActiveCell.Offset(1, 0).Range("A1").Select
geeft: Fout 1004 tijdens uitvoering: Door de toepassing of door het object gedefinieerde fout.

Ik had nog een andere foutmelding, maar dat is als je de macro uitvoert terwijl werkboek alles.xlsx al geopend is.
Dat kan mogelijk nog opgevangen worden....

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #9 Gepost op: 04 juni 2019, 10:10:47 »
Hoi SoftAid,

Over de foutmelding ingeval het doelwerkboek al open is moeten we misschien niet wakker liggen, aangezien het uitgangspunt van Sammy toch was dat het nog moest geopend worden.
Maar volledigheidshalve al :
Citaat
Dat kan mogelijk nog opgevangen worden....
Dat kan inderdaad. Je kan 'indien fout' met de volgende instructie laten verdergaan, t.t.z. "on error resume next" vóór de open-instructie.

Wat de essentie betreft is er inderdaad iets vreemds aan de hand: vanuit de vba-editor werkt de oorspronkelijke code perfect, maar met de sneltoets flipt ze.
Ik zie (al dan niet voorlopig  0:-) ) ook geen verklaring.
Wordt mogelijk vervolgd...

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #10 Gepost op: 04 juni 2019, 14:46:42 »
Hoi,
Zopas terug even tijd gevonden om een ietsje verder te kijken...

Wat blijkt ? Vooreerst dat er met de oorspronkelijke code van Sammy niets mis was, want zowel deze code als alle hier geboden alternatieve oplossingen geven hetzelfde resultaat, namelijk het werkt wél via de vba-editor en níet via de sneltoets  :'(

Als er geen ander bestand bij betrokken is OF als het doelbestand al geopend is en dan
"Workbooks.Open Filename:="C:\Users\Sammy\Documents\alles.xlsx"
wordt vervangen door bv.
"Workbooks("alles.xlsx").Activate"
dan werkt het ook met de sneltoets.

Het heeft er dus alle schijn van dat "Workbooks.Open" in combinatie met een sneltoets de boosdoener is  ???
Voor de joke heb ik ook nog vlug eens de macro gekoppeld aan de werkbalk "snelle toegang" en dat werkt ook goed.

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #11 Gepost op: 04 juni 2019, 15:02:30 »
Hehe, dat is nu al de tweede maal dat ik op mezelf moet reageren  :D

Namelijk deze nog gevonden:
https://stackoverflow.com/questions/17409524/excel-vba-macro-hangs-after-opening-a-document-when-run-via-shortcut-key-but-r


"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #12 Gepost op: 04 juni 2019, 16:20:09 »
Hehe, dat is nu al de tweede maal dat ik op mezelf moet reageren  :D
Je sterkste concurrent.....  ;D ;D

Vooreerst dat er met de oorspronkelijke code van Sammy niets mis was, want zowel deze code als alle hier geboden alternatieve oplossingen geven hetzelfde resultaat, namelijk het werkt wél via de vba-editor
Ik had het bijlage-bestand van Sammy niet gezien, omdat hij de code in zijn bericht plaatste. In "Recente topics" heb ik zijn code gekopieerd en geplakt in een nieuw werkboek. En een map alles.xlsx aangemaakt onder C:\....\...
En toen werkte de Macro, gestart vanuit de editor NIET.
Nu download en open ik uno.xlsm van Sammy, en deze werkt hier wel, ondanks dat ik geen verschil ZIE in de beide codes.
Met die sneltoetsen heb ik mij niet bezig gehouden, daarom ook dat ik schreef dat die niet de boosdoener was dat de code bij Sammy niet werkte.
Ik vatte de vraag van Sammy op alsof de macro niet werkte (wat hij bij mij ook niet deed), dus niet dat de uitvoering via sneltoets problemen gaf. Als Sammy had geschreven: De macro werkt via de editor, maar niet via de sneltoetsen, dan had ik het anders begrepen.

:) SoftAid :)             


 
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #13 Gepost op: 04 juni 2019, 16:57:53 »
Hoi SoftAid,

Zoals wel vaker dus : samen komen we er wel  :)
Bovendien zijn we weer wat wijzer: het is niet de combinatie Workbooks.Open met 'een sneltoets', maar wel de combinatie Workbooks.Open met een sneltoets die gebruik maakt van SHIFT (getest !), in elk geval een regelrechte bug dus.

Groetjes,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline sammyvandeputte

  • Lid
  • *
  • Berichten: 51
  • Geslacht: Man
Re: VBA cellen kopiëren naar ander bestand...
« Reactie #14 Gepost op: 04 juni 2019, 19:08:21 »
Beste allen

Het ligt dus echt wel aan die sneltoets... Ongelofelijk!!!
Ik maakte deze oefening voor mijn cursisten van Excel-uitbreiding in het volwassenenonderwijs om hen te tonen dat ze puur met de macrorecorder zonder enige kennis van VBA ook zaken kunnen automatiseren... Eerste keer dat die sneltoets niet werkt!!! Ik had geen antwoord...
En om hen ook warm te maken voor de cursus Programmeren met VBA in Excel (niet mijn specialiteit...).

PS Traditioneel laat ik hen in de laatste les ook kennismaken met dit FORMIDABELE forum (niet eerder of mijn moeilijkste opdrachten worden door jullie opgelost  ;)  )

Hartelijk dank
Sammy

 


www.combell.com