• 締切済み

データを各シートに自動振り分け

データシートA2にデータを貼付けると営業所ごとに各シートにデータを振分してほしいです。データシートは都度上書きとなりますが、振分用シートのデータは上書せずに、最後の行から挿入させたいです。品番が重複するデータが挿入された場合、新しいデータを削除。振分用シートはすべて、5行目が項目行となります。 どのようなコードを作成すればよいのかVBAに詳しい方、アドバイスよろしくお願いいたします。

みんなの回答

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.2

> 品番が重複するデータが挿入された場合、新しいデータを削除 古いデータを残すということで、営業所のシートは作成済みとして以下のような感じでいかがですか。 Sub Test() Dim c As Range Dim Sh1 As Worksheet, Sh2 As Worksheet Dim FRange As Range Set Sh1 = Sheets("データ") For Each c In Sh1.Range(Sh1.Cells(2, "A"), Sh1.Cells(Rows.Count, "A").End(xlUp)) Set Sh2 = Sheets(c.Text) Set FRange = Sh2.Range(Sh2.Cells(6, "C"), Sh2.Cells(Rows.Count, "C").End(xlUp)). _ Find(What:=c.Offset(0, 2).Value, LookIn:=xlValues, lookat:=xlWhole) If FRange Is Nothing Then Sheets(c.Text).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(1, 10).Value = _ c.Resize(1, 10).Value End If Set Sh2 = Nothing Next Set Sh1 = Nothing End Sub

tanto9999
質問者

補足

コードを考えていただきありがとうございます。試してみたところSet Sh2 = Sheets(c.Text)でデバッグがおきたのですが、何が原因なのでしょうか(>_<)?

  • gennya
  • ベストアンサー率15% (16/105)
回答No.1

>データシートA2にデータを貼付けると営業所ごとに各シートにデータを振分してほしいです。 営業所ごとにデータを取り出すコードを書く >データシートは都度上書きとなりますが、振分用シートのデータは上書せずに、最後の行から挿入させたいです。 最後の行を見つけるコードを書く そこにデータを追加するコードを書く >品番が重複するデータが挿入された場合、新しいデータを削除。 重複品番がないか見つけるコードを書く その行を覚えておき、そこを消すコードを書く >振分用シートはすべて、5行目が項目行となります。 6行目から追加するコードを書く

関連するQ&A

  • EXCELで分かれたシート間の同一データ行を自動削除して結合したい

    EXCELで、シート1、シート2に分かれたデータがあります。 それぞれのシート間でC列~F列の値が重複している行、シート1側のG列の数値がマイナス になっている行を自動で削除してからデータを1つのシートに結合する方法を探しています。 条件は、シート1側の重複データ行のみを削除し、シート2側のデータが必ず残る方法であ る必要があります。G列のマイナス行を削除するのはシート1側のみです。 シート1がA列~I列、約3万行、シート2がA列~K列、約1千行くらいです。 シート2側のみJ列~K列(数値データが入っています)が存在しますが、シート1側は空欄です。 列の数は変わりませんが、行数が都度変動しますのでマクロでコピー先のセル位置を決め打ちする 事が出来ません。 1つのシート上で重複するデータを削除する方法は見つける事が出来たのですが、残す方のデータ が指定出来ないのと、複数のシート上の重複データを削除する方法が見つかりませんでした。 何か良い方法がありましたら、ご教授下さい。

  • VBAを使った、Excelでのシート間データ抽出

    はじめまして。みなさまどうか教えてください。 Sheet1にはA列に250行程、コードが存在します。 Sheet2にはA列(コード)からI列まで、そして1000行程データが存在します。 Sheet1にあるコードは重複はなく、Sheet2のコード内に必ず同じコードがあります。 Sheet2にも重複コードはありません。 そこでSheet1のコードを使い、Sheet2を検索し、同一コードのデータ(A列からI列の行すべて)を全て(250件分)、Sheet1のコード記載順(A1、A2、A3・・・・)で、Sheet3に抽出したいのです。 どうか、よろしくお願いします。

  • Excelのシートからシートへデータを移動したい

    Excelのシートで作成されている申込書(シート)があり、現在はその申込書シート(セル)に記載されている情報を別のシート(顧客データとして管理しているシート、複数行存在しています)に手入力しています。 この手入力の作業をマクロか関数で簡単にしたいのですが、下記の点がクリアできる良い案が分かる方がいたら教えて頂きたいです。 (1)申込書シートは顧客データシートに情報を移動したら、都度上書きしていきたい⇒申込書シートは同じbookで管理しないため(上書きについては申込書内容を都度手作業で貼り付けするつもりです) (2)顧客データシートは顧客が増える毎に2行目、3行目・・・というようA列が空欄になっている一番上に、申込書データの内容が反映されるようにしたい。 (3)貼り付けられたデータ(セル)は関数ではなく、値(文字)が貼り付けられるようにしたい。((1)のように申込書シーは都度上書きしたいため) 分かりづらい質問で申し訳ありません。。 ちなみにマクロは作成したことがありませんが、マクロでできるのであれば挑戦したいと思っています。 ご回答よろしくお願い致します。

  • VBA 重複データの削除方法

    いつもお世話になっております。 VBAを学習中の初心者です。 重複するデータの行を削除を行いたいのですが、ご指導をよろしくお願いします。 添付ファイルの左側のようなデータを作成しました。 作成したいデータは右側です。 同一日ごとに項目1,2,3が全く一緒になる行を削除したい。以上です。 なるべく理解しやすいコードでご指導いただけると助かります。 よろしくお願いいたします。

  • Excel データを各シートへ自動振り分け(各シート、元データと連動)

    こんばんは。 マクロもVBAもチンプンカンプンの私が、色々調べ挑戦したのですが・・・ 頭がパンク状態。 自分がやりたい事も上手く伝えられてるか、不安ですが宜しくお願いします。m(__)m <ファイルの状況> Excel2003使用 Sheet1  コードNo.+勘定科目が入力されているSheet Sheet2  全ての勘定科目のデータが入力されているSheet      ※新しい情報は、随時このSheetに入力 ◎勘定科目ごとのSheet数は、月(年)によって異なります <やりたい事> ※画像参照(見にくかったら、ごめんなさい) 1.「更新場所」のデータを勘定科目ごとに自動振り分けしたい。    ※Sheetごとに合計も出てると理想 2.「更新場所」に新しいデータを入力すると、振り分けられた各Sheetのデータも自動更新される。(元データと各Sheetが連動されてる。) <参考にしたサイト> 【A】 http://www4.ocn.ne.jp/~yy3/Sub61.html 【A】のサイトのプログラムを「ExcelのVisual Basic Editor」を開き貼り付け、「データを各シートに振り分ける」までは出来たのですが・・・ 振り分けられた各シートを見ると、合計が出てないんです。 それは単純に【A】のサイトのプログラムの中には、「各シートの合計値を求める」という 指示のプログラムが入っていないからだと考えました。(素人の考えです。) <やりたい事>の1の各Sheetで合計値を求める事と、<やりたい事>の2が出来ていないので、【A】のサイトのプログラムに・・・ 以下のプログラムを追加すると、私の目的にあったプログラムが出来る?と思ったのですが、出来ますでしょうか? 1.「振り分けられた各Sheetの合計値を求める」という指示 2.「更新場所に新しいデータを入力すると、振り分けられたSheet内のデータが自動更新」されるという指示 また、【A】のサイトを元に各Sheetに振り分けると、一番最後に「合計」というSheetが登場するのですが・・・ 「合計」のSheetを見ても#REFと表示されているだけで、なんの為にあるSheetなのか、よく分かりません。 「合計」のSheetを見るまでは考えていませんでしたが、「合計」のSheetに各Sheetの 勘定科目・支出・収入の合計金額が表示されると、とても理想的です。 マクロもVBAも全然分からないのに、要望だけ沢山あってすみませんが、宜しくお願いします。 P.S 【A】サイトより私の目的にあったプログラムがあったら、【A】サイトのプログラムにこだわる理由はありません。 色々調べてこれがいいのかな?と思っただけですので・・・ 宜しくお願い致します。

  • EXCELシートの振り分け転記の自動化について

    こんにちは、excel初心者です。 あるexcelシートの中に、数字コードが書いてあるボックス?の中に2種類か、3種類のそれぞれアルファベットコードと表題がそれぞれ書いてあります。 これを別シートにそれぞれの数字コードとアルファベットコードと表題に見やすくするために振り分けたいのですが、 いちいち一つ一つのセルをコピーペストの繰り返しで膨大な時間が掛かりました。 マクロVBAの本を読みましたが、その”数字コードボックス”のアルファベットコードの種類が2,3,4種類と順不同です。 これらの順不同型のセルの塊を自動転記は可能でしょうか? 自動化のイメージとしては、 1;B2セル数字コードを選択、コピー、別シートの数字コード列に移動、貼り付け。 2;元シートにかえって、A5アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 3;元シートにかえって、A4表題を選択、コピー、別シートの表題列に移動、貼り付け。 4;元シートにかえって、A8アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 5;元シートにかえって、A7表題を選択、コピー、別シートの表題列に移動、貼り付け。 6;元シートにかえって、A11アルファベットコードを選択、コピー、別シートのアルファベットコード列に移動、貼り付け。 7;元シートにかえって、A10表題を選択、コピー、別シートの表題列に移動、貼り付け。―と 8;元シートにかえって、12行B列の数字コードを感知したら、11から2行はすべて削除。 9;次の”数字コードボックス”に移動します。 自分で考えてイメージしただけなのですが、この様な事は可能でしょうか? また、マクロに書くコードはどのようなコードをかけば良いでしょうか? しょ 初心者なりに必死に考えてみましたが、聞いた方が速いと思いこちらにご相談させて頂きました。 何卒宜しくお願い致します。

  • Excel VBA 残りの行数を計算し、貼付けられるか、別のシートに貼り付けるかを判断し実行するマクロ

    Sheet1に二十数個の項目が列記されており、その内、必要な項目だけをコピーしてheet2に貼り付けて行きます。 一項目の行数は6行~18行とまちまちです。 必要な項目はその都度違います。 heet2の行数は50行と決まっています。 よって、あるところで50行を超えてしまいますので、Sheet3へ移動し続きを貼り付けます。 このとき、一つの項目がSheetをまたいではいけません。 (Sheet1に空白が出来てもかまいません) 要は、貼り付ける行数と残りの行数を自動で判断して、入る場合は貼付け、入らない場合はSheetを変えて貼付けるVBAのコードを具体的にご教授願いたいのです、宜しくお願いします。 Excel2000、VBAはマクロの自動記録をいじる程度のスキルです。

  • 複数のシートから重複するデータを別シートに抜き出す

    こんにちは。 Excel2007です。 複数のシート(現在はSheet1からSheet4ですが、最終的にはSheet10ぐらいまでになります)に蔵書データが入っています。 A列21行目から作者名、B列21行目から本のタイトル、C列21行目からページ数と以下、値段、ISBNなどJ列まで蔵書データが入っています。本棚ごとにSheet1、Sheet2と分かれて入力されています。 この複数のシートから本のタイトルが重複するものを別シートに抜き出すにはどうしたらいいでしょうか? 重複データを削除するマクロや関数は探せたのですが、複数のシートにまたがっている場合は探しきれませんでした。 何かいい解決方法があればご教授下さい。

  • エクセル 担当ごとに自動振り分け

    ご教授願います。 エクセル2003使用です。 シートが「入力」「担当無」「鈴木」「佐藤」「山田」・・・・とあります。 元のデータを「入力」シートに入力後、各担当に自動で振り分けられるようにしたいです。 元データとなる「入力」シート  A   B    C    D     E    F    G    H    1NO 担当 会社名 住所   商品名 数量 日付 金額   2 1 鈴木 ○会社 神奈川  ペン赤 100本 10/25  50万 3 2 担当無 △社  東京  ノート  200冊 10/26 10万 振り分け先となる「担当無」「鈴木」「佐藤」「山田」・・・・シート  A    B     C    D    E   F   G   H   I 4 NO 会社名  住所 商品名 数量 日付 金額 結果 備考 となります。 うまく説明できないのですが ・振り分け先には見出し等を付けたい為A1~3は空欄、A4は項目名にしたいです。 ・各担当が「担当無」のシートを見て自分のやりたい案件を選択できるようにしたいです。 ・選択された「担当無」に入力されていたデータは、選択した担当のシートに反映されるようにしたいです。又、反映後は「担当無」シートから削除。 ・振り分け先シートのみにある”H列の結果”と”I列の備考”は各担当が入力するため振り分けを実行したら下端のセルに自動でデータが追加されるようにしたいと思っています。 同じような質問などを参考にし色々試したもののマクロ、数式ともに勉強始めたばかりのレベルなので応用ができずデータが重複したり、エラーばかりなってしまいます。 図々しいとは思いますが、ご教示いただければ幸いです。 宜しくお願い致します。

  • VBAで別シートの必要データの値をコピーし貼付け

    sheet2の項目よりsheet1の必要項目の値のみを貼り付けたいのですがsheet1のC列5行文字入力があり次の行以降にsheet2のセルB2以降の範囲のsheet1の2行目必要項目に対しての入力値の値のみを入力したいのですがsheet2入力値は何百項目あります。 どなたかVBAコードが解る方よろしくお願いします。

専門家に質問してみよう