[[20150224094151]] 『特定の文字を含む行を別のシート又はセルにに移動』(みやちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定の文字を含む行を別のシート又はセルにに移動されるにはどうすればよいでしょうか』(みやちゃん)

  A    B    C    D    E    F    G   
1     宮川  001
2     木村  002
3     佐藤  003
 
下記のように A2に退職と入力したときにB2とC2のセルの内容がE2とF2に移動させるにはどうすればよいでしょうか

  A   B    C    D    E    F    G
1 宮川   001
2 退職                木村  002
3     佐藤   003

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 入力値を「移動」となるとVBAかな?

 見た目だけなら数式+条件付書式でできるけど。
 
(GobGob) 2015/02/24(火) 10:14

 既に移動した行に再度"退職"が入力された場合の処理は当方の想像で...

 シートモジュールへ

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    For Each r In Intersect(Target, Columns(1))
        If (r.Value = "退職") * (Application.CountA(r(, 2).Resize(, 2))) Then
            r(, 2).Resize(, 2).Cut r(, 5)
        End If
    Next
    Application.EnableEvents = True
End Sub
(seiya) 2015/02/24(火) 10:15

別シート案。

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long

    If Target.Column <> 1 Then Exit Sub

    Application.EnableEvents = False
    For i = Target.Row + Target.Rows.Count - 1 To Target.Row Step -1
        If Cells(i, "A").Value = "退職" Then
            Rows(i).Copy
            With Sheets("Sheet2")
                .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Insert Shift:=xlDown
            End With
            Rows(i).Delete
        End If
    Next i
    Application.EnableEvents = True
 End Sub
(???) 2015/02/24(火) 10:36

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.