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

Cellen verplaatsen als specifieke cel "Yes" bevat.

Status
Niet open voor verdere reacties.

Meaurk

Gebruiker
Lid geworden
29 jun 2012
Berichten
146
Hallo,

Deze vraag staat volgens mij al op Helpmij, echter kom ik er niet uit met de code die daar genoemd wordt. Ik ben nog steeds bezig met de database in excel, ben gelukkig al een heel eind op weg, nu heb ik echter een klein probleem.
Ik wil wanneer er in kolom R "Yes" komt te staan de hele rij waarin "Yes" staat verplaatst wordt naar een ander werkblad. De rij die verplaatst wordt, moet dan in het tweede werkblad op rij 10 komen te staan. De rest van de rijen moeten dan automatisch worden opgeschoven naar onder. De rij op het eerste werkblad (waar de gegevens dus vandaan komen) moet verwijderd worden. De code waarmee ik aan het klooien ben zie je hieronder, helaas krijg ik hem niet werkend.
Ter verduidelijking van de onderstaande code; Blad 3, waar de gegevens vandaan komen heet "Order overview". Blad 4, waar de gegevens naartoe moeten heet "Completed orders".

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column = 18 Then
    If Target.Value = "Yes" Then
        Range(Target.EntireRow.Address).Cut
        Blad4.Range("A10").Insert
    Else
     Exit Sub
    End If
 End If
        Sheets("Order overview").Visible = False
        Sheets("Completed orders").Visible = True
        Sheets("Completed orders").Select
End Sub

Alvast bedankt!


Mvg,

Mark.
 
Zelf een beetje aanpassen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Count > 1 Then Exit Sub
   If Target.Column = 18 And lcase(Target.Value) = "yes" Then Target.EntireRow.Cut Sheets("sheet2").Rows(10)
End Sub
 
Is het ook mogelijk om de rij waar de gegevens vandaag komen te verwijderen?
 
Ik ben al een stukje verder gekomen met de code, nu moet ik alleen nog de complete rij zien te verwijderen. Iemand een idee?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Column = 17 And LCase(Target.Value) = "yes" Then
        vWeetzeker = MsgBox("Are you sure you want to complete this order?", vbInformation + vbYesNo, "Confirmation")
 If vWeetzeker = vbYes Then
        Target.EntireRow.Cut Sheets("Completed orders").Rows(10)
   Else
        Target.Value = ""
    Exit Sub
    End If
  End If
End Sub


EDIT: Mee dat ik dit bericht schrijf heb ik een helder moment. Heb het op kunnen lossen dmv de onderstaande wijziging.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Column = 17 And LCase(Target.Value) = "yes" Then
        vWeetzeker = MsgBox("Are you sure you want to complete this order?", vbInformation + vbYesNo, "Confirmation")
 If vWeetzeker = vbYes Then
        Target.EntireRow.Cut Sheets("Completed orders").Rows(10)
[COLOR="#FF0000"]        Target.EntireRow.Delete[/COLOR]
   Else
        Target.Value = ""
    Exit Sub
    End If
  End If
End Sub
 
Laatst bewerkt:
Heren,

Onderstaande code heeft altijd goed gewerkt, werkt nu helaas niet meer. Zou iemand me kunnen helpen? Het doel is als volgt:
De rij waarin 'yes' wordt getypt moet op het blad waar de vba code staat geknipt worden en geplakt worden in het blad 'Completed orders' op de bovenste regel vanaf rij 10, LET OP de rijen moeten dus een regel naar beneden verplaatst worden en de nieuwe rij die dus geplakt wordt moet bovenaan komen te staan. Daarna moet de rij die geknipt is (de nu dus lege rij) verwijderd worden op het blad waar de vba code staat.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Column = 14 And LCase(Target.Value) = "yes" Then
        vWeetzeker = MsgBox("Are you sure you want to complete this order?", vbInformation + vbYesNo, "Confirmation")
 If vWeetzeker = vbYes Then
        Target.EntireRow.Cut Sheets("Completed orders").Rows(10)
        Target.EntireRow.Delete
   Else
        Target.Value = ""
    Exit Sub
    End If
  End If
End Sub

Op dit moment knipt de code de rij waarin 'yes' staat en plakt deze op rijd 10 in het blad 'completed orders' over de bestaande regel in rij 10 heen. Ook wordt de geknipte (en dus lege rij) niet verwijderd.
 
Laatst bewerkt:
Meaurk,

Ik denk dat je eerst op die plek (rij 10) een lege regel moet plaatsen.
Dus boven in je code eerst de lege regel plaatsen.

Of zie ik het verkeerd?
 
Ik heb het probleem dat hij de regel overschrijft opgelost door inderdaad een rij in te voegen. Echter de geknipte rij wordt nog steeds niet verwijderd. Hoe los ik dit nu op? De code is nu als volgt:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
 If Target.Column = 14 And LCase(Target.Value) = "yes" Then
        vWeetzeker = MsgBox("Are you sure you want to complete this order?", vbInformation + vbYesNo, "Confirmation")
 If vWeetzeker = vbYes Then
    Sheets("Completed orders").Rows(10).Insert
        Target.EntireRow.Cut Sheets("Completed orders").Rows(10)
        Target.EntireRow.Delete
   Else
        Target.Value = ""
    Exit Sub
    End If
  End If
End Sub
 
Meaurk,

Ik heb je code even getest en bij mij werkt het goed.
Ook de gekopieerde regel word verwijderd.

Dus wat er fout gaat bij je weet ik niet.
Loop anders de code eens met F8 door, kun je zien wat er gebeurd.

Suc6
 

Bijlagen

Laatst bewerkt:
Hallo ExcelAmateur,

Vanwege een griepje heb ik niet eerder kunnen reageren.
Ik heb je bestand getest, en deze werkt ook niet. De regel wordt verplaatst, maar niet verwijderd.
 
Probeer te begrijpen wat de code doet.
Dan kun je hem daarna gemakkelijk zelf aanpassen.
 
Ik begrijp wat de code doet, hij slaat alleen de regel "Target.EntireRow.Delete" over. Dat begrijp ik dan weer niet.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan