Toon posts:

macro/vba om cellen naar andere cellen te kopieeren

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn vraag
Voor een ontwerp met kralen wil ik gekleurde cellen uit een bepaalde range naar andere cellen zetten.
De andere cellen, zijn de volgorde van de te rijgen kralen.

Relevante software en hardware die ik gebruik
Excel

Wat ik al gevonden of geprobeerd heb

Ik heb een macro gemaakt op basis van "macro opnemen". Op zich werkt dat goed, maar dat is maar voor een klein gedeelte. Bij grotere projecten, kan ik wel 200 kralen nodig hebben.
Lijkt mij onzinnig om onderstaand zo vaak te moeten kopiëren en per gedeelte de variabelen steeds handmatig aan moet passen.
Ik heb een Excel voorbeeld sheet, maar kan hier niet vinden hoe ik dat bijvoeg.

Dit is het stukje macro:

Cells.Find(What:="R1-1", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Copy
Range("J1").Select
ActiveSheet.Paste
Cells.Find(What:="R1-2", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Selection.Copy
Range("J2").Select

UItleg:
R(ood)1 is de naam van de draad. Er komt ook een R(ood)2 en wellicht nog meerdere, maar het is steeds een set van twee draden, dus b.v. B(lauw)1 en B(lauw)2.
-1 is de eerste kraal en het aantal kralen per draad is elke keer anders. (Het -teken staat er tussen voor de leesbaarheid, ander zou er R11 staan.)
J1 en J2 zijn de cellen waar R1-1 en R1-2 in komen te staan.
R1-3 komt in J3, R1-4 komt in J4, R1-5 komt in J5 enz enz.

R2-1 komt in K1, R2-2 komt in K2, R2-3 komt in K3 enz enz

In het ontwerp staan de namen van de draden met de nummers door elkaar, daarom ben ik op zoek naar een handiger manier om dit te doen.

Kan iemand het bovenstaande omzetten naar VBA?

Hoop dat het duidelijk is.
Vast bedankt voor de hulp

[ Voor 3% gewijzigd door Verwijderd op 02-08-2018 21:23 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Welkom :)

Zonder iedere regel code te hebben gelezen: volgens mij zoek je naar het principe van loops, bijvoorbeeld met de FOR() functie.

En je wilt "R1-1" en "J2" dus in variabelen zetten (*). De help van Excel zelf is daar best handig voor, ook kan je op het web allerhande tutorials vinden zoals https://www.excel-easy.com/vba/loop.html

(*) als je een variabele i hebt die 1...5 is en een variabele j die 1...2 die dan krijg je "R1-1" met: "R" & j & "-" & i

(incl aanhalingstekens). Ik zou zeggen: 'speel' wat met de concepten van FOR loops en van variabelen, probeer de code aan te passen en plaats de code waar je vastloopt. 'Blind' opname-code gebruiken is altijd een slecht idee, laat staan 'blind' de code van willekeurige mensen van het internet ;)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank voor je antwoord. Zal het eens uitproberen.

Wat bedoel je met:
'Blind' opname-code gebruiken is altijd een slecht idee, laat staan 'blind' de code van willekeurige mensen van het internet ;)
Heb ik iets verkeerd gedaan?

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Verwijderd schreef op donderdag 2 augustus 2018 @ 21:32:
Wat bedoel met:
'Blind' opname-code gebruiken is altijd een slecht idee, laat staan 'blind' de code van willekeurige mensen van het internet ;)
Heb ik iets verkeerd gedaan?
offtopic:
Oh nee hoor. Sowieso is macro-opnemen lekker makkelijk om ff snel eenmalig wat te doen dus ik snap het prima :P

Het is ook een handige manier om de basis te leren en om sommige nieuwe functies te vinden. Maar de opname-knop resulteert in vrij slordige code die makkelijk fout kan gaan. En dat geldt des te meer voor code van anderen op het internet - die bijv. voor net een andere situatie kan zijn bedoeld. Kleine foutjes / net niet passen bij jouw situatie / niet goed om gaan met uitzonderingen: dat kan allemaal leiden tot bijv. overschreven data en VBA kent geen undo-knop. Daarom de tip: oppassen, je wilt de code snappen.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb op die site gekeken en met mijn beperkte VBA-kennis is dat wel wat ik zoek ja.
Maar op dit moment heb ik geen zin om me daar in te verdiepen en knoei ik even verder met "marco opnemen"
Kralen hebben nu voorrang :-)

toch bedankt voor de reactie en de tips