標題:
[發問]
查詢產品數量
[打印本頁]
作者:
owen9399
時間:
2013-9-3 13:29
標題:
庫存輸入計算
本帖最後由 GBKEE 於 2013-9-3 14:22 編輯
請問各位大大 如何設計
庫存輸入計算
1.秀出輸入表單
2.將表單的資料儲存在 工作表1 中
3.選擇 下拉式時 將資料儲存
謝謝
作者:
GBKEE
時間:
2013-9-5 08:47
回復
1#
owen9399
如此的問題等同請人替你設計一程式,這不是本討論版的主旨
(羅馬不是一天造成的,多瀏灠練習VBA會進步的)
作者:
owen9399
時間:
2013-9-5 09:02
我有修改 一些程式
下拉式 輸入 不會
查詢 不會
作者:
GBKEE
時間:
2013-9-5 10:54
回復
3#
owen9399
Private Sub UserForm
1
_Initialize() 不是表單的內建事件程序
程式偵錯方法: 滑鼠移動到 要偵錯的程式碼中,按 F8逐行執行 檢視 即時運算視窗 , 區域變數視窗 可偵錯
[attach]15945[/attach]
作者:
owen9399
時間:
2013-9-5 11:14
謝謝大大 GBKEE
但是,如何將 下拉式的值 輸入到 SHEET1 中的位置
作者:
owen9399
時間:
2013-9-5 11:19
修改 下拉式選單 完成
但 如何 輸入整筆資料 (新增) ?
作者:
GBKEE
時間:
2013-9-5 11:38
回復
6#
owen9399
Dim Ar()
Private Sub UserForm_Initialize()
ComboBox1.RowSource = Range("L2:L5").Address
ComboBox2.RowSource = Range("N2:N6").Address
ComboBox3.RowSource = Range("M2:M4").Address
Ar = Array(TextBox1, ComboBox1, ComboBox2, TextBox2, TextBox3, ComboBox3, TextBox4, TextBox5, TextBox6)
End Sub
Private Sub CommandButton1_Click()
Dim nrow As Integer
With Worksheets("sheet1")
nrow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
'由工作表欗底部最後一個列,往上到第一個有資料的列號+1
.Range("a" & nrow).Resize(, UBound(Ar) + 1) = Ar
End With
End Sub
複製代碼
作者:
owen9399
時間:
2013-9-5 14:40
大大 :
我有輸入 你的程式碼
我卻無法 執行 ?
那裡出錯
作者:
Hsieh
時間:
2013-9-5 15:11
回復
6#
owen9399
所有欄位都是要使用者輸入嗎?
如果是這樣你只要使用EXCEL的內建表單就可達成所有功能
如果數量的欄位要經過計算,那計算的方式是怎樣?
看你的數據不懂庫存差額欄位是怎麼算出來的
作者:
GBKEE
時間:
2013-9-5 15:29
回復
8#
owen9399
Dim Ar() '模組的最頂端 宣告此模組的程序可用之變數
複製代碼
作者:
owen9399
時間:
2013-9-5 15:33
DEAR Hsieh:
大大
我是希望
(台北出貨1 + 台北出貨2) - 業務員的 (進貨數量1+進貨數量2) = 庫存差額
ex. ( 100 + 0 ) - ( 50 + 60 ) = -10
( 60 + 60 ) - ( 100 +20 ) = 0
( 50 + 50 ) - ( 40 + 40 ) = +20
另外 . 自動編號 輸入 新增 就自動產生
刪除整列 是指 如果第 10列 不要 就刪除 第10列
謝謝指教
作者:
owen9399
時間:
2013-9-7 11:43
DEAR 大大:
自動編號 有做出
但是 無法相容
查詢 不會做
另外,原本的 表單輸入 (庫存差額) 取消掉
用 公式 代替
作者:
GBKEE
時間:
2013-9-7 20:51
回復
12#
owen9399
(台北出貨1 + 台北出貨2) - 業務員的 (進貨數量1+進貨數量2) = 庫存差額 這庫存差額的公式有點怪,
庫存額的公式,應該是= 進貨 - 出貨
自動編號的程式碼,附檔中沒有看到.
作者:
wufonna
時間:
2013-9-8 11:07
請問 由工作表右邊最後一個有資料是如何表示,中間有空白欄
謝謝
作者:
GBKEE
時間:
2013-9-8 13:09
回復
14#
wufonna
Sub Ex()
Dim I As Integer
With ActiveSheet
.Cells(1, .Columns.Count).End(xlToLeft).Select
'第1列 由最右邊(最後一欗: Columns.Count ),往左有資料的儲存格
End With
End Sub
複製代碼
作者:
wufonna
時間:
2013-9-8 23:17
謝謝 G大 ^0^
作者:
owen9399
時間:
2013-9-10 10:10
A3=IF(OR(A2="",B3=""),"",A2+1)
A4
A5
....往下拉
直接於表單顯示
但是 按下輸入表單 卻跳過
無法 整合在一起
作者:
owen9399
時間:
2013-9-10 13:10
本帖最後由 owen9399 於 2013-9-10 13:19 編輯
部份達成我要的目標了
但是
查詢 與 刪除列 不會
如附件
謝謝
作者:
owen9399
時間:
2013-9-10 17:22
標題:
查詢產品數量
DEAR 大大:
如何查詢 產品數量
如附表
作者:
GBKEE
時間:
2013-9-10 18:11
回復
18#
owen9399
附檔沒有一點程式碼??
12# 有問你自動編號的程式碼,附檔中沒有看到.??(沒有回覆,如何指導你?)
作者:
owen9399
時間:
2013-9-11 09:27
回復
20#
GBKEE
DEAR 大大:
自動編碼 我找到
可是 查詢 和 刪除整列 不會做
如附件
謝謝指教
作者:
GBKEE
時間:
2013-9-11 10:52
回復
21#
owen9399
Option Explicit
Option Base 1
Dim Ar(), Sh As Worksheet
Private Sub CommandButton1_Click()
Dim Nrow As Integer
If 資料檢查 = True Then Exit Sub
Nrow = 資料數
If MsgBox("確定新增第 " & Nrow & " 資料", vbYesNo) = vbNo Then Exit Sub
Ar(1).Value = Nrow
With Sh.Range("a" & Ar(1) + 1)
.Resize(, UBound(Ar)) = Ar
.Resize(, UBound(Ar)) = .Resize(, UBound(Ar)).Value
'.Cells(1, "i") = "=sum(r2c4:rc4)+sum(r2c5:rc5)-(sum(r2c7:rc7)+sum(r2c8:rc8))" '庫存差額
'(台北出貨1 + 台北出貨2) - 業務員的 (進貨數量1+進貨數量2) = 庫存差額 ** 怪怪的 **
'***************************************************************************************
' 庫存差額 : 應該是業務員的 (進貨數量1+進貨數量2) - (台北出貨1 + 台北出貨2)
.Cells(1, "i") = "=sum(r2c7:rc7)+sum(r2c8:rc8)-(sum(r2c4:rc4)+sum(r2c5:rc5))" '庫存差額
'***************************************************************************************
.Cells(1, "i").Value = .Cells(1, "i") '轉化公式 = 計算後的數值
End With
End Sub
Private Sub CommandButton2_Click()
Dim I As Integer
For I = 1 To UBound(Ar)
Ar(I).Value = ""
Next
End Sub
Private Sub CommandButton3_Click()
Dim I As Integer, Rng As Range
With Sh
.AutoFilterMode = False
For I = 1 To UBound(Ar)
If Ar(I) <> "" Then .Range("A1").AutoFilter I, Ar(I)
Next
.Range("A:i").SpecialCells(xlCellTypeVisible).Copy .Range("AA1")
.AutoFilterMode = False
Set Rng = .Range("AA1").CurrentRegion.Offset(1)
End With
ListBox1.RowSource = Rng.Address
End Sub
Private Sub CommandButton4_Click()
Dim s, E As Range, I As Integer
With ListBox1
If .ListIndex = -1 Then MsgBox "沒有選擇!!": Exit Sub
s = Application.Index(Application.Transpose(Application.Transpose(.List)), IIf(.ListCount = 1, 0, 1))
If Join(s, "") = "" Then MsgBox "沒有資料!!": Exit Sub
s = Application.Index(Application.Transpose(Application.Transpose(.List)), IIf(.ListCount = 1, 0, .ListIndex + 1))
End With
s = Join(s, ",") 'S: 結合控制項的字串 [ 自動編號序號公司產品名稱台北出貨1台北出貨2業務員進貨數量1進貨數量2庫存差額 ]
With Sh
For Each E In .Range("A1", .Range("A1").End(xlDown)).Resize(, 9).Rows '整列:[ 自動編號......庫存差額 ]
If s = Join(Application.Transpose(Application.Transpose(E)), ",") Then
If MsgBox(Join(Application.Transpose(Application.Transpose(E.Value)), ","), vbYesNo, "刪除列") = vbYes Then
處裡刪除整列 E
End If
End If
Next
End With
CommandButton3_Click '重新查詢
End Sub
Private Sub CommandButton5_Click()
End
End Sub
Private Sub UserForm_Initialize()
Ar = Array(TextBox1, ComboBox1, ComboBox2, TextBox2, TextBox3, ComboBox3, TextBox4, TextBox5)
Set Sh = Worksheets("sheet1")
With Sh
ComboBox1.RowSource = Sh.Range("L2:L5").Address
ComboBox2.RowSource = Sh.Range("N2:N6").Address
ComboBox3.RowSource = Sh.Range("M2:M4").Address
End With
With ListBox1
.ColumnHeads = True
.ColumnCount = 9
End With
End Sub
Private Sub 處裡刪除整列(Rng As Range)
Dim I As Integer
Rng.Delete xlUp
I = 資料數
If I > 1 Then
With Sh
With .Range("a2:a" & I)
.Value = "=row()-1"
.Value = .Value
End With
With .Range("i2:i" & I)
.Value = "=sum(r2c7:rc7)+sum(r2c8:rc8)-(sum(r2c4:rc4)+sum(r2c5:rc5))" '庫存差額
.Value = .Value
End With
End With
End If
End Sub
Private Function 資料數() As Integer
資料數 = Application.CountA(Sh.Range("A:A")) '自動編號
End Function
Private Function 資料檢查() As Boolean
Dim s As String, E As Range, I As Integer, ii
With Sh
For I = 2 To UBound(Ar)
ii = 10 - Len(Sh.Cells(1, I))
If I = 2 Or I = 3 Or I = 6 Then
If Ar(I).ListIndex = -1 Then s = s & IIf(s = "", "", vbLf) & Sh.Cells(1, I) + Space(ii) & vbTab & Ar(I)
Else
If Not IsNumeric(Ar(I)) And Ar(I) <> "" Then s = s & IIf(s = "", "", vbLf) & Sh.Cells(1, I) + Space(ii) & vbTab & Ar(I)
End If
Next
If s <> "" Then
資料檢查 = True: MsgBox s, , "資料有誤!!": Exit Function
ElseIf s = "" And Ar(4) & Ar(5) & Ar(7) & Ar(8) = "" Then
資料檢查 = True: MsgBox "出貨 進貨 沒有數量", , "資料有誤!!": Exit Function
End If
s = "," & Join(Ar, "")
s = Replace(s, "," & Ar(1), "") 'S: 結合控制項的字串 [ 序號公司產品名稱台北出貨1台北出貨2業務員進貨數量1進貨數量2 ]
For Each E In .Range("B1", .Range("B1").End(xlDown)).Resize(, 7).Rows
If s = Join(Application.Transpose(Application.Transpose(E.Value)), "") Then
MsgBox Replace(Join(Ar, ","), Ar(1) & ",", "") & vbLf & "已存在為 第" & E.Row - 1 & " 筆 資料不可新增"
資料檢查 = True
Exit Function
End If
Next
End With
End Function
複製代碼
如圖 表單中新加一 ListBox1
[attach]16020[/attach]
作者:
owen9399
時間:
2013-9-11 12:05
回復
22#
GBKEE
Dear 大大:
真的很感謝你
我的庫存差額 是指 每一筆 的差值
並非 全部筆數 累計 的差額
如何修正
謝謝
作者:
GBKEE
時間:
2013-9-11 12:27
回復
23#
owen9399
Private Sub CommandButton1_Click()
Dim Nrow As Integer
If 資料檢查 = True Then Exit Sub
Nrow = 資料數
If MsgBox("確定新增第 " & Nrow & " 資料", vbYesNo) = vbNo Then Exit Sub
ar(1).Value = Nrow
With Sh.Range("a" & ar(1) + 1)
.Resize(, UBound(ar)) = ar
.Resize(, UBound(ar)) = .Resize(, UBound(ar)).Value
'.Cells(1, "i") = "=sum(r2c7:rc7)+sum(r2c8:rc8)-(sum(r2c4:rc4)+sum(r2c5:rc5))" '庫存差額
'.Cells(1, "i") = "=sum(r2c4:rc4)+sum(r2c5:rc5)-(sum(r2c7:rc7)+sum(r2c8:rc8))" '庫存差額
.Cells(1, "i") = "=(rc4+rc5)-(rc7+rc8)" '庫存差額 公式
' .Cells(1, "i").Value = .Cells(1, "i") '轉化公式 = 計算後的數值
End With
End Sub
複製代碼
Private Sub 處裡刪除整列(Rng As Range)
Dim I As Integer
Rng.Delete xlUp
I = 資料數
If I > 1 Then
With Sh
With .Range("a2:a" & I)
.Value = "=row()-1"
.Value = .Value
End With
With .Range("i2:i" & I)
'.Value = "=sum(r2c7:rc7)+sum(r2c8:rc8)-(sum(r2c4:rc4)+sum(r2c5:rc5))" '庫存差額
.Value = "=(rc4+rc5)-(rc7+rc8)" '庫存差額 公式
' .Value = .Value ''庫存差額 數值
End With
End With
End If
End Sub
複製代碼
作者:
owen9399
時間:
2013-9-11 13:23
回復
24#
GBKEE
Dear 大大:
謝謝
程式ok 非常感恩
作者:
owen9399
時間:
2013-9-11 17:53
本帖最後由 owen9399 於 2013-9-11 17:59 編輯
回復
24#
GBKEE
Dear 大大:
我要 再 延伸 新的工作表 如
1.秀出 輸入數值 的表單
如果 可以 整合 用 sheet1的 下拉式 就比較好
sheet1 的 部份數值 會和 輸入數值 結合 在分到 3位總清單
目前
輸入 不會改
刪除整列 不會改
2.到時後要整合 分別 帶到 3位業務員總清單
附件
謝謝指導
作者:
GBKEE
時間:
2013-9-12 06:40
回復
26#
owen9399
沒說明sheet1部份數值,輸入數值的關係, 如何結合到3位總清單
配額,筆數 與 sheet1數值的關連如何??
輸入數值的表單,新增程式沒弄好
'*** UserForm2 表單模組 *********
Option Base 1
Dim ar(), Sh(1 To 2) As Worksheet
Private Sub UserForm_Initialize()
ar = Array(TextBox1, ComboBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, ComboBox2) '這裡有修改控制項,事正確的
Set Sh(1) = Worksheets("Sheet1")
Set Sh(2) = Worksheets("輸入數值")
With Sh(2)
ComboBox1.RowSource = Sh(1).Range("L2:L5").Address ' 整合用sheet1的下拉式
ComboBox2.RowSource = Sh(1).Range("M2:M4").Address
End With
With ListBox1
.ColumnHeads = True
.ColumnCount = 8
End With
End Sub
Private Function 資料檢查() As Boolean
Dim s As String, E As Range, I As Integer, ii
With Sh
For I = 2 To UBound(ar)
ii = 10 - Len(Sh.Cells(1, I))
If I = 2 Or I = 3 Or I = 6 Then 'I= ?? ComboBox 及 ListBox 才有.ListIndex的屬性
'*** 這裡沒改:TextBox1 沒有.ListIndex的屬性 ****
If ar(I).ListIndex = -1 Then s = s & IIf(s = "", "", vbLf) & Sh.Cells(1, I) + Space(ii) & vbTab & ar(I)
Else
If Not IsNumeric(ar(I)) And ar(I) <> "" Then s = s & IIf(s = "", "", vbLf) & Sh.Cells(1, I) + Space(ii) & vbTab & ar(I)
'*** 這裡也要改 ***********
End If
Next
If s <> "" Then
資料檢查 = True: MsgBox s, , "資料有誤!!": Exit Function
ElseIf s = "" And ar(4) & ar(5) & ar(7) & ar(8) = "" Then '*** 這裡也要改 ***********
資料檢查 = True: MsgBox "出貨 進貨 沒有數量", , "資料有誤!!": Exit Function
End If
s = "," & Join(ar, "")
s = Replace(s, "," & ar(1), "") 'S: 結合控制項的字串 [ 自動編號序號公司配額筆數數值應付已付(進貨數量1+進貨數量2)業務員 ]
For Each E In .Range("B1", .Range("B1").End(xlDown)).Resize(, 7).Rows
If s = Join(Application.Transpose(Application.Transpose(E.Value)), "") Then
MsgBox Replace(Join(ar, ","), ar(1) & ",", "") & vbLf & "已存在為 第" & E.Row - 1 & " 筆 資料不可新增"
資料檢查 = True
Exit Function
End If
Next
End With
End Function
複製代碼
作者:
owen9399
時間:
2013-9-12 10:43
回復
27#
GBKEE
Dear 大大:
我有修改
可是 刪除整列 無法用
不知如何改
謝謝
作者:
GBKEE
時間:
2013-9-12 11:22
回復
28#
owen9399
Private Sub CommandButton3_Click() '查詢
Dim I As Integer, Rng As Range
With Sh(2)
.AutoFilterMode = False
For I = 1 To UBound(ar)
If ar(I) <> "" Then .Range("A1").AutoFilter I, ar(I)
Next
'.Range("A:i").SpecialCells(xlCellTypeVisible).Copy .Range("AA1") ->'Sh(2)的 AA1->AI欗
'******* .ColumnCount = 8 'ListBox1設定8欗 所以改成如下********
.Range("A:H").SpecialCells(xlCellTypeVisible).Copy .Range("AA1")
.AutoFilterMode = False
Set Rng = .Range("AA1").CurrentRegion.Offset(1) 'Sh(2)的 AA1->AH :AI欗的資料,*****AI欗須先刪掉(手動)*****
End With
ListBox1.RowSource = Rng.Address
End Sub
Private Sub CommandButton4_Click() '刪除整列
Dim s, E As Range, I As Integer
With ListBox1
If .ListIndex = -1 Then MsgBox "沒有選擇!!": Exit Sub
s = Application.Index(Application.Transpose(Application.Transpose(.List)), IIf(.ListCount = 1, 0, 1))
If Join(s, "") = "" Then MsgBox "沒有資料!!": Exit Sub
s = Application.Index(Application.Transpose(Application.Transpose(.List)), IIf(.ListCount = 1, 0, .ListIndex + 1))
'S= ListIndex的選擇.ListIndex 那一列的資料,會比 Resize(, 8)多一欗.
'當
'->.Range("A:i").SpecialCells(xlCellTypeVisible).Copy .Range("AA1") ->'Sh(2)的 AA1->AI欗
'-> For Each E In .Range("A1", .Range("A1").End(xlDown)).Resize(, 8).Rows '整列:[ 自動編號......業務員 ]
End With
s = Join(s, ",") 'S: 結合控制項的字串 [ 自動編號序號公司配額筆數數值應付已付(進貨數量1+進貨數量2)業務員 ]
With Sh(2)
For Each E In .Range("A1", .Range("A1").End(xlDown)).Resize(, 8).Rows '整列:[ 自動編號......業務員 ]
Debug.Print s
Debug.Print Join(Application.Transpose(Application.Transpose(E)), ",")
If s = Join(Application.Transpose(Application.Transpose(E)), ",") Then
If MsgBox(Join(Application.Transpose(Application.Transpose(E.Value)), ","), vbYesNo, "刪除列") = vbYes Then
處裡刪除整列 E
End If
End If
Next
End With
CommandButton3_Click '重新查詢
End Sub
複製代碼
作者:
owen9399
時間:
2013-9-12 13:09
回復
29#
GBKEE
DEAR 大大:
我試不出來 刪除整列 的問題
無法執行
作者:
GBKEE
時間:
2013-9-12 13:47
回復
30#
owen9399
請在對照 29# 看看我說了什麼!
Private Sub CommandButton3_Click() 'UserForm2的查詢程式碼
Dim I As Integer, Rng As Range
With Sh(2)
.Range("AA1").CurrentRegion = "" '加這行 UserForm2表單執行一次後可不需這程式碼
.AutoFilterMode = False
For I = 1 To UBound(ar)
If ar(I) <> "" Then .Range("A1").AutoFilter I, ar(I)
Next
.Range("A:h").SpecialCells(xlCellTypeVisible).Copy .Range("AA1")
'原本是 .Range("A:i").SpecialCells(xlCellTypeVisible).Copy .Range("AA1")
.AutoFilterMode = False
Set Rng = .Range("AA1").CurrentRegion.Offset(1)
End With
ListBox1.RowSource = Rng.Address
End Sub
複製代碼
作者:
owen9399
時間:
2013-9-13 17:44
回復
31#
GBKEE
Dear 大大:
我有新的問題 要問
如附件
將 輸入進貨表的數據 分出給 阿美 阿仁 小王
並把相同公司 的數量 總計 (進貨 出貨 總計)
謝謝
作者:
GBKEE
時間:
2013-9-13 21:27
回復
32#
owen9399
選擇進貨表中的資料範圍,用指令[資料]-> [自動篩選],將各業務員依次的篩選資料,複製到各業務員的工作表裡
自己試試,用錄製巨集,看看程式碼,練習一下,
作者:
owen9399
時間:
2013-9-17 15:49
回復
33#
GBKEE
Dear 大大 :
我有做出 部份的篩選 按 阿美總庫存 按鈕 ,再點選 阿美總庫存 的表 就分類出來
1.篩選後的加總 不會
2.按 阿美總庫存 按鈕 自動跑到 秀出 阿美總庫存的資料表
謝謝
祝 中秋佳節 愉快
作者:
GBKEE
時間:
2013-9-17 16:49
回復
34#
owen9399
進步好多,讚.
Private Sub CommandButton3_Click()
Dim y
Dim Joken3 As String
Joken3 = "小王"
If Joken3 = "" Then Exit Sub
With Sheets("進貨表")
'若在篩選中,先解除顯示全部
If .FilterMode Then .ShowAllData
'以〔第5欄.業務員〕進行篩選
.[A1].AutoFilter Field:=5, Criteria1:=Joken3
'取得篩選後,最後一筆資料的〔列號〕
y = .[A65536].End(xlUp).Row
'進行貼轉資料
.Range("A1:F" & y).Copy [小王總庫存!A1]
'再恢復全表
.ShowAllData
'取消[自動篩選] 下拉箭號
.[A1].AutoFilter
MsgBox [SUM(小王總庫存!F:F)] '篩選後的加總
End With
Beep
End Sub
複製代碼
作者:
owen9399
時間:
2013-10-8 11:14
本帖最後由 owen9399 於 2013-10-8 11:15 編輯
回復
35#
GBKEE
dear 大大:
請問一下 如何在 進貨表 中 , 按一下 阿美庫存表 就秀出來
謝謝
作者:
owen9399
時間:
2013-10-8 14:09
大大
我找出來了
如何在 進貨表 中 , 按一下 阿美庫存表 就秀出來
指令:
Sheet2.Activate
作者:
owen9399
時間:
2013-10-8 14:59
DEAR GBKEE 版大:
我在 阿美庫存表中 加入 查詢功能
為函數改為 VBA程式
如何 改成 VBA 程式
將 下拉式選單的 查詢公司 重覆的 不顯示出來 , 並統計 出貨數量 與 進貨數量 的總合
謝謝
如附件
作者:
GBKEE
時間:
2013-10-10 16:27
本帖最後由 GBKEE 於 2013-10-11 14:49 編輯
回復
38#
owen9399
[阿美總庫存] 模組預設事件程序之程式碼
Option Explicit
Private Sub Worksheet_Activate() '活頁簿: 選擇工作表的預設事件
'進階篩選 公司名稱 'Columns.Count ->工作表的總欗數 ->最後一欗
Range("B:B").AdvancedFilter xlFilterCopy, , Cells(1, Columns.Count), True
With Range("I2").Validation '資料的驗證清單
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & Range(Cells(2, Columns.Count).Address, Cells(1, Columns.Count).End(xlDown).Address).Address
.IgnoreBlank = True
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address(0, 0) = "I2" Then
Range("J2") = [SUMIF(B:B,I2,D:D)] '工作表的函數在 VBA用中括號計算 [ <- 工作表的函數 -> ]
Range("K2") = [SUMIF(B:B,I2,F:F)]
End If
Application.EnableEvents = True
End Sub
複製代碼
作者:
owen9399
時間:
2013-10-11 14:37
本帖最後由 owen9399 於 2013-10-11 14:43 編輯
回復
39#
GBKEE
dear 版大:
我有貼上測試,但是 出貨數量 與 進貨數量 並無統計 ,未同步
該如何做
謝謝
作者:
owen9399
時間:
2013-10-11 17:02
回復
39#
GBKEE
DEAR 版大:
更改 後 數字也沒有變化
Application.EnableEvents = True
不知如何修正
謝謝
作者:
GBKEE
時間:
2013-10-12 14:27
回復
41#
owen9399
程式碼更新後,請檔案關閉,再開啟.
作者:
owen9399
時間:
2013-10-15 15:29
回復
42#
GBKEE
謝謝大大指導
請教 大大:
我另外 創一個 合併的 新工作表
新增 庫存工作表 ( 3位 )
目前 只規畫
阿美的 總清單 與 阿美 庫存
在 sheet1 輸入 會存到 阿美 庫存
在 輸入數值 輸入 會存到 阿美 總清單
可是 如 另外一個 附件 相同的 數值無法輸入
作者:
owen9399
時間:
2013-10-15 15:47
回復
43#
owen9399
輸入數值也一樣 無法 輸入 相同
作者:
GBKEE
時間:
2013-10-15 15:58
回復
44#
owen9399
Private Function 資料檢查() As Boolean
Dim s As String, E As Range, I As Integer, ii
With Sh
For I = 2 To UBound(ar)
ii = 10 - Len(Sh.Cells(1, I))
If I = 2 Or I = 3 Or I = 6 Then
If ar(I).ListIndex = -1 Then s = s & IIf(s = "", "", vbLf) & Sh.Cells(1, I) + Space(ii) & vbTab & ar(I)
Else
If Not IsNumeric(ar(I)) And ar(I) <> "" Then s = s & IIf(s = "", "", vbLf) & Sh.Cells(1, I) + Space(ii) & vbTab & ar(I)
End If
Next
If s <> "" Then
資料檢查 = True: MsgBox s, , "資料有誤!!": Exit Function
ElseIf s = "" And ar(4) & ar(5) & ar(7) & ar(8) = "" Then
資料檢查 = True: MsgBox "出貨 進貨 沒有數量", , "資料有誤!!": Exit Function
End If
'******** 以下為檢查是否有相同的資料 如不需要可刪除 ****************
s = "," & Join(ar, "")
s = Replace(s, "," & ar(1), "") 'S: 結合控制項的字串 [ 序號公司產品名稱台北出貨1台北出貨2業務員進貨數量1進貨數量2 ]
For Each E In .Range("B1", .Range("B1").End(xlDown)).Resize(, 7).Rows
If s = Join(Application.Transpose(Application.Transpose(E.Value)), "") Then
MsgBox Replace(Join(ar, ","), ar(1) & ",", "") & vbLf & "已存在為 第" & E.Row - 1 & " 筆 資料不可新增"
資料檢查 = True
Exit Function
End If
Next
'******************************************************************************
End With
End Function
複製代碼
作者:
owen9399
時間:
2013-10-15 16:45
回復
45#
GBKEE
謝謝 版大 的指導
我有個 問題
當 輸入數據後
阿美的 總清單 與 阿美 庫存
在 sheet1 輸入 會存到 阿美 庫存
在 輸入數值 輸入 會存到 阿美 總清單
就是 輸入多筆 資料 假設是 阿美的 就 統計後 分別 存入 阿美 庫存 或 阿美 總清單
1. 輸入 102001順天 保溫杯 台北出貨 1( 300 ) 業務員 阿美 台北進貨 1 (300)
輸入 102001順天 保溫杯 台北出貨 1(150 ) 業務員 阿美 台北進貨 1 (150)
合併 後 儲存在 分別 存入 阿美 庫存 或 阿美 總清單
102001順天 保溫杯 台北出貨 1(450) 業務員 阿美 台北進貨 1 (450)
只印出 單一公司 及 總數量 的統計
謝謝
作者:
GBKEE
時間:
2013-10-27 15:20
回復
46#
owen9399
附上檔案看看
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)