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

Cellenbereik dmv naam kopieren in een MACRO

Status
Niet open voor verdere reacties.

MHamersma

Gebruiker
Lid geworden
10 aug 2009
Berichten
22
Hallo,

ik ben net nieuw hier, maar ik probeer mijn vraag goed te formuleren.

eigenlijk wil ik in onderstaande macro :

Sub Macro3()
'
' Macro3 Macro
' De macro is opgenomen op 10-8-2009 door mhamersm.
'

'
Range("B16").Select
Application.Goto Reference:="data"
Selection.Copy
Range("E22").Select
ActiveSheet.Paste
Range("E22").Select
Application.CutCopyMode = False
End Sub


"data" wllen laten invullen door een waarde (lees - gegevensbereik / naam) uit een cel !!


Alvast bedankt voor de reactie.
Marco

Bekijk bijlage voorbeeld.xls
 
Laatst bewerkt:
Code:
sub oplossing()
  range([B2].value).copy sheets(2).[K10]
End sub

Als in B2 de waarde "test", dan kopie van benoemd bereik 'test" naar blad 2, cel K10

kan ook geschreven worden als
Code:
sub oplossing()
  With sheets(1)
     .range(.Range("B1").value).copy sheets(2).range("K10")
  End With
End sub
 
Laatst bewerkt:
Daniël,


bedankt, maar jouw veld is een pull-down menu, en deze cel moet worden opgebouwd uit meerdere velden en uit karakters (bijv. L 13 PC B1 K1)

De L , 13 , PC, B1, K1 worden samengesteld tot 1 code nl. L13PCB1K1.

Deze code kan 960 varianten hebben, vandaar dat de macro moet verder gaan met het gecombineerde resultaat van deze code.

ik hoop dat je me verder kunt helpen !

Bedankt, marco
 
Laatst bewerkt:
Daniël,


bedankt, maar jouw veld is een pull-down menu, en deze cel moet worden opgebouwd uit meerdere velden en uit karakters (bijv. L 13 PC B1 K1)

De L , 13 , PC, B1, K1 worden samengesteld tot 1 code nl. L13PCB1K1.

Deze code kan 960 varianten hebben, vandaar dat de macro moet verder gaan met het gecombineerde resultaat van deze code.

ik hoop dat je me verder kunt helpen !


Bedankt, marco

Ik heb verder gewerkt na het lezen van deze regel in je bestandje
PHP:
als ik nu een macro zou starten, dan zou hij (cel A4) moeten nemen als naam en dan de selectie van het gebied nemen en dit kopieren naar blad2 cel A1 en dan plakken ?
In je voorbeeld bestandje verwijs je niet naar wat er nu in #4 staat , hoe stel je dit samen door =A1&B1&............. doe ons eens een degelijk voorbeelbestandje met alles wat je wil bereiken , gebruik eventueel wat kleuren ter verduidelijkking ik ben zeker dat ze je hier kunnen helpen .;)
Het dropdown had ik ingebouwd om het makkelijker te maken alsmede de macroknop
 
Laatst bewerkt:
Beste Marco, allereerst welkom op het forum.
Zie post #2 van snb voor de oplossing van je probleem
Code:
Sub oplossing()
  Range([A4].Value).Copy Sheets(2).[A1]
End Sub

Code:
Sub oplossing2()
  With Sheets(1)
     .Range(.Range("A4").Value).Copy Sheets(2).Range("A1")
  End With
End Sub
 
Laatst bewerkt:
Nieuw voorbeeld

HELPERS !

in het voorbeeld is mijn probleem te zien.

Het "data" bereik staat op blad1 en het "gegevens" bereik staat op blad2.

De macro werkt goed met data als het maar op blad1 staat, maar zodra ik het bereik "gegevens" wil overnemen dan neemt hij dit bereik niet over, omdat volgens mij het naambereik niet op dezelfde pagina staat !

Hopelijk kunnen jullie mij weer verder helpen ?
 

Bijlagen

Ik vind een draad leesbaarder zonder alteveel bijlagen:

Waarom
Code:
Private Sub Commandbutton1_click()
  call kopie
End Sub

Sub kopie()
  Range([A2].Value).Copy
  [Blad1!A20].PasteSpecial xlPasteValues
  Application.CutCopyMode = False
End Sub

ipv

Code:
Private Sub Commandbutton1_Click()
  Range([A2].Value).Copy [Blad1!A20]
End Sub

Een aparte module lijkt me overbodig, net zoals de instruktie 'call'.
 
Laatst bewerkt:
@snb heb je de tijd genomen om je code eens uit te proberen in een bijlage? Dan blijkt die aparte module zo slecht nog niet.
 
Allemaal bedankt, de aparte module werkt,
maar kan ik ook de opmaak meekopiëren ??

graag dit nog aanpassen dan zijn jullie van mij af !

gr. Marco

HEB HET AL GEVONDEN : PasteAll

Sub kopie()
Range([A1].Value).Copy
[Blad3!B13].PasteSpecial xlPasteAll
Application.CutCopyMode = False
End Sub

!!! THANKS ALLEMAAL !!!!
 
Laatst bewerkt:
Allemaal bedankt, de aparte module werkt,
maar kan ik ook de opmaak meekopiëren ??

graag dit nog aanpassen dan zijn jullie van mij af !:confused:

gr. Marco

HEB HET AL GEVONDEN : PasteAll

Sub kopie()
Range([A1].Value).Copy
[Blad3!B13].PasteSpecial xlPasteAll
Application.CutCopyMode = False
End Sub

!!! THANKS ALLEMAAL !!!!

We helpen je graag verder :) Ik zie wel telkens andere code's verschijnen dan, wat de vraag betreft , maar dat zal aan mij liggen ;)
suc6 :thumb:
 
@Rudi
maak gebruik van de speciale eigenschappen van Names.
Dat bespaart een aparte module.
Ook omzeilt deze copy-methode het prikbord en is deselecteren overbodig.

Code:
Private Sub CommandButton1_Click()
  ThisWorkbook.Names([Blad1!A2].Value).RefersToRange.Copy [Blad3!B13]
End Sub
 
Laatst bewerkt:
Kontroleer:
- of Blad1 bestaat
- of Blad3 bestaat
- of cel A2 van Blad1 een geldige naam van een benoemd bereik bevat.

Code:
sub controle()
  Blad1.activate
  Blad3.activate
  c0=[Blad1!A2]
  c1=thisworkbook.names(c0).refersto
End Sub
 
Laatst bewerkt:
SUPER !!

NU WERKT HET WEL !!

Zal toch wel niet goed gekeken hebben net ! :shocked:

THANKS AGAIN ! :rolleyes:
 
Laten we er dan meteen maar voor zorgen dat in cel A2 van blad1 geen verkeerde gegevens kunnen worden geplaatst.
Code:
Private Sub Workbook_Open()
  For Each nm In ThisWorkbook.Names
    c0 = c0 & nm.Name & ","
  Next
  With [Blad1!A2].Validation
    .Delete
    .Add 3, 1, 1, c0
  End With
End Sub
Dan kunnen we Rudi's knop overbodig maken met:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$2" Then ThisWorkbook.Names(Target.Value).RefersToRange.Copy [Blad3!B13]
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan