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

Geselekteerde of aktieve cel een waarde laten genereren in een andere cel.

Status
Niet open voor verdere reacties.

brera2010

Gebruiker
Lid geworden
15 jul 2011
Berichten
10
Goedendag mensen,

Voor een kleinschalig projectje zoek ik een oplossing voor dit probleem:

Cellen A1, A2, A3, A4 en A5 bevatten tekst.
Zodra de gebruiker een van deze cellen selecteerd, dus niet wijzigt of iets dergelijks, dan wil ik graag in een andere cel: C1 een waarde laten verschijnen.
Dus, de gebruiker plaatst zijn muiscursor op cel A1, klikt op de muisknop, dan zou er in cel C1 een waarde, zeg "1" verschijnen.
Selekteerd de gebruiker cel A2, dan moet er in cel C1 de waarde "2" verschijnen.
Kiest de gebruiker cel A3, dan moet er in cel C1, de waarde "3" verschijnen.
Enz.

Dit probleem zal vast met een VBA dingetje opgelost moeten worden, het implementeren zal mij nog wel lukken maar het ontwerpen daarvan gaat me iets te ver.
Ik hoop dat dit probleem duidelijk is.

Bijzonder veel dank alvast.
 
Dat kan met dit achter het werkblad:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 1 Then
        Cells(1, 3) = Target.Row
    End If
End Sub

Zo wordt in C1 het regelnummer getoond als de gebruiker op een cel in kolom A klikt.
Het nut ontgaat me maar het zal wel een voorbeeld situatie zijn ;)
 
Laatst bewerkt:
Bedankt voor het aangeven van een oplossing, alleen ben ik waarschijnlijk te simpel aan het denken geweest want met de oplossing kom ik er niet.
Ik heb het bestand maar bij gevoegd waarin het toegepast moet worden.
Mijn gedachtegang was om aan de hand van de waarde in cel C1, met behulp van voorwaardelijke opmaak de bewuste cellen te accentueren.
Dat zou me nog wel gelukt zijn. Maar in de aangereikte oplossing zie ik even niet waar cel C1 staat.
Dus daarom hier het excel bestand wat van toepassing is.

De bedoeling is dus, dat als de gebruiker cel C23 (in het kader: "Toelichting"), selekteerd, dat dan de cellen: C1 t/m H8 een ander achtergrondkleurtje krijgen.
Selekteerd met cel C24 (in het kader: "Toelichting"), dan moeten de cellen: I5 tot en met J8 een ander achtergrondkleurtje krijgen.
Enzovoort.

Dit alles is alleen maar een cosmetisch iets en is alleen maar te verduidelijking van de gebruiker.
 

Bijlagen

Een andere kleur is uiteraard geen enkel probleem, maar die kleur is dan wel definitief. Of moet het op een ander moment weer de kleur krijgen die het al heeft? Is het alleen de bedoeling om een blok cellen te accentueren op het moment dat de gebruiker op 1 van de cellen C23 t/m C26 klikt? Kijk dan eens of je dit leuk vind:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.CutCopyMode = False
    If Target.Column = 3 Then
        Select Case Target.Row
            Case 23: Range("C5:H8").Copy
            Case 24: Range("I5:J8").Copy
            Case 25: Range("K5:N8").Copy
            Case 26: Range("O5:P8").Copy
        End Select
    End If
End Sub
 
Laatst bewerkt:
Hallo,

Het is de bedoeling dat de oorspronkelijke opmaak weer hersteld word zodra er een andere cel aangeklikt word.

Ik heb de VBA code even toegepast en het is ook prima dat de cellen van een bewegend kadertje worden voorzien, alleen worden niet alle bewuste cellen mee genomen.
Als cel c23 aangeklikt wordt, dan moeten cellen: A6:D8, M12:N14 en K18:L20 geaccentueerd worden.
Als cel c24 aangeklikt wordt, dan moeten cellen: I6:J8 geaccentueerd worden.
Als cel c25 aangeklikt wordt, dan moeten cellen: M6:N8, I12:J14 en G18:H20 geaccentueerd worden.
Als cel c26 aangeklikt wordt, dan moeten cellen: O6:P8, K12:L14 en I18:J20 geaccentueerd worden.
Klikt men op cel c27, dan zouden alle cursief vermelde cijfers geaccentueerd moeten worden.

Het is dus de bedoeling dat als de gebruiker op een van de toelichtingsregels klikt, dat dan de van toepassing zijnde cellen,blokken geaccentueerd worden.
Als dat accent dan een bewegend kadertje is, dan is dat prima, het mag ook een achtergrond kleur wijziging zijn, als het maar opvalt.
 
Probeer deze maar eens:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 3 Then
        Select Case Target.Row
            Case 23: Call HighlightArea(Range("C6:H8"), Range("M12:M14"), Range("K18:L20"))
            Case 24: Call HighlightArea(Range("I6:J8"), Range("A1"), Range("A1"))
            Case 25: Call HighlightArea(Range("M6:M8"), Range("I12:J14"), Range("G18:H20"))
            Case 26: Call HighlightArea(Range("O6:P8"), Range("K12:L14"), Range("I18:J20"))
        End Select
    End If
End Sub

Sub HighlightArea(Area1 As Range, Area2 As Range, Area3 As Range)
    Dim Ar As Object
    Set Ar = Union(Area1, Area2, Area3)
    Ar.Select
End Sub

Omdat het om meerder ranges gaat zal een lopend kadertje niet lukken.
Die Range("A1") is een dummy. die moet je laten staan.
Het verzoek van C27 zit er niet in, die zijn duidelijk genoeg toch?
 
Laatst bewerkt:
Zelf vind ik het duidelijker dat als je iets met kleuren wil 'highlighten' dat er verder geen kleuren instaan.:d

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("C5:P8,C11:N14,C17:N20").Interior.Color = vbWhite
    If Target.Column = 3 Then
        Select Case Target.Row
            Case 23: Range("C6:D8, M12:N14,K18:L20").Interior.Color = vbGreen
            Case 24: Range("I6:J8").Interior.Color = vbBlue
            Case 25: Range("M6:N8, I12:J14,G18:H20").Interior.Color = vbMagenta
            Case 26: Range("O6:P8, K12:L14, I18:J20").Interior.Color = vbYellow
            Case 27: For Each cl In Range("C7:P20")
                        If cl.Font.Italic Then cl.Interior.Color = vbCyan
                     Next cl
        End Select
    End If
End Sub
 
Dat is altijd makkelijk maar ik wilde de bestaande layout intact houden.
 
Was ook wel mijn intentie. Maar omdat het om "veel" bereiken met verschillende kleuren gaat dan moet je eerst de oude waarden opslaan. Het gewenste gedeelte een nog opvallender kleur geven en vervolgens de oude waarden weer terug zetten. Persoonlijke smaak en een soort van luiheid van mijn kant:)

Ik zie wel een een verschil in de range A6 smiley8 jouw interpretatie C6:H8 die van mij C6:D8.;)
 
Ja, dat krijg je dus als men dat soort dingen niet in codetags plaatst.
 
Heren bedankt!

Met de VBA code van Edmoor, ben ik wat aan het knutselen gegaan en heb er het volgende van kunnen maken:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
If Target.Column = 3 Then
Select Case Target.Row
Case 23: Range("C6:D8,M12:N14,K18:L20").Select
Case 24: Range("I6:J8").Select
Case 25: Range("M6:N8,I12:J14,G18:H20").Select
Case 26: Range("O6:P8,K12:L14,I18:J20").Select
Case 27: Range("D7:D8,F7:F8,H7:H8,J7:J8,L7:L8,N7:N8,P7:P8,N13:N14,L13:L14,J13:J14,H13:H14,F13:F14,D13:D14,D19:D20,F19:F20,H19:H20,J19:J20,L19:L20,N19:N20" _
).Select

End Select
End If
End Sub

Hiermee verkrijg ik hetzelfde effect maar dan zonder die dummy A1.
De oplossing van VenA heeft ook wel wat, daar ga ik ook nog even mee knutselen.

Misschien dat ik toch ook nog wil proberen te werken met voorwaardelijke opmaak, alleen kom ik weer terug op de eerste (on)mogelijkheid om als cel C23 geselekteerd wordt dat dan in cel A1 een getal komt te staan.
Dus cel C23 geselekteerd geeft in cel A1 het getal 1.
Cel C24 geeft in A1 het getal 2
enz.
Als dat lukt, dan kan ik mbv voorwaardelijke opmaak het geheel naar eigen wens opmaken.

In ieder geval bedankt, jullie hebben me grandioos geholpen!

Ps, hoe plaats je iets in code tags?
 
Laatst bewerkt:
Je hebt in ieder geval door wat de bedoeling is. Het typewerk laten we aan jou over ;)
 
Nog twee tipjes van mijn kant. Zie de opmerking in #10 en voordat je een reactie plaatst klik even op Ga geavanceerd en voorbeeld van bericht. De codetags zijn niet voor niets uitgevonden.;)
 
Ik had al in de Post Scriptum gevraagd hoe is in code tags te plaatsen, bij een volgende vraag zal ik, indien nodig, het gaan uitzoeken hoe dat werkt.

Maar toch zou ik graag ook eens willen weten of het mogelijk is om, als men cel C23 aanklikt, dat dan in cel A1 de waarde "1" komt te staan.
Klikt men op cel C24, dan in A1 de waarde "2", C25 geeft dan waarde "3" enzovoort.

Dus geen gedoe met verranderende opmaak of zo, maar gewoon een getal in cel A1 dat afhankelijk is van welke cel, C23...C27, is aangeklikt.
 
Probeer deze eens.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 3 Then
        Select Case Target.Row
            Case 23 To 27
                Range("A1") = Target.Row Mod 23 + 1
            Case Else: Range("A1") = ""
         End Select
    End If
End Sub
 
Daarvan staat overigens al een voorbeeld in #2.
 
Naar #2 had ik niet meer gekeken. Ik denk dat dit het nut ervan is;)
 

Bijlagen

Laatst bewerkt:
Wel done :thumb:
 
@VenA: Prachtig!
Dit is perfect, mijn dank grenst aan hondsdolheid!
Hier doe ik het voor.

Iedereen bedankt voor het mee denken en het tot uitvoer brengen.
Wat mij betreft is mijn probleem hiermee opgelost.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan