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

Met functie rij verplaatsen

Status
Niet open voor verdere reacties.

sasjaB

Gebruiker
Lid geworden
20 mei 2009
Berichten
37
Hallo allemaal,

Weet iemand of het mogelijk is om aan de hand van een functie een regel te verplaatsen? Ik heb een voorbeeldje meegestuurd.
Ik zou graag willen dat wanneer een project de status 'gereed' krijgt, dat het automatisch verplaatst wordt naar het onderdeel 'voltooide projecten', maar met de 'ALS' functie kom ik er niet uit.

Het is ook een optie om het project naar een ander blad te verhuizen als dat makkelijker is.

Alvast bedankt voor jullie hulp!
Groetjes Sasja
 

Bijlagen

Een rij verplaatsen met een functie (dus zonder VBA) lijkt mij onmogelijk.
Je kan wel een overzicht van de voltooide projecten genereren, dit overzicht kan ook evengoed op een ander blad staan.
Zie bijlage.
 

Bijlagen

Je kan wel een overzicht van de voltooide projecten genereren, dit overzicht kan ook evengoed op een ander blad staan.

Hoi WHER,
Bedankt voor de reactie. Het overzicht van voltooide projecten is op zich wel handig, maar het gaat ons er juist om dat de voltooide projecten uit de lijst met lopende zaken gaan.

Als dit niet automatisch kan dan zullen we gewoon maar moeten blijven knippen en plakken. Ik geloof niet dat een van ons genoeg VBA kennis heeft om hier iets voor te schrijven.

In ieder geval bedankt voor je reactie, ik weet nu tenminste dat ik het niet met een 'ALS' functie hoef te proberen.

Groetjes Sasja
 
Hallo Sasja,

Kun je geen gebruik maken van Autofilter en daarbij bij Status kiezen voor ongelijk aan "voltooid"?
 
zapatr,

Dat ziet er inderdaad beter uit, ik was de originele vraag in post #1 uit het oog verloren.
 
Dat ziet er inderdaad beter uit, ik was de originele vraag in post #1 uit het oog verloren.
WHER,
Ik vermoedde wel dat het bij jou een vergissing was,
want dat je een rij kunt kopiëren, daar twijfel ik niet aan. ;)
 
Ik denk dat SasjaB dit bedoelt (zie bijlage).

Ja! Dat is precies wat ik bedoel!

Ik heb de VBA worksheet geopend, de tekst gekopieerd en aangepast aan onze tabel zodat naar de juiste kolom (J) verwezen wordt en de teksten exact overeen komen. Het lukt wel om VBA te openen voor onze eigen tabel (Extra>Macro> Visual basic editor), maar daarna lopen we vast. We weten niet precies wat we moeten opnenen om die code erin te zetten. Of moet dat helemaal niet in visual basics editor maar bij 'nieuwe macro opnemen'?

In ieder heel erg bedankt voor de hulp tot nu toe, jij ook WHER.
Groetjes sasja
 
Klik links-onderaan in het blad waarin de macro moet werken met de rechtermuisknop op de tab waarop de naam van het blad staat (bv. Blad1) en kies in het dan tevoorschijn komende menu: "Programmacode weergeven". Plaats daar in het rechtervenster de macro. Sluit het venster door op het kruisje rechtsboven te klikken, je komt dan weer in je blad met gegevens. De macro zou nu moeten werken. In de macro staat een bladnaam ( Blad2) vermeld; als dat blad (waar voltooide projecten naar toe worden gekopieerd) bij jou anders heet, dan moet je die naam uiteraard aanpassen.
Succes ermee!
Laat a.u.b. even weten of het is gelukt.
 
Laat a.u.b. even weten of het is gelukt.

Hoi Zapatr, het is gelukt! Heel erg bedankt.

Ik dacht laat ik meteen eens verder experimenteren en kijken of ik de projecten die 'geen opdracht' waren geworden naar een derde worksheet kon verplaatsen dus heb ik je code verknutseld naar de code hieronder, maar dan krijg ik een foutmelding over wel een 'end if' maar geen 'blok if'. Weet je heel toevallig ook hoe ik dat oplos? Als je geen tijd meer hebt begrijp ik het ook hoor. Het belangrijkste probleem is in ieder geval opgelost. Heel erg bedankt hiervoor.

Ik zie trouwens nergens op mijn scherm meer het knopje waarmee ik kan aangeven dat de vraag is opgelost, weet je waar ik deze terug vindt?

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("J3:J100"), Target) Is Nothing Then
If Selection.Value = "voltooid" Then
With Sheets("Voltooide projecten 2010")
lr = .Range("a65536").End(xlUp).Row + 1
Rows(Target.Row).Cut .Cells(lr, 1)
If Selection.Value = "geen opdracht" Then
With Sheets("Geen opdracht")
lr = .Range("a65536").End(xlUp).Row + 1
Rows(Target.Row).Cut .Cells(lr, 1)
End With
Rows(Selection.Row).Delete
End If
End If
End Sub
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("J3:J100"), Target) Is Nothing Then
    Select Case Target.Value
        Case "voltooid"
            Rows(Target.Row).Cut Sheets("Voltooide projecten 2010").Range("A65536").End(xlUp).Offset(1)
            Rows(Target.Row).Delete
        Case "geen opdracht"
            Rows(Target.Row).Cut Sheets("Geen opdracht").Range("A65536").End(xlUp).Offset(1)
            Rows(Target.Row).Delete
    End Select
End If
End Sub
 
SasjaB,
Ik kan niet altijd meteen antwoorden, omdat ik nooit een hele dag achter de computer zit.
Maar je ziet... dan zijn er wel anderen die helpen.
Ik dacht laat ik meteen eens verder experimenteren en kijken of ik de projecten die 'geen opdracht' waren geworden naar een derde worksheet kon verplaatsen dus heb ik je code verknutseld naar de code hieronder, maar dan krijg ik een foutmelding over wel een 'end if' maar geen 'blok if'.
Bij elke 'IF' hoort een 'End If '
en bij elke 'With' hoort een 'End With'
Als je die toevoegt, dan is je code in orde.
Die komt er dan zo uit te zien (voor de duidelijkheid heb ik ze in stukjes verdeeld, wat ingesprongen, en een paar kleuren gebruikt):
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
[COLOR="green"]If[/COLOR] Not Intersect(Range("J3:J100"), Target) Is Nothing Then

   [COLOR="red"]If [/COLOR]Selection.Value = "Voltooid" Then
        [COLOR="blue"]With[/COLOR] Sheets("Voltooide projecten 2010")
              lr = .Range("A65536").End(xlUp).Row + 1
              Rows(Target.Row).Cut .Cells(lr, 1)
        [COLOR="blue"]End With[/COLOR]
              Rows(Selection.Row).Delete
   [COLOR="red"]End If[/COLOR]

   [COLOR="red"]If[/COLOR] Selection.Value = "Geen opdracht" Then
        [COLOR="blue"]With[/COLOR] Sheets("Geen opdracht")
              lr = .Range("A65536").End(xlUp).Row + 1
              Rows(Target.Row).Cut .Cells(lr, 1)
        [COLOR="blue"]End With[/COLOR]
              Rows(Selection.Row).Delete
   [COLOR="red"]End If[/COLOR]

[COLOR="green"]End If[/COLOR]
End Sub

In je eerste blad met gegevens moet bij de kolom met validaties "Geen opdracht" dan wel toegevoegd zijn, maar dat zul je wel begrepen hebben neem ik aan.

Belangrijk aandachtspunt:
In de macro in dit bericht staat respectievelijk:
If Selection.Value = "Voltooid" Then
en
If Selection.Value = "Geen opdracht" Then

Zoals je ziet zijn de rode letters HOOFDLETTERS
Dat betetent dan dat in je blad met gegevens in de validatiecellen "Voltooid" en "Geen opdracht" ook met een hoofdletter moeten beginnen. Ik zie dat het in jouw macro kleine letters zijn. Dat mag natuurlijk ook, mits het in de validatiecellen dan ook kleine letters zijn.

Je kunt ook de code van het warme bakkertje gebruiken. Die heeft enkele opdrachten op 1 regel bij elkaar gevoegd, wat ook mogelijk is. Maar als je nog niet vaak met vba gewerkt hebt, dan leest de uitgebreide code wat gemakkelijker.
 
Laatst bewerkt:
SasjaB,
Laat a.u.b. even weten of je probleem nu uit de wereld is.
En als dat het geval is, markeer je vraag dan als "Opgelost".
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan