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

Cel als Button / Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Status
Niet open voor verdere reacties.

trainers

Verenigingslid
Lid geworden
8 feb 2012
Berichten
210
Office versie
MS 365
Ik ben bezig om een trainingsprogramma te maken voor onze vereniging.

Onderstaande code voor "selecteer een cel als Button - waarbij de code wordt uitgevoerd" werkt goed.

Echter, ik heb het gevoel dat dit beter kan. Nu heb ik 12 stuks. Wat als ik er straks 100 heb.

Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$G$3" Then
        Range("$A$1").Value = Range("$G$3")
    End If
    
    If Target.Address = "$G$4" Then
        Range("$A$1").Value = Range("$G$4")
    End If
    
    If Target.Address = "$G$5" Then
        Range("$A$1").Value = Range("$G$5")
    End If
    
    If Target.Address = "$G$6" Then
        Range("$A$1").Value = Range("$G$6")
    End If

    If Target.Address = "$G$7" Then
        Range("$A$1").Value = Range("$G$7")
    End If
    
    If Target.Address = "$G$8" Then
        Range("$A$1").Value = Range("$G$8")
    End If
 
    If Target.Address = "$G$9" Then
        Range("$A$1").Value = Range("$G$9")
    End If
    
    If Target.Address = "$G$10" Then
        Range("$A$1").Value = Range("$G$10")
    End If

    If Target.Address = "$G$11" Then
        Range("$A$1").Value = Range("$G$11")
    End If
    
    If Target.Address = "$G$12" Then
        Range("$A$1").Value = Range("$G$12")
    End If

    If Target.Address = "$G$13" Then
        Range("$A$1").Value = Range("$G$13")
    End If
    
    If Target.Address = "$G$14" Then
        Range("$A$1").Value = Range("$G$14")
    End If
    
    If Target.Address = "$G$15" Then
        Range("$A$1").Value = Range("$G$15")
    End If
End Sub

Kan dit efficiënter?
 
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("G3:G100")) Is Nothing Then
        Range("A1").Value = Target.Value
    End If
End Sub
 
Mijn dank, Rudi. Werkt perfect. :thumb:
 
Aanvullende vraag over onderstaande oplossing

Hallo,

Als beginneling heb ik een aanvullende vraag op onderstaand probleem voor mijn situatie:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("G3:G100")) Is Nothing Then
Range("A1").Value = Target.Value
End If
End Sub



Wat ik probeer te bereiken is dat wanneer een van de velden in het target bereik, hier D13-D23 gevuld is;
Het corresponderende veld F13 wordt gevuld met de waarde uit D13 voorafgegaan met de waarde uit E2



Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("D13:D23")) Is Nothing Then
Range("F13.F23").Value = "E2" & Target.Value
End If

End Sub




Filiaal Amsterdam Waarde in veld e2







Resultaat is

Product Filiaalpluspoduct
100 E2190 Product staat in D13 en resultaat in F13
125 E2190 Waarde van alleen de laatste entry wordt vastgehouden!
190 E2190
E2190
E2190
E2190
E2190
E2190
E2190
E2190
E2190


Resultaat moet zijn
Product Filiaalpluspoduct
100 Amsterdam100
125 Amsterdam125
190 Amsterdam190
 
Deze vraag is a) oud, b) opgelost, c) is het niet netjes in te breken in een topic van iemand anders en d) heb je een andere vraag. Maak een eigen topic aan, zou ik zeggen. En maak je code dan gelijk op met de CODE knop, dan is hij een stuk leesbaarder. En die lege regels helpen daar ook niet bij...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan