• 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 wissen op basis van legen andere cel met VBA en sorteren met VBA

  • Onderwerp starter Onderwerp starter adile
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

adile

Gebruiker
Lid geworden
2 mrt 2014
Berichten
202
Goedemorgen,

ik heb een lijst waarin ik in cellen C10 t/m C24 informatie zet.
wanneer ik in bv Cel 10 iets invoer, dan komt de datum van invoeren in cel D10 te staan.
alleen wanneer ik cel C10 wis, moet ik cel D10 handmatig wissen.
wat moet ik toevoegen om cellen D10 t/m 24 te wissen op basis van het legen van Cel C10 t/m 20.

Als ik op Cel J5 klik worden de Kolommen C t/m G gesorteerd, op basis van de datum in kolom D.
Kolom B wordt hierin niet meegenomen.

is het mogelijk dat dit direct gebeurd als ik iets verander in de lijst (bijv na het wissen van een rij of handmatig veranderen van de datum)?

Alvast bedankt.

Adil
 

Bijlagen

Adil,

Test dit eens.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 3 Then Exit Sub
If Intersect(Target, Range("C10:C24")) Is Nothing Then Exit Sub  
    If Target.Value <> "" Then
      Target.Offset(0, 1).Value = DateValue(Now)
    Else
      Target.Offset(0, 1).Value = ""
    End If  
'Sorteren
  Range("C10:G24").Sort key1:=Range("D10"), _
  order1:=xlAscending, Header:=xlNo
End Sub
 
Laatst bewerkt:
EA,

Allereerst bedankt voor je hulp.
Jouw code werkt wanneer ik 1 cel tegelijk delete, delete ik cellen C10 en C11 tegelijk dan krijg ik een error.
Tevens sorteert hij de datum niet, terwijl ik dat regeltje wel zie staan in je code.

Adile
 
EA

even een toevoeging,

Hij sorteert wel als ik bv C10 wis en er staat ook iets in C11, dan haalt hij C11 naar boven,
als ik de datum handmatig aanpas, dan sorteert hij niet meer.

Adil
 
Adil,

Bij het sorteren van de datum verandering gaat het volgens mij nu goed.
Alleen als je meerdere regels selecteer dan komt er een fout melding, weet even niet hoe dit op te lossen.
Kijk of het tot zover goed werkt en misschien dat iemand een oplossing heeft voor het verwijderen van meerdere regels.
 

Bijlagen

Probeer het eens met deze.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C10:D24")) Is Nothing Then
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    With Target
        If .Count = 1 And .Column = 3 Then
            If .Value = "" Then
                .Offset(, 1).ClearContents
              Else
                If .Offset(, 1) = "" Then .Offset(, 1) = Date
            End If
          Else
            If .Column = 3 Then Range(.Address).Offset(, 1).ClearContents
        End If
    End With
    Range("C10:E24").Sort [d10]
    Application.EnableEvents = True
End If
End Sub

De kolommen F en G heb ik weggehaald.
 

Bijlagen

Laatst bewerkt:
@EA hartelijk dank voor je hulp, het sorteren ging goed.

@V&A Jouw code werkt perfect het formuliertje doet nu precies wat ik wil.
Hartelijk dank daarvoor V&A ben ik erg blij mee.:)



Ik heb nog een vraagje, ik heb voor dit zelfde bestandje een formulier aangemaakt.
met dit formulier wil ik Cellen C10 t/m C24 invullen met knop invoeren.
Daarvoor heb ik een code aangemaakt, maar die vult hem niet in in de juiste cel. (hij begint met invullen in cel C25)

tevens wil ik eerder ingevoerde data kunnen aanpassen, hiervoor heb ik knoppen ophalen volgende en ophalen vorige aangemaakt.
ook hiervoor heb ik geprobeerd een code te maken maar deze werken ook niet.
na het aanpassen wil ik dat de datum in kolom D niet wordt aangepast (immers de datum van de eerste invoer wil ik vaak behouden)
hiervoor heb ik een checkbox Datum behouden gemaakt, de code die hier in moet is helemaal lastig.

weet een van jullie mij een beetje op weg te helpen?

Adile
 

Bijlagen

Code:
Private Sub CmbOpslaan_Click()

    Dim ws As Worksheet
    Set ws = ActiveSheet

'check for a Name number
    If Trim(Me.TbTextvak.Value) = "" Then
        Me.TbTextvak.SetFocus
        MsgBox "Onvolledig ingevuld!"
        Exit Sub
    End If

'copy the data to the database
    ws.Range("C25").End(xlUp).Offset(1).Value = Me.TbTextvak.Value


    MsgBox "Informatie ingevoerd", vbOKOnly + vbInformation, "Informatie ingevoerd"
    
'clear the data
    Me.TbTextvak.Value = ""
    Me.TbTextvak.SetFocus

End Sub
 
Yesss,

dank je warme bakkertje, hij doet het. die knop werkt nu :thumb:
hier kan ik weer mee verder top.

weet jij of het ook kan werken als ik het werkblad beveilig, en enkel maar cellen C10 t/m D24 toegankelijk zijn?
Er werken meer menden mee en ben bang dat ze de formules per ongeluk wissen.

nogmaals dank

Adil
 
Ik kreeg hem niet werkend in mijn bestandje:o,
maar heb jou bestand omgebouwd en die gebruikt.
Ik moet zeggen het werkt perfect ik begin bijna bij mijn doel te geraken. heel erg bedankt Rudi.:)


Gr adile
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan