Страница 2 из 3

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

Добавлено: 18 фев 2008, 09:30
VictorM
550953, Вы поймите, народ Вам помочь хочет, а Вы нам рассказываете, что у Вас таблица не помещается на А4. То, что она там помещается или нет, это уже совсем другой вопрос и, кстати, тоже решаемый. А вот то, что с такой структурой данных Вы никуда не сдвинетесь - весьма вероятно. Тем более, поймите, ведь решив, допустим, свою проблему сейчас, Вы опять столкнетесь с теми же граблями в случае, если Вам захочется сделать что-либо еще с Вашими данными в дальнейшем.

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

Добавлено: 18 фев 2008, 12:46
550953
Цель одно распечатать данные, которые ввожу. Цифры шрифт размером в 14 - это операции которые происходили с денежными средствами, т.е. или отдавали копеечку или принимали. Денежные средства принимаються(изначально) по ячекам из столбца А(зафиксированая дата обхода), а дальше и дет работы с ними. Если человек дал еще денег - то прибавляется сумма к текущей и над этим числом в ячейке размером 8 шрифта вписываться дата принятия денег, дальше ставить знак "="и результат.
Вот то что я делаю с этим листиком.
Извините, я зря к Вам видимо пристаю. Жаль что нельзя решить мой вопрос. Вы себе не представляете, как мне хотелось сделать жизнь приятнее, эх....

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

Добавлено: 18 фев 2008, 13:29
VictorM
Ну что ж, теперь понятно что Вы делаете. И теперь тем более понятно, что таблица в таком виде неработоспособна. Как-то делал подобное (кстати подобные задачи в Excel Вам придется решать достаточно часто - на то они и электронные таблицы). А насчет того что
Жаль что нельзя решить мой вопрос.
это Вы зря. Для Excel, при правильной постановке вопроса, нет ничего невозможного. :)

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

Добавлено: 18 фев 2008, 15:20
VictorM
Посмотрите вложение. Это конечно не шедевр, просто идея, первое, что пришло в голову. А вообще вариантов может быть сколько угодно. Все зависит только от Вашей фантазии.

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

Добавлено: 18 фев 2008, 18:52
VictorM
Примерно так я вижу решение Вашей задачи в простейшем варианте.

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

Добавлено: 23 фев 2008, 23:56
Aent
Ради прикола можно сделать и как просит автор топика ;)

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

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.
Проверять что было введено корректое число или выражение мне было лень ;)

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

Добавлено: 24 фев 2008, 00:27
VictorM
Aent, красивый код :rolleyes: но, Вы правы, только ради прикола. Поставленная задача не стоит таких "мучений".
Код очень интересен для изучения возможностей Excel VBA.

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

Добавлено: 24 фев 2008, 00:43
Aent
VictorM, в жизни бывает всякое ;) Помнится лет 5 назад делал я одному
пожарнику модуль для EXCEL для вычислений в 32-ричной арифметике.
Подозреваю, он так взятки учитывал :) :)

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

Добавлено: 24 фев 2008, 11:58
VictorM
Aent,
в жизни бывает всякое
абсолютно согласен.
Иной раз на техзадание без слез смотреть невозможно.
Типа "я хочу вот так", а то, что его "хочу" ни в какие ворота не лезет...
И что ж, приходится делать.
А Ваш пример - яркое тому подтверждение :) :)

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

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