Macro laten plakken in opgegeven cel

Status
Niet open voor verdere reacties.

B767300ER

Gebruiker
Lid geworden
28 apr 2015
Berichten
46
Hallo Allemaal.
Ik kom hier al een hele tijd en heb veel nuttige informatie voorbij zien komen, waarvoor mijn dank!

Ik heb een vraag waar ik niet uitkom.

Middels een macro wil ik gegevens uit tabblad 1 plakken als waarde (paste-special) in tabblad 2. Beide tabbladen bevinden zich in dezelfde werkmap. Dat is op zichzelf niet zo heel spannend, behalve dan dat de macro de gegevens altijd in dezelfde cel plakt.
Dat moet veranderen. De macro moet de waarden plakken in een cel die ik opgeef.
Op het tabblad waar de waarden geplakt moeten worden, wil ik in cel A1 (of in elke andere nog nader te bapelen cel) aangeven waar de macro moet plakken.
Als in cel A1 de inhoud "B5"is, moet de macro gaan plakken in B5. Als de inhoud van A1 "C26"is, moet de macro waarden gaan plakken in C26 etc.
Is dat te doen in Macro's?


Mocht dat niet te doen zijn, dan is er een andere optie, die geniet echter niet mijn voorkeur.
Is er een code die de macro kan laten plakken in de eerste vrije kolom van een rij?
Bijvoorbeeld de eerste keer plakt hij in A1, de tweede keer, omdat A1 bezet is, plakt hij in B1 etc

Hopelijk kunnen jullie mij van dienst zijn.

Groeten Niels
 
1 van de mogelijkheden

Code:
r = Sheets("blad1").Range("a1").Value
Cells(1, 1).Copy Destination:=Range(r)

mvg
Leo
 
Dag B767300ER !

Zie bestand in bijlage. Is het zoiets wat je bedoelt?

Grtz,
MDN111.
 

Bijlagen

Plakken speciaal/ waarden is een ingewikkelde manier om de waarden in een bepaald gebied naar een ander gebied te zetten.
In VBA kan dat efficiënter dan in Excel

Als in cel A1 de cel-aanduiding staat (bijv.C10) voor werkblad 2, die dezelfde gegevens moet bevatten als cel b12 in werkblad1:

Code:
Sub M_snb()
   blad2.range(blad1.cells(1,1).value)=blad1.cells(12,2).value
End Sub

er zijn vele manieren om dit te schrijven in VBA; bijv . als alternatief:
Code:
Sub M_snb()
   Sheets("Blad2").range(sheets("Blad1").range("A1"))=Sheets("Blad1").Range("B12").value
End Sub
 
Laatst bewerkt:
Dag Niels,

komt er op neer om de cel te lezen waar je naartoe wilt kopieren
zoals in bijgevoegd voorbeeld, maar denk dat je beter je eigen voorbeeld
plaatst, enkel dan is een juiste oplossing te geven.


mvg

Leo
 

Bijlagen

Gaan we vanavond doen. Maar dan even een uitgeklede versie. Kan op de telefon niet alles doen...

Bedankt coor je hulp tot zover. Vanavond meer!
 
Plakken speciaal/ waarden is een ingewikkelde manier om de waarden in een bepaald gebied naar een ander gebied te zetten.
In VBA kan dat efficiënter dan in Excel

Als in cel A1 de cel-aanduiding staat (bijv.C10) voor werkblad 2, die dezelfde gegevens moet bevatten als cel b12 in werkblad1:

Code:
Sub M_snb()
   blad2.range(blad1.cells(1,1).value)=blad1.cells(12,2).value
End Sub



er zijn vele manieren om dit te schrijven in VBA; bijv . als alternatief:
Code:
Sub M_snb()
   Sheets("Blad2").range(sheets("Blad1").range("A1"))=Sheets("Blad1").Range("B12").value
End Sub

Het probleem is dat de waarden dus continu wisselen en dat er hele bereiken (naamvakken) gekopieerd moeten worden en zover ik heb geprobeerd lukt het bij deze niet.
Daarbij is de te plakken cel elke keer anders, deze macro houdt er rekening mee dat de cel waarin geplakt moet worden continu dezelfde is.
 
Laatst bewerkt:
Dag Niels,

komt er op neer om de cel te lezen waar je naartoe wilt kopieren
zoals in bijgevoegd voorbeeld, maar denk dat je beter je eigen voorbeeld
plaatst, enkel dan is een juiste oplossing te geven.


mvg

Leo

In dit bestand zie ik helemaal geen macro staan?
 
Dag B767300ER !

Om het duidelijk te laten overkomen maakt de code gebruik van Selection, Activate en Copy/Paste. Zoals snb aangeeft (zie #4) is dat niet de meest efficiënte methode. Afhankelijk van je uiteindelijke probleemdefinitie kan het misschien nog beter. Als, bijvoorbeeld het overbrengen van gegevens van het ene naar het andere werkblad, deel uitmaakt van een grotere macro, is het heen en weer switchen tussen de verschillende sheets misschien niet gewenst. In dat geval is het beter om "achter de schermen" te werken en geen gebruiik te maken van Activate en selection.

Grtz,
MDN111.
 
Kan je dat iets nader toelichten? Want ik begrijp deels wat je bedoeld, maar hoe kan je hetzelfde doen zonder Activate en Selection?
 
Dag B767300ER !

Veronderstel dat je bijvoorbeeld in een ander gedeelte van de macro bepaald hebt dat je de waarden van de range E10:F16 wil overbrengen naar de cel die ingevuld is in A1 op Sheet2. Je gaat dus de te kopiëren range niet zelf selecteren, dus geen Selection nodig. Als je het resultaat niet onmiddellijk wil zien, hoeft Sheet2 daarbij niet geactiveerd te worden. Alles hangt af van je toepassing, maar in de probleemdefinitie in #1 staat dat niet in detail gespecifieerd.

Zie nieuwe bijlage, voor een voorbeeld.

Grtz,
MDN111.
 

Bijlagen

Bedankt. ik denk dat ik hem snap.
En als de waarde nu niet in cel A1 staat, maar in B7, hoe is de code dan (om zeker te weten dat ik het begrijp)
 
Dag B767300ER !

De regels:
Code:
nRow = .Range(.Cells(1, 1).Value).Row
nCol = .Range(.Cells(1, 1).Value).Column
worden dan:
Code:
nRow = .Range(.Cells([COLOR="#FF0000"]7, 2[/COLOR]).Value).Row
nCol = .Range(.Cells([COLOR="#FF0000"]7, 2[/COLOR]).Value).Column

Grtz,
MDN111.
 
Bedankt MDN111,

Ik snapte het dus goed.
Top, bedankt voor de hulp allen, ik kan weer verder.

Groeten Niels
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan