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

Fout bij kopieeren met macro

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.055
Besturingssysteem
Wndows 10
Office versie
2016
Hallo forumleden,

Ik probeer via een macro een range van een blad naar een ander blad ik heb deze macro gevonden op het forum gemaakt door Wigi.

Code:
Sheets("calculatie").Range("E32:I32").Copy
Sheets("Calc.overzicht").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues

Wigi

Deze heb ik aan gepast door

Code:
Private Sub CheckBox1_Click()
Sheets("Data1").Range("A1:M6").Copy
  Sheets("Brand").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
    
End Sub

Maar ik krijg een fout melding 1004 "Methode PastSpecial van klasse range is mislukt".

Wat gaat hier dan mis???
 
Atwist,

Heb je soms Samengevoegde cellen in het bereik dat gekopieerd word?
 
Beste Hoornvan,

Heb je soms Samengevoegde cellen in het bereik dat gekopieerd word?

Dat klopt in de gekopieerde range zitten samengevoege cellen.
 
Atwist,

Daar word steeds opgewezen dat dit voor problemen kan zorgen.
Dus denk ik dat dit het probleem is.
 
Hoorvan,

Ik ga eens kijken of ik deze cellen kan los koppelen, ik zit namelijk met een vaste layout indeling.
 
Heb alle samengevoegde cellen verwijderd, maar krijg weer fout 1004 maar nu met de tekst dat "alle samengevoegde cellen moeten dezelfde afmeting hebben"
 
Vermijd copy / Paste(special):

Code:
Private Sub CheckBox1_Click()
  Sheets("Brand").cells(Rows.Count,1).End(xlUp).Offset(1).resize(6,18)=Sheets("Data1").Range("A1:M6").Value
End Sub
 
Heb alle samengevoegde cellen verwijderd, maar krijg weer fout 1004 maar nu met de tekst dat "alle samengevoegde cellen moeten dezelfde afmeting hebben"

Dat zijn er toch nog samengevoegde cellen in het bereik.
Je kunt in Excel 2007 laten zoeken naar samengevoegde cellen.

Met vriendelijke groet,


Roncancio
 
Atwist,

Ik heb je code die je aangepast had naar je eigen wensen, getest en het werkt perfect.
De ene regel code van snb heb ik ook gebruikt en werkt ook perfect.

Dus aan de code ligt het niet.

Lukt het niet, zet dan het bestandje zonder gevoelige info hier.
 

Bijlagen

  • Test de code.xls
    42 KB · Weergaven: 45
Laatst bewerkt:
In bijlage zit een macro waarmee je in versie 2003 samengevoegde cellen kunt opsporen.
 

Bijlagen

  • Merged Cell Finder.xls
    35,5 KB · Weergaven: 32
@ SNB,

Ik had PastSpecial gebruikt om ook de celeigenschappen mee te kopieeren.

@ Roncancio,

Er stond op in het doel bereik nog 2 cellen samengevoegd.

@ Hoornvan,

U bestand werkt bijna perfect ik had ook graag de celeigenschappen mee gekopieerd.

@ Warme bakkertje,

Het probleem is opgelost zie : @Roncancio:thumb:
 
Hoe kan ik deze code verbouwen zodat ik de celeigenschappen ook mee kan kopieeren, ik wil graag de rand opmaak en de vette tekst late meenemen.

Heb deze code van Hoornvan gekregen.

Code:
Sub Verplaats()
  Sheets("Brand").Cells(Rows.Count, 1).End(xlUp).Offset(0).Resize(6, 13) = Sheets("Data1").Range("A1:M6").Value
  'Sheets("Data1").Range("A1:M6").Copy
  'Sheets("Brand").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues
End Sub
 
Code:
Sub Verplaats()
  Sheets("Brand").Cells(Rows.Count, 1).End(xlUp).Offset(0).Resize(6, 13) = Sheets("Data1").Range("A1:M6").Value
  Sheets("Data1").Range("A1:M6").Copy
  Sheets("Brand").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteAll
End Sub

Met vriendelijke groet,


Roncancio
 
Beste Roncancio,

Ik heb de code aangepast maar de eigenschappen gaan niet mee, zie bestand
 
Beste Roncancio,

Ik heb de code aangepast maar de eigenschappen gaan niet mee, zie bestand

Ik zie de aanpassing niet.
Hoe dan ook, ik heb de code in het bestand geplaatst en volgens mij werkt het zoals je het voor ogen heeft.
Als dat niet zo is, dan hoor ik dat graag.

Met vriendelijke groet,


Roncancio
 

Bijlagen

  • Test de code.xls
    53,5 KB · Weergaven: 29
Beste Roncancio,

Het werkt nu wel, zie niet wat het verschil is maar daar kom ik nog wel achter:thumb:
 
Het werkt nu wel, zie niet wat het verschil is maar daar kom ik nog wel achter:thumb:

Code:
Sub Verplaats()
  Sheets("Brand").Cells(Rows.Count, 1).End(xlUp).Offset(0).Resize(6, 13) = Sheets("Data1").Range("A1:M6").Value
  Sheets("Data1").Range("A1:M6").Copy
  Sheets("Brand").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial [COLOR="Red"][B]xlPasteAll[/B][/COLOR]
End Sub

Alleen de rode tekst is aangepast.
De code stond nog niet in het bestand.

Met vriendelijke groet,


Roncancio
 
Atwist,

De bovenste regel code is van snb.
De andere regeels had ik een ' voorgezet, zodat je kon zien dat hij het ook met 1 regel doet.
Nu blijkt dat die regel niet de opmaak mee neem.
Dus kun je die regel verwijderen en heb je de onderste 2 regels maar nodig, die neemt de opmaak wel mee.

Sorry voor het ongemak.
 
Vermijd copy /pastespecial

Als je alleen waarden wil overzetten gebruik dan:

Code:
Sub kopie_waarden()
  Sheets("Brand").Cells(Rows.Count, 1).End(xlUp).Offset(0).Resize(6, 13) = Sheets("Data1").Range("A1:M6").Value
End Sub

Als je waarden én opmaak wil overzetten gebruik dan:
Code:
Sub kopie_met_opmaak()
  Sheets("Data1").Range("A1:M6").Copy  Sheets("Brand").Range("A" & Rows.Count).End(xlUp).Offset(1)
End Sub

Gebruik pastespecial alleen als het niet anders kan: als je alleen opmaak wil kopiëren, wil transponeren of een berekening wil uitvoeren.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan