Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2244 / 13645 ツリー ←次へ | 前へ→

【69170】シートをクリックすると他シートからデータコピー たくわん 11/5/23(月) 21:20 質問[未読]
【69171】Re:シートをクリックすると他シートからデ... かみちゃん 11/5/23(月) 21:38 発言[未読]
【69172】Re:シートをクリックすると他シートからデ... たくわん 11/5/23(月) 21:53 質問[未読]
【69173】Re:シートをクリックすると他シートからデ... かみちゃん 11/5/23(月) 22:08 発言[未読]
【69174】Re:シートをクリックすると他シートからデ... たくわん 11/5/23(月) 22:35 質問[未読]
【69175】Re:シートをクリックすると他シートからデ... かみちゃん 11/5/23(月) 22:44 発言[未読]
【69176】Re:シートをクリックすると他シートからデ... たくわん 11/5/23(月) 23:35 発言[未読]
【69177】Re:シートをクリックすると他シートからデ... たくわん 11/5/24(火) 20:23 発言[未読]
【69178】Re:シートをクリックすると他シートからデ... かみちゃん 11/5/24(火) 21:23 発言[未読]
【69179】Re:シートをクリックすると他シートからデ... たくわん 11/5/24(火) 21:53 お礼[未読]

【69170】シートをクリックすると他シートからデー...
質問  たくわん  - 11/5/23(月) 21:20 -

引用なし
パスワード
   題名の通りです。
対象のシートをクリックしたら、指定したシートの最下行の値を対象のシートにコピーしたいのですが、
よろしくお願いします

Private Sub Worksheet_Activate()
Sheets("3月").Select
Application.ScreenUpdating = False
Sheets("E5").Select

Range("e5").CurrentRegion.End(xlDown).Select
Selection.Offset(1).Select
Selection.Copy
Sheets("4月").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

End Sub

【69171】Re:シートをクリックすると他シートから...
発言  かみちゃん  - 11/5/23(月) 21:38 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>対象のシートをクリックしたら、指定したシートの最下行の値を対象のシートにコピーしたい

具体的なシート名で説明していただけませんか?

4月シートをアクティブにしたときに、
3月シートの最下行のどの列からどの列までの値を4月シートのどのセルを左上とするセル範囲に転記したいのですか?

また、この動作をさせるのは、どのシートなのですか?
ひとつの特定のシートですか?
複数の特定シートですか?
すべてのシートですか?

【69172】Re:シートをクリックすると他シートから...
質問  たくわん  - 11/5/23(月) 21:53 -

引用なし
パスワード
   すみません。

説明が足りませんでした。

4月のシートをクリックしたら、3月の最下行のセル(たとえば、"E5"〜"E46"まで明細があって"E47"のセルに残高の値があるとしたら、E47の値を4月の"E4"セルに貼り付けたいということになります。
これが3月度から始まって、4月度 5月度 6月度 7月度・・・1年単位でシートは続いていきます。残高を自動表示したいということです。よろしくお願いします

【69173】Re:シートをクリックすると他シートから...
発言  かみちゃん  - 11/5/23(月) 22:08 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 残高を自動表示したい

もしかして、シートをアクテイブにしたら、左隣のシートのE列の値が入っている
最下行の値をアクティブにしたシートのE4セル(各シートいずれも)に転記したい
ということですか?
各シートのE列には数式が入っているのでしょうか?
入っているなら、どのような数式が入っているのか教えてください。
それによってコードが変わります。

> 3月度から始まって、4月度 5月度 6月度 7月度・・・1年単位でシートは続いていきます

「3月」ではなく、「3月度」なのですか?
「3月度」〜「2月度」の計12シートだけあるのですか?
また、「3月度」のシートをアクティブにしたときだけ、上記の動作はさせないということでいいのでしょうか?
前年度繰越は、どのような形で設定するのでしょうか?(手入力ですか?)

【69174】Re:シートをクリックすると他シートから...
質問  たくわん  - 11/5/23(月) 22:35 -

引用なし
パスワード
   >もしかして、シートをアクテイブにしたら、左隣のシートのE列の値が入っている
最下行の値をアクティブにしたシートのE4セル(各シートいずれも)に転記したい
ということですか?

その通りです。


全部で12枚のシートになります。

すみません。そこまで気が回りませんでした=○月度でお願いします


前月度の残高を翌月度の繰越額に計算式ではなく”実数”で表示したいのです。

3月度の前年度繰越は手入力です。上記の動作はしません。

よろしくおねがいします

【69175】Re:シートをクリックすると他シートから...
発言  かみちゃん  - 11/5/23(月) 22:44 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>もしかして、シートをアクテイブにしたら、左隣のシートのE列の値が入っている
>>最下行の値をアクティブにしたシートのE4セル(各シートいずれも)に転記したい
>>ということですか?
>
>その通りです。

最下行の判定に必要な前提になるので教えていただきたいのですが、

>> 各シートのE列には数式が入っているのでしょうか?
>> 入っているなら、どのような数式が入っているのか教えてください。

はいかがですか?

>全部で12枚のシートになります。

「3月度」〜「2月度」まで順番に並んでいるということでいいですか?
順不同な場合と順番に並んでいる場合でも、コードが違ってきます。
順不同な場合は、アクティブにしたシート名から前月のシート名を生成する必要がありますが、
順番に並んでいる場合は、左隣のシートというコードが使えます。
この場合、シート名は関係なくなります。

【69176】Re:シートをクリックすると他シートから...
発言  たくわん  - 11/5/23(月) 23:35 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>最下行の判定に必要な前提になるので教えていただきたいのですが、
>
>>> 各シートのE列には数式が入っているのでしょうか?
>>> 入っているなら、どのような数式が入っているのか教えてください。
>
>はいかがですか?


数式については明日、明示いたします。

肝心な部分が明日になってしまい本当にすみません。


>>全部で12枚のシートになります。
>
>「3月度」〜「2月度」まで順番に並んでいるということでいいですか?
>順不同な場合と順番に並んでいる場合でも、コードが違ってきます。
>順不同な場合は、アクティブにしたシート名から前月のシート名を生成する必要がありますが、
>順番に並んでいる場合は、左隣のシートというコードが使えます。
>この場合、シート名は関係なくなります。

はい。3月度から順番に並んでいます。

【69177】Re:シートをクリックすると他シートから...
発言  たくわん  - 11/5/24(火) 20:23 -

引用なし
パスワード
   数式については以下のようになります。
       E列

       ・
行番号    ・
58  =(C58+E57)−D58
59  =(C59+E58)−D59
60  =E59

最後の明細行の真上のセルを参照表示しています。考えてみたら行挿入や行削除があったときにも対応させないといけないということになります。(これは本日 気付きました。重大なことでした)

【69178】Re:シートをクリックすると他シートから...
発言  かみちゃん  - 11/5/24(火) 21:23 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>数式については以下のようになります。

では、以下のようにすれば、できると思います。

'ThisWorkbookモジュール

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
 If Sh.Index = 1 Then Exit Sub
 'ひとつ左隣のシートのE列の最終行の値をE4セルに転記
 Sh.Range("E4").Value = Sh.Previous.Range("E" & Sh.Rows.Count).End(xlUp).Value
End Sub

【69179】Re:シートをクリックすると他シートから...
お礼  たくわん  - 11/5/24(火) 21:53 -

引用なし
パスワード
   かみちゃん さん 実行できました。

二日にわたり見て頂き、本当にありがとうございました。

2244 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free