|
おしえてください。
G列の計算値は表示出来るのですが
A列に小計or合計が出ませんどこか間違っているのでしょうか
Option Explicit
Private Sub CommandButton1_Click()
With ActiveCell
If .Column <> 7 Or .Value <> "" Then
MsgBox "セルの場所が不適切です"
Exit Sub
End If
End With
Dim i As Long
Dim r As Long
Dim myRes As Variant
r = ActiveCell.Row
myRes = MsgBox("小計なら はい、合計なら いいえを選んでください", vbYesNoCancel)
If myRes = vbYes Then
For i = r - 1 To 1 Step -1
If Cells(i, 1).Value = "小計" Or Cells(i, 1).Value = "合計" Or Cells(i, 1).Value = "品 名" Then
If i = r - 1 Then
MsgBox ("計算する行がありません")
Else
Cells(r, 7).Value = "=sum(G" & i + 1 & ":G" & r - 1 & ")"
Cells(r, 1).Value = "小計"
End If
i = 1
End If
Next
ElseIf myRes = vbNo Then
For i = r - 1 To 1 Step -1
If Cells(i, 1).Value = "合計" Or Cells(i, 1).Value = "品 名" Then
If i = r - 1 Then
MsgBox ("計算する行がありません")
Else
Cells(r, 7).Value = "=sumif(A" & i + 1 & ":G" & r - 1 & ",""小計"",G" & i + 1 & ":G" & r - 1 & ")"
Cells(r, 1).Value = "合計"
End If
i = 1
End If
Next
End If
End Sub
下記を元に上記のように修正してみたのですが
ご指導お願いします。
> A B C D E F
>1 品名 形式 呼称 数量 単 価 金 額
>2 ○○ 100 1,250 125,000
>3 △△ 250 100 25,000
>4 ■□ 120 2,200 264,000
>
> :
> :
> :
>11 ×× 110 150 16,500
>12 ●◎ 300 15 4,500
>
>
> A B C D E F
>1 品名 形式 呼称 数量 単 価 金 額
>2 ○○ 100 1,250 125,000
>3 △△ 250 100 25,000
>4
>5 ■□ 120 2,200 264,000
>6 小計 414,000
> :
> :
> :
>11 ×× 110 150 16,500
>12 ●◎ 300 15 4,500
>13 小計 21,000
>
>
> 合計 454,000
>
>任意の行の小計を算出(コマンドボタン1)『小計』
>上記表はF列ですが汎用性を持たせる為にクリックして列を決めたい。
>MsgBox "小計の列をクリック。"
>次にMsgBox "小計の行をクリックしなさい。"上の表の場合A6をクリック
>F13に414,000と(数式記入)表示させる。
>
>次に小計を出す場合は列は上記で
>指定してあるので(コマンドボタン2)『小計2』
>MsgBox "小計の行をクリック。"
>A13をクリック
>前回の小計を探して
>MsgBox "小計の範囲はF6からF12です。" ,4
>F13に 21,000を(数式記入)表示
>これを何度か実行し
>
>最後に合計
>アクティブせるから(仮にA100[任意])の場合A100に"合計"と
>記入しF2:F99までの
>小計行のF列をsumする。
>-------------------------------------------------------------------
>A101以降同様に上記作業が実行され
>
>最後に総合計(仮に)A500に
>合計行のTOTALを出したいのですがVBAで組めますか。?
>
>よろしくお願いします。
>
>下記コードを参考に考えたのですがVBA初心者ではなかなか
>思い通りになりませんでした。
>Option Explicit
>Private Sub CommandButton1_Click()
>With ActiveCell
> If .Column <> 2 Or .Value <> "" Then
> MsgBox "セルの場所が不適切です"
> Exit Sub
> End If
>End With
>
>Dim i As Long
>Dim r As Long
>Dim myRes As Variant
>
>r = ActiveCell.Row
>
>myRes = MsgBox("小計なら はい、合計なら いいえを選んでください", vbYesNoCancel)
>If myRes = vbYes Then
>For i = r - 1 To 1 Step -1
> If Cells(i, 1).Value = "小計" Or Cells(i, 1).Value = "合計" Or Cells(i, 1).Value = "計" Then
> If i = r - 1 Then
> MsgBox ("計算する行がありません")
> Else
> Cells(r, 2).Value = "=sum(B" & i + 1 & ":B" & r - 1 & ")"
> Cells(r, 1).Value = "小計"
> End If
> i = 1
> End If
>Next
>
>ElseIf myRes = vbNo Then
>For i = r - 1 To 1 Step -1
> If Cells(i, 1).Value = "合計" Or Cells(i, 1).Value = "計" Then
> If i = r - 1 Then
> MsgBox ("計算する行がありません")
> Else
> Cells(r, 2).Value = "=sumif(A" & i + 1 & ":B" & r - 1 & ",""小計"",B" & i + 1 & ":B" & r - 1 & ")"
> Cells(r, 1).Value = "合計"
> End If
> i = 1
> End If
> Next
> End If
>End Sub
|
|