AlexM, крайне неудобно Вас снова тревожить, но опять прошу помощи. Работаю с файлом с макросом. Подскажите, возможно ли, вбив данные за январь, а затем вбив данные за февраль в соседние ячейки, чтобы в квартал, полгода, 9 месяцев и год суммировались числа за январь и февраль? То есть вбиты данные в ячейки E13, F13, затем вбил значения в G13, H13, а в квартале, полугодие, 9 месяцев и год появлялась бы сумма ячеек? Дело в том, что раньше нужно было, чтобы для каждого адреса была своя строчка, сейчас же приспичило, чтобы для одного адреса нужно было вбивать данные в несколько месяцев, и эти данные суммировались в итоговые столбцы.
AlexM, крайне неудобно Вас снова тревожить, но опять прошу помощи. Работаю с файлом с макросом. Подскажите, возможно ли, вбив данные за январь, а затем вбив данные за февраль в соседние ячейки, чтобы в квартал, полгода, 9 месяцев и год суммировались числа за январь и февраль? То есть вбиты данные в ячейки E13, F13, затем вбил значения в G13, H13, а в квартале, полугодие, 9 месяцев и год появлялась бы сумма ячеек? Дело в том, что раньше нужно было, чтобы для каждого адреса была своя строчка, сейчас же приспичило, чтобы для одного адреса нужно было вбивать данные в несколько месяцев, и эти данные суммировались в итоговые столбцы.Leojse
Сообщение отредактировал Leojse - Пятница, 01.02.2013, 23:15
Не сразу заметил это сообщение из-за временного отсутствия уведомлений о новых сообщениях. Покажите в файле пример заполнения строк, чтобы однозначно понять задание. Сейчас вы пишите, что одного адреса может вводится январь, февраль и март, т.е. в пределах одного квартала. А в пределах года может быть? Короче, нужна таблица с разными вариантами заполнения ячеек для одного адреса.
Не сразу заметил это сообщение из-за временного отсутствия уведомлений о новых сообщениях. Покажите в файле пример заполнения строк, чтобы однозначно понять задание. Сейчас вы пишите, что одного адреса может вводится январь, февраль и март, т.е. в пределах одного квартала. А в пределах года может быть? Короче, нужна таблица с разными вариантами заполнения ячеек для одного адреса.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
AlexM, добрый вечер. Когда же я перестану Вас доставать... но снова вопрос... Возможно ли еще одно дополнение к макросу суммы? Дело в том, что бывает, на пример, данные вводятся через слеш. То есть по адресу в январе 1/150, в ферале 2/50, в марте 1/150. В квартале и в других итоговых столбцах должно получиться 3/350. Если это невозможно, можно ли хотя бы тогда как-то редактировать итоговые столбы? То есть самому посчитать и вбить эти самые "3/350"? Просто макрос этого не позволяет... Заранее Вам плюс)
AlexM, добрый вечер. Когда же я перестану Вас доставать... но снова вопрос... Возможно ли еще одно дополнение к макросу суммы? Дело в том, что бывает, на пример, данные вводятся через слеш. То есть по адресу в январе 1/150, в ферале 2/50, в марте 1/150. В квартале и в других итоговых столбцах должно получиться 3/350. Если это невозможно, можно ли хотя бы тогда как-то редактировать итоговые столбы? То есть самому посчитать и вбить эти самые "3/350"? Просто макрос этого не позволяет... Заранее Вам плюс)Leojse
AlexM, вот, посмотрите файл. Формулу составили на другом ресурсе. Только не знаю, как прикрутить эту формулу в макрос суммы. Уж очень малы знания в VBA...(
AlexM, вот, посмотрите файл. Формулу составили на другом ресурсе. Только не знаю, как прикрутить эту формулу в макрос суммы. Уж очень малы знания в VBA...(Leojse
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Column > 4 Then Dim i As Long, c As Long, iSum1 As Double, iSum2 As Double For Each iCell In Target If iCell <> "" And iCell.Interior.ColorIndex <> 4 Then Select Case iCell.Column Case Is < 11: c = 6 Case Is < 19: c = 14 Case Is < 27: c = 22 Case Is < 35: c = 30 End Select For i = c - iCell.Column Mod 2 To 36 - iCell.Column Mod 2 Step 2 Select Case i Case 11, 12, 19, 20, 27, 28, 35, 36 If iSum2 = Empty Then Cells(iCell.Row, i) = iSum1 Else Cells(iCell.Row, i) = iSum1 & "/" & iSum2 End If Case Else aa = Split(Cells(iCell.Row, i), "/") On Error Resume Next iSum1 = iSum1 + aa(0) * 1 On Error Resume Next iSum2 = iSum2 + aa(1) * 1 End Select Next i End If Next End If Application.EnableEvents = True End Sub
[/vba]
Проверьте код
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Column > 4 Then Dim i As Long, c As Long, iSum1 As Double, iSum2 As Double For Each iCell In Target If iCell <> "" And iCell.Interior.ColorIndex <> 4 Then Select Case iCell.Column Case Is < 11: c = 6 Case Is < 19: c = 14 Case Is < 27: c = 22 Case Is < 35: c = 30 End Select For i = c - iCell.Column Mod 2 To 36 - iCell.Column Mod 2 Step 2 Select Case i Case 11, 12, 19, 20, 27, 28, 35, 36 If iSum2 = Empty Then Cells(iCell.Row, i) = iSum1 Else Cells(iCell.Row, i) = iSum1 & "/" & iSum2 End If Case Else aa = Split(Cells(iCell.Row, i), "/") On Error Resume Next iSum1 = iSum1 + aa(0) * 1 On Error Resume Next iSum2 = iSum2 + aa(1) * 1 End Select Next i End If Next End If Application.EnableEvents = True End Sub