Celinhoud (regel) wijzigen naar waarde na laatste enter

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
947
Beste Helpmij'ers,

Ik ben op zoek naar een commando in VBA dat wanneer ik kolom R vul en vervolgens een enter geef, hij de actieve regel (die is voorzien van allerlei opdrachten in de diverse cellen) om zet naar de waarden.

Ik verspring d.m.v. een enter naar de volgende cel t/m kolom R, dan verspringt deze automatisch naar de volgende rij cel A. Dat is het moment dat de code van kracht moet zijn.
Zie voorbeeld

Code:
If Not Intersect(Target, Union(Columns(1), Columns(2), Columns(3), Columns(4), Columns(5), Columns(6), Columns(7), Columns(8), Columns(9), Columns(10), Columns(11), Columns(12), Columns(13), Columns(14), Columns(15), Columns(16), Columns(17), Columns(18), Columns(19), Columns(20), Columns(21), Columns(22), Columns(23), Columns(32))) Is Nothing Then
            With Target

            If .Column = 1 And Not IsEmpty(Target) Then Application.Goto .Offset(, 4) 'kolom a
            enz. tot.   
            If .Column = 17 And Not IsEmpty(Target) Then Application.Goto .Offset(, 1) 'kolom Q         
            If .Column = 18 And Not IsEmpty(Target) Then Application.Goto .Offset(1, -17) 'kolom R

Een antwoord zie ik met belangstelling tegemoet.

Robert
 
Laatst bewerkt:
Zoiets?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 18 Or Target.Count <> 1 Or Target = "" Then Exit Sub
Application.EnableEvents = False
With Target
  Select Case .Column
    Case 1: Application.Goto .Offset(, 4)
    Case 18
      Range("A" & .Row).Resize(, 18).Value = Range("A" & .Row).Resize(, 18).Value
      Application.Goto .Offset(1, -17)
    Case Else
      Application.Goto .Offset(, 1)
  End Select
End With
Application.EnableEvents = True
End Sub
 
Heel erg bedankt voor de code alleen werkt deze niet. Wanneer ik de code in de bestaande code plaats verspringt de cursur van kolom 14 naar 17 maar verspringt door jouw code terug naar kolom 15. Dat gaat dus helaas niet goed. Het programma moet echt tot aan het eind (dus kolom 18) gaan en vervolgens d.m.v. een enter terug naar de volgende regel en in tussen tijd de formules omzetten naar waarden.

Misschien is het handiger om een code te maken als de vorige regel kolom 18 is gevuld, die regel alle formules om te zetten naar waarden.

daarom stuur ik jou even alle codes hoe het programma naar rechts moet verspringen. Eenmaal aangekomen bij de laatste moet de code inwerking treden om de hele regel de formules om te zetten naar de waarde.

Code:
            If .Column = 1 And Not IsEmpty(Target) Then Application.Goto .Offset(, 4) 'kolom a
            If .Column = 5 And Not IsEmpty(Target) Then Application.Goto .Offset(, 1) 'kolom e
            If .Column = 6 And Not IsEmpty(Target) Then Application.Goto .Offset(, 6) 'kolom f
            If .Column = 7 And Not IsEmpty(Target) Then Application.Goto .Offset(, 1) 'kolom g
            If .Column = 8 And Not IsEmpty(Target) Then Application.Goto .Offset(, 1) 'kolom h
            If .Column = 9 And Not IsEmpty(Target) Then Application.Goto .Offset(, 1) 'kolom i
            If .Column = 10 And Not IsEmpty(Target) Then Application.Goto .Offset(, 2) 'kolom j
            If .Column = 12 And Not IsEmpty(Target) Then Application.Goto .Offset(, 1) 'kolom l
            If .Column = 13 And Not IsEmpty(Target) Then Application.Goto .Offset(, 1) 'kolom m
            If .Column = 14 And Not IsEmpty(Target) Then Application.Goto .Offset(, 3) 'kolom n
            If .Column = 17 And Not IsEmpty(Target) Then Application.Goto .Offset(, 1) 'kolom r20
            If .Column = 18 And Not IsEmpty(Target) Then Application.Goto .Offset(1, -17) 'kolom R
 
Nee hoor :). Het zijn binnen één programma twee verschillende vragen nl. aan het eind van de regel de hele regel de formule omzetten naar waarden en vraag 2 zoeken naar een waarde in een ander werkblad zonder te moeten klikken op de target.
 
Dan lijkt het mij handig om in het andere draadje verder te gaan en de vragen te combineren.:d
 
Sorry, ik heb dat eens eerder gedaan en kreeg toen op mij kl.... dat het andere topic was en het niet de bedoeling was te verschillende vragen in één Topic te stellen. Dus braaf als ik ben heb ik dat ook maar gedaan. :rolleyes:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan