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

Automatisch sorteren cellen

Status
Niet open voor verdere reacties.
bedankt, dat werkt wel maar als ik in de gevensvalidatielijst op cel c17 daarna een andere keuze maak verandert hij direct weer in de waarde die net gekopieerd is.
 
En bij welk veranderende cel wil je dat C17 de waarde krijgt van A71.

Bv. alleen bij verandering van cel A1.
Code:
If target.address = "$A$1" then  Sheets("Serie").Range("C17") =  Sheets("Opties").Range("A71").value
 
"$A$1" wordt ?
 
Sheets("Filter").Range("C4") moet de trigger zijn
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Sheets("Filter").Range("C4")

  
        pic = Sheets("Filter").Range("C4")
    
 
      
      
      

Set Afbeelding = ActiveSheet.Pictures.Insert(pic)
    With Afbeelding
        .Top = Rows(5).Top
        .Left = Columns(2).Left
        .Height = Application.CentimetersToPoints(10)
        .Width = Application.CentimetersToPoints(5)
      
    End With
  
       Set KeyCells = Sheets("Filter").Range("C4")
      Application.EnableEvents = False
 Sheets("Serie").Range("C17") = Sheets("Opties").Range("A71").Value
Application.EnableEvents = True

End Sub
 
of is de plaats waar de code moet staan soms verkeerd? ik heb deze ook onder pic = geplaatst
 
Zet dit bij in de bladmodule van blad Filter.
Code:
Private Sub Worksheet_Calculate()
 Sheets("Serie").Range("C17") = Sheets("Opties").Range("A71").Value
End Sub
Als er iets wijzigt in tabblad Filter (het resultaat van de formule in C4) gaat de code lopen.
 
Nu verandert hij niet, maar ook niet als cel C4 veranderd....


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Sheets("Filter").Range("C4")

   
        pic = Sheets("Filter").Range("C4")
     
 
       
       
       

Set Afbeelding = ActiveSheet.Pictures.Insert(pic)
    With Afbeelding
        .Top = Rows(5).Top
        .Left = Columns(2).Left
        .Height = Application.CentimetersToPoints(10)
        .Width = Application.CentimetersToPoints(5)
       
    End With
   

      Application.EnableEvents = False
           
 If Target.Address = "$C$4" Then Sheets("Serie").Range("C17") = Sheets("Opties").Range("A71").Value
Application.EnableEvents = True

End Sub
 
Zet dit bij in de bladmodule van blad Filter.
Code:
Private Sub Worksheet_Calculate()
 Sheets("Serie").Range("C17") = Sheets("Opties").Range("A71").Value
End Sub
Als er iets wijzigt in tabblad Filter (het resultaat van de formule in C4) gaat de code lopen.
Yes... Dit werkt. weer super bedankt!
 
Zoals altijd als je iets gaat veranderen of toevoegen komen er nieuwe problemen...
zo ook deze:

Als je een nieuwe serie gaat toevoegen op het tabblad Nieuwe serie, en dan kopieert met de knop Nieuwe serie kopieren, naar serie info, plakt hij een aantal plaatjes op dit tabblad wat niet de bedoeling is...

Schermafbeelding 2024-10-21 231104.jpg
 

Bijlagen

Ik heb de volgende code toegevoegd om het plaatje (wat hij eigenlijk niet moet gaan plakken) op de juiste blad neerzet.

Sheets("Serie").Activate

Hij mag bij het uitvoeren van de private sub op blad nieuwe serie, de private sub worksheet_change niet uitvoeren.

Ook blijft het plaatje van de vorige keer staan en hij zet er een nieuwe overheen, er stonden er een paar honderd bovenop elkaar....
 
Maak gebruik van 'EnableEvents' en delete de plaatjes voordat je een nieuwe plaatst.
 
sorry maar ben een newbee als het om vba gaat...
Probeer al van alles maar nog geen code die werkt.
De bedoeling is voordat er een nieuw plaatje geplaatst wordt, de oude wordt weggehaald.
 
Met welke code in welke module voeg je een plaatje toe?
 
Private Sub Worksheet_Change(ByVal Target As Range)


' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Sheets("Filter").Range("C4")


pic = Sheets("Filter").Range("C4")

Sheets("Serie").Activate

Set Afbeelding = ActiveSheet.Pictures.Insert(pic)
With Afbeelding
.Top = Rows(5).Top
.Left = Columns(2).Left
.Height = Application.CentimetersToPoints(10)
.Width = Application.CentimetersToPoints(5)

End With


Application.EnableEvents = False


If Target.Address = "$C$4" Then Sheets("Serie").Range("C17") = Sheets("Opties").Range("A71").Value


Application.EnableEvents = True




End Sub


op blad "Serie"
 
Test het maar eens (plaatje wordt verwijderd).
 

Bijlagen

helaas werkt het bij mij niet... ik zie nu helemaal geen plaatje meer....
 
Ik wist niet dat je zo snel was, ik heb het bestand verwijdert en opnieuw geplaatst.
Misschien even opnieuw proberen.
 
hahah, ik was idd rapido...
Het lijkt nu wel te werken, alleen als er geen plaatje staat gaat hij in de fout.
Shapes("plaatje").Delete, geeft fout naam is niet gevonden.
wat logisch is er is geen plaatje meer.

misschien een check toevoegen of de naam bestaat of niet?
 
Dit plaatsen op de plek van bestemming.
Code:
' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
If Target.Address(0, 0) = "F5" Then
 Application.EnableEvents = False
       pic = Sheets("Filter").Range("C4").Value
 For Each sh In Shapes
  tekst = tekst & "|" & sh.Name & "|"
 Next sh
    If InStr(tekst, "|plaatje|") Then Shapes("plaatje").Delete
Set Afbeelding = Pictures.Insert(pic)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan