dポイントプレゼントキャンペーン実施中!

エクセルで収支表を作成しています。
区分が入っているセルがあるのですが、その区分ごとに行単位で同ファイルの違うシートへ自動転記することは可能でしょうか?

日付 入金 code  社名  区分  ~  資料計  ~  立替計  ~  前払計  合計  残金
2/3   500   1056   ××  ●表  ~   3000   ~      0   ~     500   500    11100
2/6        1057   ××  △地  ~   500   ~     300    ~       0   800    10300
2/3  800   1056   ××  ★表  ~    1000   ~   200   ~       0   1200    9900

と、いうような収支表があります。
これを「●表」、「△地」、「★表」のそれぞれのシートに、行ごと、できれば合計の前までを、自動転記することができるでしょうか?

☆出来上がりイメージ
シート名(●表)
日付 入金 code 社名 区分 ~ 資料計 ~ 立替計 ~ 前払計 
2/3   500  1056  ××  ●表   3000      0       500

シート名(△地)
日付 入金 code 社名 区分 ~ 資料計 ~ 立替計 ~ 前払計 
2/3   0    1057  ××  △地     500      0       300

シート名(★表)
2/3   500  1058  ××  ★表   1000       0       200

収支表に入力すれば、各シートに自動的に転記され、ぞれぞれの表が作成できるようにしたいのです。

まったくの初心者です。
いままでの質問結果を見ても自分の質問がどれに当たるのかもわかりませんので質問させていただきました。
具体的にどこのセルにどのようにすればいいのか、かみくだいてご説明いただけると大変助かります。
ここに書いた表もぐちゃぐちゃで、分かりずらいとは思いますが、どうぞよろしくお願いいたします。

A 回答 (3件)

このマクロで実現できます。



条件としては、
・転記元のシートを表示した状態でマクロを実行すること
・1行目が項目名で、区分がE列であること
・区分の名前がついたシートが存在すること

Sub AutoCopy()

Dim RowX As Long
Dim ColX As Long
Dim Category As String

ColX = 5
RowX = 2

Do Until IsEmpty(Cells(RowX, ColX).Value)

Category = Cells(RowX, ColX).Value

Rows(RowX).Copy Destination:=Sheets(Category).Cells(Rows.Count, ColX).End(xlUp).Offset(1).EntireRow

RowX = RowX + 1
Loop

End Sub

あとで修正を加えようとしても、理解していないと無理な場合もあります。

これがきれいなマクロとは言いがたいですが、これを入り口として、マクロの勉強をしてみてください。
    • good
    • 0
この回答へのお礼

higekumanさん、ありがとうございます。
この通りにやってみたら、できました!
すごく感激です。。
が、しかし20行目までしか転記されません。
場合によっては、100行くらいいくかも知れないのです。
どこを修正すればいいのでしょうか?

実際には区分はF列にあるので
ColX = 5 を ColX = 6 にすればいいのですね。
件名が入っているのが、5行目からなので
RowX = 2 を RowX = 5 にしました。

また、毎回マクロを実行すると初めからのものも再度転記されてしまうのですが、その日だけを転記するということもできるのでしょうか?

たくさん質問攻めで申し訳ないのですが、お答えいただけるとうれしいです。よろしくお願いいたします。

お礼日時:2008/03/26 19:36

#2です。



> が、しかし20行目までしか転記されません。

このマクロは、区分が空セルのところで止まるようになっています。
21行目が空行になっていませんか?

> 実際には区分はF列にあるので
> ColX = 5 を ColX = 6 にすればいいのですね。

そうです。

> 件名が入っているのが、5行目からなので
> RowX = 2 を RowX = 5 にしました。

違います。

> また、毎回マクロを実行すると初めからのものも再度転記されてしまうのですが、

そのように作りました。

> その日だけを転記するということもできるのでしょうか?

当然出来ます。

> たくさん質問攻めで申し訳ないのですが、お答えいただけるとうれしいです。よろしくお願いいたします。

このまま答えていくと、すべて私が作ることになり、あなたの勉強にならないので、これで終わりにさせていただきます。
勉強頑張ってください。
    • good
    • 0
この回答へのお礼

higekumanさん

暖かいご忠告ありがとうございます。
たくさんのヒントをいただき、嬉しく思います。
私なりに調べて勉強して、必ず作成します。
本当にありがとうございました。

お礼日時:2008/03/27 09:35

VBAなどを使うと出来るのですが、初心者の方とのことで


かなり難しいと思います。

自動転記ではないですが、
オートフィルタを使うのはダメですか?

[データ]-[フィルタ]-[オートフィルタ]で、
区分を「●」を選択すると、
区分が「●」の行だけ表示されますので、
コピー&ペーストで、
「●」シートへ貼り付け。

「△」「★」も同様に。
    • good
    • 0
この回答へのお礼

早々に、ご回答いただきありがとうございます。
bluepenguinさんのおっしゃるとおり、現在はオートフィルタを使ってコピー&ペーストで貼り付けています。
春以降、区分も件数も増えるとのことなので、それに備えて今から考えていきたいと思っています。
VBAは難しいとは聞いておりますが、ぜひ試してみたいと思います。
私なりに一生懸命勉強いたしますので、ご教授お願いできないでしょうか?

お礼日時:2008/03/26 15:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!