ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

パソコンで分からない事がある人コミュの教えてください・・・(pェ・q)

  • mixiチェック
  • このエントリーをはてなブックマークに追加
教えてください。
よろしくお願いいたします。

A4,B4,C4〜AM4まで項目がありまして・・・

A4   B4  C4    AM4
品名  種類 種類  〜情報  

りんご 王林 陸奥   青森県 
 :    :   :      : 
   

A5からデーターを入力してあります。
行にして4000ほどのデーターがあります。

このデーターが入力してあるシートSheet1 から
必要なデーターのみを抽出し、
sheet2へあらわしたいと考えています。

ユーザーフォーム(オブジェクト名:検索ボックス)を作成し、
品名 TextBox1、種類 TextBox2
コマンドボタン 検索、リセット、終了を作成。

品名(TextBox1)に入力した文字、または種類(TextBox2)
に入力した文字、または両方のTextboxの文字を含む行を
コマンドボタン検索を押すとすべて抽出し
Sheet2へ(A3から転記)転記する。

リセットを押すとTextBoxに入力された文字をすべて消す。

という動作をさせたいのです・・・・

が、

うまくいかない・・・。


Private Sub 検索_Click()
If Me.TextBox1.Text = "" And Me.TextBox2.Text = "" Then Exit Sub
 Application.ScreenUpdating = False
 With Worksheets("Sheet1")
If .AutoFilterMode = False Then
.Rows(4).AutoFilter
End If
If Me.TextBox1.Text <> "" Then
.Range("C4").AutoFilter 3, Me.TextBox1.Text
End If
If Me.TextBox2.Text <> "" Then
.Range("D4").AutoFilter 4, Me.TextBox2.Text
End If
If .Range("A65536").End(xlUp).Row > 4 Then
Worksheets("Sheet2").Range("A3:IV65536").Clear
.AutoFilter.Range.Copy Worksheets("Sheet2").Range("A3")
Else
MsgBox "抽出データがありません。", vbCritical
End If
.AutoFilterMode = False
End With
Worksheets("Sheet2").Rows(3).Delete
Application.ScreenUpdating = True
End Sub

Private Sub リセット_Click()
With Me
.TextBox1.Text = ""
.TextBox2.Text = ""
End With
End Sub

・・・・えっと・・・・。

動くんですよ、一応。

でも

「りんご」って入れると検索される。。。
でも
「りん」 でも検索されてほしいのでふ・・・

それと・・・
種類を登録している行がなんと二つあるのです。

でも
種類(TextBox2)に入力のみで
二つの行を検索し、ふくまれてたら抽出したい。。。。

おしえてくださいませ。。。

コメント(5)

オートフィルターのところのCriteriaで "*" & Me.TextBox1 & "*"
にすれば「りん」でも検索されそうですが。
あと(TextBox2)のみで二つの行を検索するのは
列Bのフィルターをかけた後で、何も抽出されなければ↓これを使って
If .Range("A65536").End(xlUp).Row > 4 Then
列Cを検索すればいいかと思います。

それからこれは
.Range("C4").AutoFilter 3, Me.TextBox1.Text
.Range("D4").AutoFilter 4, Me.TextBox2.Text

こうですよね。
.Range("A4").AutoFilter 1, Me.TextBox1.Text
.Range("B4").AutoFilter 2, Me.TextBox2.Text
>ちぇんたろう
ありがとうございます。
ホントだー間違ってるし…
てか…ごめんちゃい。
頭が弱くてどこをどうかえればいいのか…
もうちょい
詳しく教えてください…
頼みます。
これを
.Range("A4").AutoFilter 1, Me.TextBox1.Text

こうです。
.Range("A4").AutoFilter 1, "*" & Me.TextBox1 & "*"

こうする事でオートフィルターのオプションの「含む」と同じ動作をします。
マクロ記録してみれば分かります。

それからここは
If Me.TextBox2.Text <> "" Then
.Range("B4").AutoFilter 2, Me.TextBox2.Text
End If
If .Range("A65536").End(xlUp).Row > 4 Then
Worksheets("Sheet2").Range("A3:IV65536").Clear

こうすれば
If Me.TextBox2.Text <> "" Then
.Range("B4").AutoFilter 2, Me.TextBox2.Text
End If
If .Range("A65536").End(xlUp).Row = 4 Then '「種類」1に無ければ
.Range("B4").AutoFilter 2 '「種類」1をすべて表示して
If Me.TextBox2.Text <> "" Then '「種類」2を探す
.Range("C4").AutoFilter 3, Me.TextBox2.Text
End If
End If
If .Range("A65536").End(xlUp).Row > 4 Then
Worksheets("Sheet2").Range("A3:IV65536").Clear

要は種類1と種類2を別々に探せばいいわけです。


もしかして自分で組んだプロシージャでは無いとか?
チエさんが書かれた物として説明していたものですから。
>ちぇんたろう
組んだけど・・・
なんか組んでったら
頭ぐちゃぐちゃでふ・・・

やっぱ苦手だ・・・

ホントありがとうございまふ・・・

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

パソコンで分からない事がある人 更新情報

パソコンで分からない事がある人のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング