[[20060611125307]] 『リストに自動で追加』(sokai) >>BOT

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

 

『リストに自動で追加』(sokai)

[[20050425224445]]『入力規則』(ポー)
ここを参考にして作ったんですが、セルのデータをクリアしたときも登録しますか?と出てしまいます。出ないようにはできないでしょうか?


 マクロではないので、外してそうですが、、、
 このような形でも、リストを増やすことは出来ます。
 
[[20060607130605]]『リスト入力の際の余白について』(たむりん)
 
 (キリキ)(〃⌒o⌒)b

 If Target.Address <> "$D$1" Then Exit Sub
 の次に一行追加

 If IsEmpty(Target) Then Exit Sub

 (seiya)

ありがとうございました。できればもうひとつ教えてください。
今のままですとセルD1でしかできないのですが、セルD14、セルD20でもできるようにしたいのです。
あてずっぽうで
If Target.Address <> "$D$1""$D$14""$D$20" Then Exit Sub
などとやってみたのですが、ダメでした。
(sokai)


 その一行を下記に変更してください

 If Intersect(Target, Range("d1,d14,d20")) Is Nothing Then Exit Sub

 (seiya)

ありがとうございました。思っていたものに近づいてきました。こうなると欲が出てきました。リストは別シートにあり、リストの右のセルには住所があります、。入力シートでリストから選んだとき、VLOOKUP関数をつかって表示されるようにしてあります。

そこでリストに追加を行ったとき、その右のセルに住所も追加したいのですがダイアログなどが出てきて入力すれば自動で追加できるようになんてできないでしょうか?
[[20050427110557]]に近いように思うのですがいまひとつ理解できません。


 sokaiさん
 現在のコードをご提示願えませんか?
 
 (seiya)

 今はこうなっています。

 Option Explicit

 Private Sub Worksheet_Change(ByVal Target As Range)

 Dim c As Range, res As String '<- 追加

 Dim LastR As Long
 If Intersect(Target, Range("C8,C14,C20")) Is Nothing Then Exit Sub
 If IsEmpty(Target) Then Exit Sub
 Application.EnableEvents = False
    With Worksheets("差出人リスト")
        LastR = .Range("A36636").End(xlUp).Row
        Set c = .Range("A1:A" & LastR).Find( _
                Target.Value, , xlValues, xlWhole, xlByColumns, xlPrevious, True)
        If c Is Nothing Then
            If vbNo = MsgBox("この名前をリストに追加しますか?", _
                vbYesNo, "名前の追加の確認") Then
 ExitSub: '<-追加 以下 Do より End If まで変更・追加してあります。
                Application.EnableEvents = True
                Exit Sub
            End If
            Do
                res = Inputbox(Target.Value & " の住所を入力してください")
            Loop Until Len(res) > 0
            If vbYes = MsgBox("氏名: " & Target.Value & vbLf & "住所: " & res _
                       & vbLf & "を追加します",vbYesNo) Then
                 .Range("A" & LastR + 1).Value = Target.Value
                 .Range("B" & LastR + 1).Value = res
                 .Range("A1:A" & LastR + 1).Name = "差出人"
            Else
                 GoTo ExitSub
            End If
        End If
    End With
    With Target.Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=差出人"
        .ShowError = False
    End With
 Application.EnableEvents = True
 End Sub

 (sokai)

 コードを試してください。
 ご希望と違うかもしれませんが?

 (seiya)

 seiyaの兄貴!
 ボタンがないっす><
 If vbYes = MsgBox("氏名: " & Target.Value & vbLf & "住所: " & res _
                       & vbLf & "を追加します" ,vbYesNo) Then

 (キリキ)(〃⌒o⌒)b

 感謝!
 キリキさん、いつもお世話になります!

 (seiya)

(ノ´▽`)ノオオオオッ!まさしくこんなふうにしたかったのでした。

seiyaさん、キリキさんほんとにありがとうございます。

これからもっともっと勉強していきたいと思います。ほんとにありがとうございました。

(sokai)


またまたすみません<(_ _)>

項目など変えられたくない部分があるので、シートの保護をしたら下の部分が黄色く表示され定義のエラーと表示されます

.Add Type:=xlValidateList, Formula1:="=差出人"

保護はできないものなのでしょうか?

(sokai)


 シートを保護するって基本的に「変更できないようにする」ってことでしょう?
保護したら入力規則のコマンドはグレーアウトして選択できないはずです。
マクロであっても手入力であっても、扱いは同じです。
一般的な対処法では
マクロでシート保護解除>エラーの出るコード実行>シート保護 と言う手順にする
 
(みやほりん)(-_∂)b

みやほりんさん、ありがとうございました。

落ち着いて考えてみればその通りでした。

何とか対処もできました。ありがとうございました。

(sokai)


コメント返信:

[ 一覧(最新更新順) ]


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