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

Gehele rij verplaatsen en verwijderen bij invullen bepaalde waarde

Status
Niet open voor verdere reacties.

Almir96

Gebruiker
Lid geworden
5 okt 2016
Berichten
12
Beste collega's,

Ik heb een Excel bestand ontwikkeld waarin het uitgevoerde en nog uit te voeren werk van de werknemers in is verwerkt. Waar ik mee worstel is het volgende.

Als er nieuwe werkvoorraad komt, komt deze in het tabblad niet toegewezen, zodra deze taak wordt doorgegeven aan een werknemer moet deze in zijn eigen tabblad gekopieerd worden en ik het tabblad niet toegewezen worden verwijderd.
Ik zal het aan de hand van een voorbeeld nader uitleggen. Piet (de klant) doet een aanvraag, deze werkvoorraad komt in het tabblad niet toegewezen totdat de manager beslist wie deze taak gaat uitvoeren. Uiteindelijk komt deze taak binnen de hoede van Mo. Mo zet binnen het tabblad Niet Toegewezen de aanvraag van piet op zijn naam en floep, de gehele rij moet naar het tabblad Mo zijn verschoven, bovendien moet het mogelijk zijn dat Mo in zijn eigen tabblad aanpassingen kan maken door bijvoorbeeld een andere status aan de aanvraag te hangen. Tevens moet dit niet alleen voor Mo gelden maar ook voor de 2 andere werknemers, zodra de taak op hun naam wordt gezet moet de rij naar hun tabblad verplaats worden.

Het Excel bestand zal ik erbij voegen zodat jullie een beter beeld kunnen krijgen van wat ik wil.

Verder heb ik de andere vragen wel gelezen maar die hadden alleen betrekking op verschuiving naar 1 tabblad, ik heb 3 werknemers dus bij 3 verschillende namen moet de rij naar 3 verschillende tabbladen.

P.S. Als de taak op niet toegewezen staat moet deze in zijn eigen tabblad blijven.

Ik hoop heel erg dat jullie me kunnen helpen, ik kom er gewoonweg zelf niet uit.

Alvast hartelijke dank,

AlmirBekijk bijlage Vraag.xlsm
 
Wat lukt er zoal niet? Er zijn toch voldoende vergelijkbare voorbeeldjes te vinden. bv http://www.helpmij.nl/forum/showthread.php/901541-Bij-waarde-rij-verplaatsen-naar-andere-tab


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns(13)) Is Nothing And Target.Count = 1 Then
    Application.EnableEvents = False
    If Target <> "Niet toegewezen" Then
        Cells(Target.Row, 1).Resize(, 12).Copy Sheets(Target.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1)
        Rows(Target.Row).Delete
    End If
    Application.EnableEvents = True
End If
End Sub
 

Bijlagen

Beste VenA,

Hartelijk dank voor je oplossing, toch is het nog niet helemaal opgelost. Het bestand dat ik uploadde was wegens privéredenen vereenvoudigd, omdat dit toch een groot probleem voor mij zal het werkelijke bestand uploaden in de hoop dat jij de code voor me zou kunnen aanpassen.

Omdat het bestand te groot is kan ik deze niet uploaden, zou ik het eventueel kunnen mailen.

Ik hoop dat je me kunt helpen en alvast hartelijke dank.

Met vriendelijke groet,

Almir
 
Wat gaat er mis dan?

Bij de eerste naam stuurt hij het netjes door, bij de 2e naam krijg ik de foutmelding; fout 9 Het subscript valt buiten het bereik. En dan verwijst die naar de regel die met cels begint
 
Dan bestaat de tab niet. Je moet ervoor zorgen dat de gegevens in de keuzelijst exact overeen komen met de tabnamen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns(13)) Is Nothing And Target.Count = 1 Then
    Application.EnableEvents = False
    If Target <> "Niet toegewezen" Then
        If IsError(Evaluate("'" & Target.Value & "'!A1")) Then
            MsgBox "De tab " & Target.Value & " bestaat niet"
          Else
            Cells(Target.Row, 1).Resize(, 12).Copy Sheets(Target.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1)
            Rows(Target.Row).Delete
        End If
    End If
    Application.EnableEvents = True
End If
End Sub
 
Laatst bewerkt:
Deze komen exact overeen, dus ik begrijp het echt niet. De nieuwe code die je heb gemaakt geeft aan dat de tab niet bestaat terwijl de naam exact hetzelfde is
 
Dan is de naam dus niet exact hetzelfde. Er zal wel ergens een verdwaalde spatie staan.
 
Zit er voor of achter de naam misschien een spatie?
Zo ja haal deze dan weg en probeer het nog eens.
 
Dan is de naam dus niet exact hetzelfde. Er zal wel ergens een verdwaalde spatie staan.

allereerst nogmaals bedankt voor je vorige reactie, nu heb ik een nieuw probleem, ik heb het bestand ietwat aangepast. De werknemers zouden de taak terug willen zetten als ze hier niet aan toe kunnen komen.
Ik heb in elk tabblad een kolom met medewerker toegevoegd. Ik zal het weer uitleggen aan de hand van een voorbeeld. Er komt een taak binnen in het tabblad niet toegewezen, deze wordt op mo gezet. nu komt mo hier niet aan toe en zet hij deze weer op niet toegewezen. Met de huidige code werkt dit niet, is dit überhaupt wel mogelijk en zo ja zou je me kunnen helpen?

Met vriendelijke groet,

Almir
 
Dan lijkt het mij handig dat je het nieuwe bestand even plaatst. Waarom zou het niet mogelijk zijn? Het principe blijft hetzelfde als de code in #2.
 
Bekijk bijlage vraag 2.xlsm
Dan lijkt het mij handig dat je het nieuwe bestand even plaatst. Waarom zou het niet mogelijk zijn? Het principe blijft hetzelfde als de code in #2.
Het is dus de bedoeling dat als ik van niet toegewezen naar Mo zet dat het werk naar tabblad Mo gaat en als ik in tabblad Mo de taak naar niet toegewezen zet moet hij weer terug naar het tabblad niet toegewezen. Ik hoop echt dat je me kunt helpen. Bij voorbaat dank.

Met vriendelijke groet,

Almir
 
Er staat geen code in jouw bestand. De te verwachten vervolgvraag ook maar even ingepast. (de afgeronde projecten komen in de tab 'Afgerond');)

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name <> "Afgerond" Then
    Application.EnableEvents = False
    Select Case Sh.Name
        Case "Niet_Toegewezen"
            If Not Intersect(Target, Columns(15)) Is Nothing And Target.Count = 1 Then
                If Target <> "Niet_Toegewezen" Then
                    Cells(Target.Row, 1).Resize(, 15).Copy Sheets(Target.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1)
                    Rows(Target.Row).Delete
                End If
            End If
        Case Else
            If Not Intersect(Target, Columns(14)) Is Nothing And Target.Count = 1 Then
                If Target.Value = "Niet_Toegewezen" Or Target.Value = "Afgerond" Then
                    Cells(Target.Row, 1).Resize(, 15).Copy Sheets(Target.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1)
                    Rows(Target.Row).Delete
                End If
            End If
    End Select
    Application.EnableEvents = True
End If
End Sub
 

Bijlagen

Er staat geen code in jouw bestand. De te verwachten vervolgvraag ook maar even ingepast. (de afgeronde projecten komen in de tab 'Afgerond');)

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name <> "Afgerond" Then
    Application.EnableEvents = False
    Select Case Sh.Name
        Case "Niet_Toegewezen"
            If Not Intersect(Target, Columns(15)) Is Nothing And Target.Count = 1 Then
                If Target <> "Niet_Toegewezen" Then
                    Cells(Target.Row, 1).Resize(, 15).Copy Sheets(Target.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1)
                    Rows(Target.Row).Delete
                End If
            End If
        Case Else
            If Not Intersect(Target, Columns(14)) Is Nothing And Target.Count = 1 Then
                If Target.Value = "Niet_Toegewezen" Or Target.Value = "Afgerond" Then
                    Cells(Target.Row, 1).Resize(, 15).Copy Sheets(Target.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1)
                    Rows(Target.Row).Delete
                End If
            End If
    End Select
    Application.EnableEvents = True
End If
End Sub

Hartelijk dank voor je reactie, maar het is niet de bedoeling dat de afgeronde taken in een ander tabblad komen, het is de bedoeling dat ik van niet toegewezen naar mo kan en van mo weer terug naar niet toegewezen. ik hoop dat dit mogelijk is.
 
Quoten is niet nodig.

Dan zijn we dus weer terug bij de code uit #2 met een kleine aanpassing die je ook zelf even had kunnen uitvogelen.

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Columns(15)) Is Nothing And Target.Count = 1 Then
    Application.EnableEvents = False
    Cells(Target.Row, 1).Resize(, 15).Copy Sheets(Target.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Rows(Target.Row).Delete
    Application.EnableEvents = True
End If
End Sub
 
Mijn excuses maar deze code werkt niet, ik ben zelf niet extreem goed met Excel, vooral macro's vind ik erg lastig. mijn excuses als ik vervelend ben maar het is voor mij uiterst belangrijk dat ik dit oplos ik ben je daarom ook enorm dankbaar voor je hulp. Mvg, Almir
 
Wat werkt er niet? Laat even in een bestandje zien hoe je het toegepast hebt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan