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

huidige celwaarde verplaatsen na wijziging

Status
Niet open voor verdere reacties.

Ghost4t

Gebruiker
Lid geworden
24 aug 2012
Berichten
32
Hallo Allen,

Heb me al zitten rot googlen voor dit probleem maar zonder resultaat :confused::
Kent iemand de (tover) formule:P in Excel 2007 voor de huidige waarde in een cel te verplaatsen net voor een wijziging. vb: in cel A1 staat de waarde 300, in cel B1 200 en in cel C1 100. Als ik een nieuwe waarde in A1 wil geven zou de huidige waarde een cel moeten opschuiven. Dus, ik geef in A1 nieuwe waarde 400 dan moet de waarde van A1 opgeschuiven naar B1 en de huidige waarde van B1 naar C1. De huidige waarde in C1 verwijnt dan. -> A1 = (nieuwe) waarde 400, B1 300, C1 200. De waarde 100 die in c1 heeft gestaan is weg.
Hocus pocus, iemand? Alvast héél erg bedankt!:thumb:

grts

G.
 
Laat de code even twee keer lopen door in A1 iets in te vullen.
Daarna werkt de hocus pocus pas goed.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$A$1" Then
  Range("B1:C1") = Range("XFC1:XFD1").Value
  Range("XFC1:XFD1") = Range("A1:B1").Value
 End If
End Sub
Of:
Code:
Option Explicit
Dim vorigetarget

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
  If Not IsEmpty(Target) Then
  On Error Resume Next
   Application.EnableEvents = False
   Range("B1:C1").Value = vorigetarget
   End If
  End If
 Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 vorigetarget = Range("A1:B1").Value
End Sub
 
Laatst bewerkt:
Nog een klein detaille:

Hoe kan je deze formule toepassen voor meedere cellen? IPV A1,B1&C1 voor de ganse kolom A, B & C?
Ik heb de code aangepast met "kolom verwijzing" maar werkt niet .
Heb ik deze fout getypt of moet de verwijzing naar een kolom anders defeninieert worden?
Option Explicit
Dim vorigetarget

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address =[COLOR="#FF0000"] "$A"[/COLOR] Then
  If Not IsEmpty(Target) Then
  On Error Resume Next
   Application.EnableEvents = False
   Range[COLOR="#FF0000"]("$B:$C").[/COLOR]Value = vorigetarget
   End If
  End If
 Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 vorigetarget = Range[COLOR="#FF0000"]("$A:$B").[/COLOR]Value
End Sub


:shocked:
Alvast thx!:D
 
Laatst bewerkt:
Maak even een voorbeeldbestandje.
Kan er altijd naar gekeken worden.
 
Test het eens.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
  If Not IsEmpty(Target) Then
  On Error Resume Next
   Application.EnableEvents = False
   Range(Cells(Target.Row, 2), Cells(Target.Row, 3)).Value = vorigetarget
   End If
  End If
 Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 vorigetarget = Range(Cells(Target.Row, 1), Cells(Target.Row, 2)).Value
End Sub
 
Hallo Harry,

Hartelijk bedankt, werkt perfect!! ;) You're the expert! In naam van Vele mensen, THX
greets
G


Deze Topic is opgelost Aloewel ...

Deze werkt idd voor kolom A,B,en C. maar als je de code wilt toepassen voor nog 3 andere kolomen ,vb. kolom K,L,M , werkt deze niet meer correct. Ik heb dit proberen toepassen in 1 Sheet voor de kolomen ABC EN KLM maar dit werkt maar gedeeltelijk. ALs je in een willekeurige cel in K een nieuwe waarde geeft dan schuift idd de huidige waarde van die cel op naar de cel in de kolom ernaast -> in dit geval kolom L en die huidige waarde van de cel in kolom L schuit op naar de cel ernaast in kolom M en, de huidige waarde in kolom M verdwijnt. Voor de kolomen ABC werkt deze maar 1 keer, dwz. als je in bevoorbeeld A10 een waarde geeft dan schuift de hudige waarde van A10 ,B10 een cel op en de hudige waarde van C10 verdwijnt en als je daarna terug in A10 een nieuwe waarde geeft gebeurd er niets meer.
Ik heb in de bijlage men excel geplaatst, kan Harry of iemand deze nakijken wat er mis is? alvast bedankt!

grts

G

Bekijk bijlage TEST Verplaatsing.xlsm
 
Laatst bewerkt:
Het is dat ik even keek bij wie er online was, anders was me je vraag nooit weer opgevallen.
Je schreef dat het was opgelost.
Je kan beter even opnieuw je vraag in dezelfde topic onder de aandacht brengen.
Code:
Option Explicit
Dim vorigetarget
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Or Target.Column = 11 Then
  If Not IsEmpty(Target) Then
    On Error Resume Next
   Application.EnableEvents = False
   Range(Cells(Target.Row, Target.Column).Offset(, 1).Address, Cells(Target.Row, Target.Column).Offset(, 2).Address).Value = vorigetarget
   End If
  End If
 Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 vorigetarget = Range(Cells(Target.Row, Target.Column), Cells(Target.Row, Target.Column).Offset(, 1).Address).Value
End Sub
 
Finally: de toepassing

Hoi Harry, bedankt. Ik heb deze toegpast op enkele sheets die ik nodig had. Nu bots ik op een laatste probleem en dat is als je de code toepast op een sheet met userform doet hij het niet meer. ik heb een excel met userform. Als je de excel opent zie je 2 knoppen staan. "Invoeren" en "opzoeken". Als je op "opzoeken" klikt verschijnt de userform. Hierin staan verschillende textboxen die de gegevens weergeven van een andere sheet die de naam draagt: "klanten". In de userform staat ook 1 combobox. Het is de bedoeling dat als men uit de combobox iets selecteert deze gegevens auto in de textboxen wordt geplaatst. Dit lukt mits je, nadat je uit de comboboxlijst hebt geselecteerd, op de knop "opzoeken" klikt onderaan de userform. Vraag 1:
kan dit zonder dat je op de knop "opzoeken" klikt, dus als je iets selecteerd direct de gegevens uit de sheet "klanten" wordt weergegeven. ?

Om terug te komen op de code van "celwaarde verplaatsen" . Ik wil deze toepassen op de kalenders die in de userform staan. Dus als ik op de knop "kalender" klik, verschijnt er een kalender. Als ik hierop een datum selecteer verschijnt in de textbox ernaast de geselecteerde datum. Dit gebeurd ook als ik op de 2de kalender knop druk. Tot hier toe is het ok.
Maar als ik dan op de knop "opslaan" ,die onderaan de userform bevindt, klik worden de datums weggeschreven in bepaalde cellen op de sheet "klanten". Met de code die Harry gaf (huidige celwaarde verplaatsen (kolomen)) zou dan de huidige waarde waar van de cel waar datum 1 komt en de waarde van de cel van datum 2 een cel opschuiven. Dit lukt me niet tenzij ik manueel op de sheet "klanten" een datum zelf ingeef.
In dit geval wordt de datum bij de 1ste kalender weggeschreven in kolom C en bij de 2de kalender in een cel uit kolom F. Normaal zou toch de huidge waarde een cel moeten opschuiven, niet?
Ik heb de code al op verschillende manieren proberen in te werken met de userform maar zonder resultaat. Ik kan blijkbaar op dit forum mijn excel niet plaatsen omdat deze te groot is (4mb) ik heb deze kunnen vereenvoudige naar 400kb maar is nog te groot, blijkbaar mag je maar max 100kb uploaden.
Vraag 2 Kan jij Harry of iemand eens kijken waar en hoe ik de code moet plaatsen? Ik heb er wat afbeeldingen van gemaakt: zie bijlage.
mvg
G.

1.jpg4.jpg
 
Laatst bewerkt:
Vraag 1:
Zet de code van de opzoekenknop in de code van de combobox.
Code:
Private Sub ComboBox1_Change()
'Le mot clé "Me" remplace le nom de l'userform ("formimg")
nom = Me.ComboBox1.Value
On Error Resume Next
Fichier = ActiveWorkbook.Path & "\" & nom & ".jpg"
Me.Image1.Picture = LoadPicture(Fichier)
[COLOR=#ff0000]Dim code As Range
    With Worksheets("klanten")
    Set code = .Range("A:AA").Find(ComboBox1.Value, LookIn:=xlValues, Lookat:=xlWhole)
        For i = 2 To 32
            Me("TextBox" & i) = .Cells(code.Row, i)
        Next
   End With
[/COLOR]End Sub
 
Vraag 2 gaat zo niet werken.
Je voert namelijk niet met target iets in, maar vanuit het userform.
Dat wordt een flinke studie ben ik bang voor.

Verander in ieder geval de "initialize".

Code:
Private Sub UserForm_Initialize()
    'On Error Resume Next
     With Sheets("klanten")
        [COLOR="#FF0000"]ComboBox1.List = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp).Address).Value[/COLOR]        'Sélection de l'index 1 de la liste
   ComboBox1.ListIndex = 0
  End With
end sub
 
Laatst bewerkt:
Heb even zitten denken, als er vanuit de userform wordt geschreven, kan er jou code (Harry) ipv in de sheet in de userform gezet worden? Of mss de output van de userform als ecghte waarde laten beschrijven?
G.
 
Ik zal mijn gedachten er eens over laten gaan.
Of misschien iemand anders in de tussentijd.
 
mss een oplossing?

Mss een oplossing?
Harry, zou de code die je eerder neergeschreven had:


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$A$1" Then
  Range("B1:C1") = Range("XFC1:XFD1").Value
  Range("XFC1:XFD1") = Range("A1:B1").Value
 End If
End Sub

of

Code:
Option Explicit
Dim vorigetarget

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
  If Not IsEmpty(Target) Then
  On Error Resume Next
   Application.EnableEvents = False
   Range("B1:C1").Value = vorigetarget
   End If
  End If
 Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 vorigetarget = Range("A1:B1").Value
End Sub

Als ik deze onder een knop (module) zou plaatsen, hoe kan ik deze omvormen zodat deze mss werkt?

greets

G.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan