2017-01-11 4 views
0

私はExcelテーブル上に長いデータリストを持っています。このデータには、各注文の詳細情報が複数行に含まれています。列には各行のステータスが表示されます。また、私はダッシュボードに注文名を記載しています。ユーザーは、各書籍の短い統計情報をコメントとして、または可能であればセルにマウスで移動したとき、またはセルデータとして表示できるようにしたいと考えています。情報は、3行または4行のサンプルの下のようなものです。あなただけの一般的な考え方に私にそれを与える場合はアイテム 3不足項目 2完了アイテム Xその他セルの簡単な統計情報をコメントとして返します

を発行

5(項目の数が同じステータスを持つ行の数です)素晴らしいことだ。 私は "スクリプト辞書"のようなコレクションプロシージャを使用しなければならないと思っていますが、私はそれを使った経験がありません。ループの中にif節の後にcase文を置くことでこれを行う方法はわかっていますが、よりスマートな方法を探しています。いくつかの写真とサンプルデータを以下に見つけることができます:samplepictures

+0

あなたのリンクの画像が十分に小さいかどうか分かりませんが、それよりおしゃれにしてください。 – User632716

+2

悲しいことに、ポイントの前にはないが、私はあなたに投票しないだろう。あなたの質問がすばらしくない理由を教えてくれる。あなたはマウスの位置に基づいて情報を返すようにしています(これがあなたの主な質問です)。しかし、これはタイトルには言及していません。あなたはコードを含まず、研究努力をしていません。肯定的な側面では、答えはvbaにマウスの位置/ホバーイベントがないということです(ちょっと肯定的です)。そして、私が推測する辞書を使うこともできますが、はるかに大きなコードセクションの一部として使うことができます。この質問をより良くする必要があることを申し訳なく思っています。 – User632716

+0

こんにちは、ありがとう、実際に私は反応の上にマウスを探していません。私はちょうどユーザーにスムーズな返信をしたい。私の記事で述べたように、セル値の結果(セルに入れることができるもの)でもOKです。ちなみに、私は、評判が表れていることを知りません。他の人に肯定的なフィードバックを与えることはできません。それが私がそれを求めた理由です。それ以外の場合、私はプロの開発者ではありません。とにかくありがとう。あなたがそれを見つけたら、否定的な点を与えることは大丈夫です。心配する必要はありません。よろしく、 –

答えて

0

記録のために、私はMrExcel froumの友人からこの回答に来ました。あなたはそれが役に立ちそうですか? ちょっと違いは、アクティブなセルだけの勢いを探していましたが、このコードはすべてのオーダー名のすべての情報をコメントとして提供しています。それは調整するのは非常に簡単です!

Sub UpdateComments() 
Dim c As Variant, strComment As String 
Dim intISSUED As Integer, intSHORTAGE As Integer 
Dim tblDATA As ListObject, tblDASH As ListObject 
Set tblDATA = Application.Range("TBL.data").ListObject 'adjust Table Name 
Set tblDASH = Application.Range("TBL.dash").ListObject 'adjust Table Name 
For Each c In tblDASH.ListColumns("W/B").DataBodyRange 
    strComment = "" 
    intISSUED = Application.CountIfs(tblDATA.ListColumns("Work Book").DataBodyRange, c, tblDATA.ListColumns("Stage").DataBodyRange, "Issued") 
    strComment = strComment & Chr(10) & "Issued: " & intISSUED 
    intSHORTAGE = Application.CountIfs(tblDATA.ListColumns("Work Book").DataBodyRange, c,tblDATA.ListColumns("Stage").DataBodyRange, "Shortage") 
    strComment = strComment & Chr(10) & "Shortage: " & intSHORTAGE 
    ' ADDITIONAL 'STAGES' HERE 
    ' OR put 'stages' in array to condense code 
    With Sheets(tblDASH.Parent.Name).Range(c.Address) 
     If .Comment Is Nothing Then 
      .AddComment 
      .Comment.Visible = False 
     End If 
     .Comment.Text Text:=Mid(strComment, 2) 
    End With 
Next c 
End Sub 
関連する問題