|
Hirofumiさま、
本当に、どうもありがとうございます。
>「受注伝票」シートのB17から転記入力されるようにしたいのですが、
>どうしたらいいでしょうか?
この件、「受注伝票」シートB列のB35に「合計(税抜き)」、B36に「明細件数」が入っていましたので、それを、別の列に入れたところ、B17から転記入力されるようになりました。
お騒がせ致しました。
>また、新たに選択するたびに、一段下の行に、追加で転記されていくのですが、これは、同じ行で、内容を訂正するようになりますでしょうか?
そして、この件なのですが、ご教示頂きましたコードを用いまして、無事、17行目に転記入力することはできました、ありがとうございます。
ただ、本当は、A列の明細番号は1〜18までありまして、17行目から34行目までが、納品書の明細入力欄でして、B17に一つ、コンボボックスを配置して、17行目に転記入力、B18に一つ、コンボボックスを配置して、18行目に転記入力、というように、18個のコンボボックスで、17行目から34行目まで、それぞれのコンボボックスを使用して、1行ずつ、転記入力できるようにしたいのです。
それをとりあえず、17行目と18行目にもコンボボックスを作って、やってみたのですが、以下のエラーが出てしまいました。
「コンパイルエラー:
End Sub、End Function または End Property以降には、コメントのみが記述できます。」
そして、一番先頭のこの部分が、
Private Sub cbo商品一覧1_Change()
黄色く表示されます。
コンボボックスの名前は、cbo商品一覧1と、cbo商品一覧2としました。
以下が、コードになります。
Option Explicit
'コンボボックスから選ぶだけで、Vlookup関数を使わずに、商品一覧から、連動して入力する...cbo商品一覧1
Private Sub cbo商品一覧1_Change()
Dim lngRowEnd As Long
Dim lngRow As Long
'cbo商品一覧1のListIndexを取得
lngRow = cbo商品一覧1.ListIndex
'ComboBoxで選択されていない場合
If lngRow = -1 Then
Exit Sub
End If
'最終行位置を取得(B列を最下行から上にデータの在る位置を取得)
lngRowEnd = Me.Cells(Rows.Count, "B").End(xlUp).Row
If IsEmpty(Me.Cells(lngRowEnd, "B")) Then
lngRowEnd = 1
Else
lngRowEnd = lngRowEnd + 1
End If
'常に17行目に転記
lngRowEnd = 17
'転記元行位置を取得
'※ComboBoxのListIndexが転記元Listの先頭行からの行Offsetを示す
'※因って、ListIndexに転記元Listの先頭行行位置を加算すれば転記Listの行が解る
'ListFillRangeが例えば「Sheet2!A5:J7」ならA5の5
lngRow = cbo商品一覧1.ListIndex + 5
'転記(値の場合)
With Worksheets("MT_商品")
Me.Cells(lngRowEnd, "B").Value = .Cells(lngRow, "A").Value
Me.Cells(lngRowEnd, "C").Value = .Cells(lngRow, "B").Value
Me.Cells(lngRowEnd, "D").Value = .Cells(lngRow, "C").Value
Me.Cells(lngRowEnd, "E").Value = .Cells(lngRow, "D").Value
Me.Cells(lngRowEnd, "F").Value = .Cells(lngRow, "E").Value
Me.Cells(lngRowEnd, "H").Value = .Cells(lngRow, "F").Value
Me.Cells(lngRowEnd, "J").Value = .Cells(lngRow, "G").Value
Me.Cells(lngRowEnd, "K").Value = .Cells(lngRow, "H").Value
Me.Cells(lngRowEnd, "P").Value = .Cells(lngRow, "I").Value
Me.Cells(lngRowEnd, "Q").Value = .Cells(lngRow, "J").Value
End With
End Sub
Option Explicit
'コンボボックスから選ぶだけで、Vlookup関数を使わずに、商品一覧から、連動して入力する...cbo商品一覧2
Private Sub cbo商品一覧2_Change()
Dim lngRowEnd As Long
Dim lngRow As Long
'cbo商品一覧2のListIndexを取得
lngRow = cbo商品一覧2.ListIndex
'ComboBoxで選択されていない場合
If lngRow = -1 Then
Exit Sub
End If
'最終行位置を取得(B列を最下行から上にデータの在る位置を取得)
lngRowEnd = Me.Cells(Rows.Count, "B").End(xlUp).Row
If IsEmpty(Me.Cells(lngRowEnd, "B")) Then
lngRowEnd = 1
Else
lngRowEnd = lngRowEnd + 1
End If
'常に17行目に転記
lngRowEnd = 18
'転記元行位置を取得
'※ComboBoxのListIndexが転記元Listの先頭行からの行Offsetを示す
'※因って、ListIndexに転記元Listの先頭行行位置を加算すれば転記Listの行が解る
'ListFillRangeが例えば「Sheet2!A5:J7」ならA5の5
lngRow = cbo商品一覧2.ListIndex + 5
'転記(値の場合)
With Worksheets("MT_商品")
Me.Cells(lngRowEnd, "B").Value = .Cells(lngRow, "A").Value
Me.Cells(lngRowEnd, "C").Value = .Cells(lngRow, "B").Value
Me.Cells(lngRowEnd, "D").Value = .Cells(lngRow, "C").Value
Me.Cells(lngRowEnd, "E").Value = .Cells(lngRow, "D").Value
Me.Cells(lngRowEnd, "F").Value = .Cells(lngRow, "E").Value
Me.Cells(lngRowEnd, "H").Value = .Cells(lngRow, "F").Value
Me.Cells(lngRowEnd, "J").Value = .Cells(lngRow, "G").Value
Me.Cells(lngRowEnd, "K").Value = .Cells(lngRow, "H").Value
Me.Cells(lngRowEnd, "P").Value = .Cells(lngRow, "I").Value
Me.Cells(lngRowEnd, "Q").Value = .Cells(lngRow, "J").Value
End With
End Sub
再三、お手数をおかけしておりますが、何卒、よろしくお願いいたします。
|
|