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

Macro en relatieve verwijzing

Status
Niet open voor verdere reacties.

Roy 1977

Gebruiker
Lid geworden
8 jun 2010
Berichten
158
Goedemorgen,

ik zit met het volgende wat ik aan de hand van het voorbeeld kan toelichten.

- Als ik op de knop Macro in B3 druk zou ik een macro willen die de tekst in cel c3 kopiëert en deze in blad 2 in kolom A plakt als waarde in de eerste lege cel die we tegen komen. (in dit geval op A2)
- Als ik op de knop Macro in B4 druk zou ik dus vervolgens de tekst in cel C4 willen kopiëren en deze in blad 2 in kolom A ook weer in de eerste lege cel plakt (in dit geval dus op A3).

ik hoop dat iemand de gouden tip heeft :)

ps. ik wil heel veel knopjes onder elkaar gaan zetten dus ik zoek de oplossing in 1 macro die ik onder elke knop kan gebruiken. Dus dat op basis van de positie van de knop bepaald wordt welke cel er gekopieerd moet worden. Anders moet ik voor elke knop een andere macro maken met een vaste verwijzing naar de betreffende cel en ik hoop dus dat ik dat kan voorkomen.

Bij voorbaat dank!
Roy
 

Bijlagen

Laatst bewerkt:
Test deze eens:

Code:
Sub Verplaatsen()
 Dim Btnloc As Range
  Set Btnloc = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(, 1)
   With Sheets(2)
    Btnloc.Copy .Range("A" & .Range("A" & .Rows.Count).End(xlUp).Row + 1)
   End With
End Sub
 
Dank je Jean Paul! Mijn voorkeur zou zijn als ik niet de cel hoef te selecteren alvorens de macro te activeren, maar direct op de knop kan klikken. Volgens mij kan dat met het voorbeeld van Cobbe.

Cobbe, Super, in het voorbeeld document gaat het prima alleen mijn kennis schiet tekort om hem aan te passen. Als ik er met F8 doorheen stap kom ik ook niet verder.

1. ik begin op B19 met de knoppen en wil kopieëren uit C19, knop B20 kopieert uit C20 etc. http://prntscr.com/aczuhs
2. de sheet waar het naartoe moet heet niet Blad 2, maar "Niet voor online"

dank!
 
Laatst bewerkt:
Daar wijzigt niet veel aan de code, enkel als Tab Niet voor online niet als 2de blad staat dien je dat aan te passen, of zoals nu de expleciete naam opgeven:

Code:
Sub Verplaatsen()
 Dim Btnloc As Range
  Set Btnloc = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(, 1)
   With Sheets("Niet voor online")
    Btnloc.Copy .Range("A" & .Range("A" & .Rows.Count).End(xlUp).Row + 1)
   End With
End Sub
.De buttons dienen wel in de cel links van de te verplaatsen tekst te staan vermits de code de links bovenste cel van de macrobutton als referentie geeft.
 
Dit werkt super! Ik zou graag begrijpen wat je hier doet, maar wellicht lastig toe te lichten? Ik begrijp niet hoe je de positie van de knop bepaalt. In ieder geval geweldig!
 
Set Btnloc = ActiveSheet.Shapes(Application.Caller).TopLeftCell
Deze regel geeft het celadres van de meest linkse bovenste cel waarin de button staat.
Bij een kleine button is dat natuurlijk gelijk aan het celadres van de cel waarin de button staat.
Maar als je de button groter tekent bv: G5:I8 dan wordt het wel duidelijk want dan geeft die regel als adres $G$5.

Snappy?
 
Ja helemaal super! Ik ben nu allemaal knopjes aan het maken, maar dat wordt niet mooi. Ik schijn ook met een code de macro te kunnen activeren door gewoon in de cel te klikken, en dus niet op een knopje dat ik op die cel plaats. Dat is denk ik netter. Heb je daar ook een oplossing voor? Wil je dat ik een nieuwe topic open?

Dank!
 
Post eens een bestandje om te laten zien wat je wil maken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan