Подбить сумму

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

550953, Вы поймите, народ Вам помочь хочет, а Вы нам рассказываете, что у Вас таблица не помещается на А4. То, что она там помещается или нет, это уже совсем другой вопрос и, кстати, тоже решаемый. А вот то, что с такой структурой данных Вы никуда не сдвинетесь - весьма вероятно. Тем более, поймите, ведь решив, допустим, свою проблему сейчас, Вы опять столкнетесь с теми же граблями в случае, если Вам захочется сделать что-либо еще с Вашими данными в дальнейшем.
550953
Сообщения: 8
Зарегистрирован: 15 фев 2008, 16:19

Цель одно распечатать данные, которые ввожу. Цифры шрифт размером в 14 - это операции которые происходили с денежными средствами, т.е. или отдавали копеечку или принимали. Денежные средства принимаються(изначально) по ячекам из столбца А(зафиксированая дата обхода), а дальше и дет работы с ними. Если человек дал еще денег - то прибавляется сумма к текущей и над этим числом в ячейке размером 8 шрифта вписываться дата принятия денег, дальше ставить знак "="и результат.
Вот то что я делаю с этим листиком.
Извините, я зря к Вам видимо пристаю. Жаль что нельзя решить мой вопрос. Вы себе не представляете, как мне хотелось сделать жизнь приятнее, эх....
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Ну что ж, теперь понятно что Вы делаете. И теперь тем более понятно, что таблица в таком виде неработоспособна. Как-то делал подобное (кстати подобные задачи в Excel Вам придется решать достаточно часто - на то они и электронные таблицы). А насчет того что
Жаль что нельзя решить мой вопрос.
это Вы зря. Для Excel, при правильной постановке вопроса, нет ничего невозможного. :)
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Посмотрите вложение. Это конечно не шедевр, просто идея, первое, что пришло в голову. А вообще вариантов может быть сколько угодно. Все зависит только от Вашей фантазии.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Примерно так я вижу решение Вашей задачи в простейшем варианте.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Ради прикола можно сделать и как просит автор топика ;)

Код: Выделить всё

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim s As String
    Dim i As Long
    Const spec_col As Long = 4
    If Target.Column <> spec_col or Target.Columns.Count * Target.Rows.Count > 1 Then Exit Sub
    s = Target.Value
    If Right$(s, 1) = "-" Then Mid$(s, Len(s), 1) = "="
    i = InStr(s, "=")
    If i = 0 Then
       If InStr(s, "-") + InStr(s, "+") > 0 Then
           s = s & "="
           i = Len(s)
       End If
    End If
    If i = Len(s) Then
        s = s & Application.Evaluate(Left$(s, i - 1))
    ElseIf i > 0 And i < Len(s) Then
        i = Len(s) - InStr(StrReverse(s), "=") + 1
        s = s & "=" & Application.Evaluate(Mid$(s, i + 1))
    ElseIf i = 1 Then
        s = vbNullString
    End If
    Application.EnableEvents = False
    Target.Value = s
    Application.EnableEvents = True
End Sub
Приведённый код нужно поместить в код листа с таблицей.
Cпецобработка ведётся для ячеек из колонки spec_col.
Проверять что было введено корректое число или выражение мне было лень ;)
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Aent, красивый код :rolleyes: но, Вы правы, только ради прикола. Поставленная задача не стоит таких "мучений".
Код очень интересен для изучения возможностей Excel VBA.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

VictorM, в жизни бывает всякое ;) Помнится лет 5 назад делал я одному
пожарнику модуль для EXCEL для вычислений в 32-ричной арифметике.
Подозреваю, он так взятки учитывал :) :)
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Aent,
в жизни бывает всякое
абсолютно согласен.
Иной раз на техзадание без слез смотреть невозможно.
Типа "я хочу вот так", а то, что его "хочу" ни в какие ворота не лезет...
И что ж, приходится делать.
А Ваш пример - яркое тому подтверждение :) :)
550953
Сообщения: 8
Зарегистрирован: 15 фев 2008, 16:19

Спасибо большое что откликнулись на мои таки бредовые идеи. Всеже проще делать тупо ручками т.к. серовно оно нечего так не делает как хочется и как на практике надо.
А лутше всего ссобой ноут таскать, а то приходится то налистики распечатывать, то слистиков набирать в комп. Извините что Вас мучал. Спасибо огромное что вы есть в интернете и можете решить любую задачу. Респект вам и форуму!
Ответить