VBA code t.b.v. Excel Automatisch kleur kopiëren

Status
Niet open voor verdere reacties.

Bedrijfsbureau

Gebruiker
Lid geworden
30 jun 2015
Berichten
5
Hallo,

Ben nieuw op dit forum. Ben onder de indruk van de kundigheid van een hoop mensen.
Onlangs van dit forum bijvoorbeeld VBA code voor de functie =SOMCELKLEUR gebruikt, werkt super. Dank!
Hoop dat jullie me ook kunnen helpen met een probleem waar ik zelf mee zit en erg vaak op dit forum en elders op internet tegenkom.

Hoe kopiëren we achtergrondkleuren van cellen automatisch mee.
Niet handmatig, dus niet door te plakken met de speciale opties 'opmaak mee kopiëren', maar echt automatisch.
In een willekeurige cel zetten (bijvoorbeeld) "=Blad1!B27" neemt alleen de waarde mee.
Om ook de kleur mee te krijgen is een stukje VBA code nodig.
Het is in mijn geval geen optie om te kijken naar voorwaardelijke opmaak.

Concreet:
We werken met een Excel waar verlof-, spaar-, ziekte- en overwerkuren van de medewerkers worden bijgehouden.
Verlof uren achter een naam hebben een een bepaalde kleur, spaaruren een andere kleur etc.
Dus met voorwaardelijke opmaak werken, werkt niet, we kunnen cellen hebben met het getal 4 (uur) die geel, rood, paars e.d. zijn.
(N.B: hier kwam de functie =SOMCELKLEUR al heel goed van pas, alle gele uren zijn iemand zijn verlof uren, alle rode uren zijn zijn spaaruren etc.)

Het probleem is dat al deze uren per persoon op blad 1 staan en worden gekopieerd naar andere bladen binnen dezelfde Excel voor andere berekeningen/planningen/overzichten.
Alleen de waarde kopiëren is geen optie, want dan weten we niet meer wat soort uren dit zijn (verlof-, spaar-, ziekte- en overwerkuren).
Helaas dus kopiëren we dit nu allemaal handmatig omdat de kleur mee moet.

Mijn vraag is dus nu: heeft iemand een stukje klant en klare VBA code waarmee we de waarde en (achtergrond)kleur van een willekeurige cel naar een andere willekeurige cel binnen het zelfde Excel bestand kunnen kopiëren?

Ik ben benieuwd!
Bij voorbaat dank, met vriendelijke groet,

Bedrijfsbureau
 
Heb je al wel de code waarmee de waarde wordt gekopiëerd? Dit bijvoorbeeld doet het prima:
Code:
    Sheets("Blad1").Range("A1").Copy
    Sheets("Blad2").Range("A1").PasteSpecial
    Application.CutCopyMode = False

Dan gaan de voor- en achtergrondkleuren ook mee.
 
zelfs met:

Code:
Sheets("Blad1").Range("A1").Copy Sheets("Blad2").Range("A1")
 
Ik zou er een mooie rechts_klik gebeurtenis van maken:)

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Target.Copy Blad2.Range(Target.Address)
Cancel = True
End Sub

Waaom dezelfde vraag ook hier staat http://www.helpmij.nl/forum/showthread.php/863287-Automatisch-kleur-kopi%C3%ABren is mij niet duidelijk. Nu heeft Joske2000 gereageerd zonder er weet van te hebben dat er hier ook reacties zijn en omgekeerd.

In mijn optiek moet je helemaal geen kleuren gebruiken maar gebruik maken van een gestructureerde opzet waarbij je gebruik maakt van tabellen en uursoorten.
 
Waarom de vraag ook elders op dit forum

Hallo!

Waarom de vraag ook elders op dit forum, omdat ik niet wist wat het handigst was, bij het 'Excel forum' of bij het 'VBA forum', dus dacht, dan maar bij beiden...

Groet, bedrijfsbureau
 
Automatisch kleur kopiëren

En nu even inhoudelijk,

Ik kan helaas niet het betreffende Excel posten, sorry.
Nu al dank voor het meedenken.

Maar het gaat echt om de willekeurige cel, er staan in onze Excel duizenden verwijzingen.
Daar kan ik niet allemaal code voor gaan maken.

Dus een code waarin een specifieke cel in wordt aangehaald zal dus al niet werken, dan heb ik duizenden codes nodig met allemaal hun specifieke verwijzing.
Ik hoop op één van twee opties:

1) iets (stukje code?) wat over de gehele Excel gehangen kan worden waardoor elke "=Bladz!xy", dus elke verwijzing, naast de waarde ook automatisch de kleur meeneemt.
Dit dus zodat we echt elke WILLEKEURIGE cel kunnen kopiëren en de kleur automatisch wordt meegenomen.

2) iets in het format van een formule. De Som formule bijvoorbeeld "=SOM(x1y1:x2y2)" kan voor elke willekeurige serie van getallen gebruikt worden.
Het maakt niet uit of de getallen op regel 1, 2, 3 etc. of in kolom A, B, C etc. staan. D.m.v. het invoeren van de juiste celnummers kan je die formule voor elke willekeurige reeks gebruiken.
Is iets als "=WAARDEENKLEUR(Bladz!x,y)" mogelijk?
Deze formule rekent dan natuurlijk niets uit, maar kan wel de waarde en kleur van elke WILLEKEURIGE cel kopiëren.

Wederom bij voorbaat dank voor meedenken!
 
We hebben ook niet het hele bestand nodig maar wel een gelijkend voorbeeldje.

=SOM(x1y1:x2y2)? Hier zal je waarschijnlijk =SOM(X1:Y2) mee bedoelen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan