Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.04.2008, 15:26   #11
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

во блин.. спасибо .. а почему скрипту не пофиг как там что формулы вычисляют??
kievlyanin вне форума
Старый 05.05.2008, 12:32   #12
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

и по всей видимости предпоследнее!

как заставить If ... Then выполнять 2 действия при соблюдении одного условия?? и соответсвенно их не выполнять в случае несоблюдения.

предметно:

есть строка -
If Cells(i - 6, "B") <> "Додати упаковку (+)" Then Rows(i - 2).Delete

мне надодо чтобы было два делита - Rows(i - 2).Delete и еще один .. вот как он определяется:

For u = ActiveCell.Row To 2000
If Cells(u, "A") = "транспортировка 2" Then Exit For
Next
Rows(u - 1).Delete

как теперь это совместить ??

по отдельности работатет, а вместе че-то не получается
kievlyanin вне форума
Старый 05.05.2008, 12:44   #13
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

сделал так:

If Cells(i - 6, "B") <> "Додати упаковку (+)" Then
Rows(i - 2).Delete
For u = ActiveCell.Row To 2000
If Cells(u, "A") = "транспортировка 2" Then Exit For
Next
Rows(u - 1).Delete
End If
End If


работатет .. но почему два End If ???? .. что за заморочка??
kievlyanin вне форума
Старый 05.05.2008, 13:46   #14
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Один лишний.
Если без него компилятор "ругается" - ищите в другом месте. Где-то значит есть If без End If.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 05.05.2008, 15:21   #15
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

вот весь абзац с моим редактированием:

If ActiveCell.Column = 4 And ActiveCell = "Видалити упаковку (-)" Then
For i = ActiveCell.Row To 2000
If Cells(i, "A") = "упаковка 2" Then Exit For
Next
If Cells(i - 6, "B") <> "Додати упаковку (+)" Then
Rows(i - 2).Delete
For u = ActiveCell.Row To 2000
If Cells(u, "A") = "транспортировка 2" Then Exit For
Next
Rows(u - 1).Delete
End If
End If


до того он был таким:

If ActiveCell.Column = 4 Then
For i = ActiveCell.Row To 2000
If Cells(i, "A") = "упаковка 2" Then Exit For
Next
If Cells(i - 6, "B") <> "Додати упаковку (+)" Then Rows(i - 2).Delete
End If



П.С.

оба варианта рабочие.

Последний раз редактировалось kievlyanin; 05.05.2008 в 15:23. Причина: уточнение
kievlyanin вне форума
Старый 05.05.2008, 15:33   #16
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Ну, так все ж правильно. Чего вы хотите?
Советую писать код со смещением по блокам. Сразу все видно. Вот, например, Ваш код:
Код:
    If ActiveCell.Column = 4 And ActiveCell = "Видалити упаковку (-)" Then
        For i = ActiveCell.Row To 2000
            If Cells(i, "A") = "упаковка 2" Then Exit For
        Next
        If Cells(i - 6, "B") <> "Додати упаковку (+)" Then
            Rows(i - 2).Delete
            For u = ActiveCell.Row To 2000
                If Cells(u, "A") = "транспортировка 2" Then Exit For
            Next
            Rows(u - 1).Delete
        End If
    End If
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 05.05.2008, 16:23   #17
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

хочу понимать почему заработало ... а то я сделать сделал но чисто на интуиции ...

а во втором варианте End If закрывает первую строку ... но в середине то есть еще одно If !! .. :

If Cells(i - 6, "B") <> "Додати упаковку (+)" Then Rows(i - 2).Delete

почему тут не требуется второго End If ??
kievlyanin вне форума
Старый 05.05.2008, 16:31   #18
jungo
Форумчанин Подтвердите свой е-майл
 
Аватар для jungo
 
Регистрация: 14.11.2007
Сообщений: 163
По умолчанию

Цитата:
Сообщение от kievlyanin Посмотреть сообщение
хочу понимать почему заработало ... а то я сделать сделал но чисто на интуиции ...

а во втором варианте End If закрывает первую строку ... но в середине то есть еще одно If !! .. :

If Cells(i - 6, "B") <> "Додати упаковку (+)" Then Rows(i - 2).Delete

почему тут не требуется второго End If ??
Толко что как раз вычитал, если на одной строке написанно не нужно End If
Jungo must die!!! (C) Bill Gates.
jungo вне форума
Старый 05.05.2008, 17:43   #19
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

короче вот что получилось

это не финальный файл - тут только 99,9% отработаны все ВБАшные прибамбасы - самих формул нет.

значит есть таблица (это отдельное физлицо/юрлицо) в которой есть 2 подтаблицы - виды упаковки (различны формулы по которым будет выводится стоимость и т.д. и т.п.) каждый из этих видов еще имеет "в нагрузку" под_под_таблицу с рассчетом стоимости транспортировки которая зеркальное отражение первой подтаблицы.

значит работает так - если добавляем новую упаковку вида 1 то паралельно добавляется к ней транспортировка в соответсвующей подтаблице. соответсвенно с упаковкой вида 2.

при этом сами таблицы автоматически копируются /удаляются ... т.е. количество юрлиц по которым ведется учет ограничен только высотой листа.

добавление таблиц идет строго в области до желтой строки - под ней будут всяческие результирующие таблицы по всему тому художеству что наберется над желтой строкой.

вот.

еще раз большая благодарность SAS888 за идею и техническую поддержку.

кому надо - берите пользуйтесь, улучшайте для собственных задач
Вложения
Тип файла: rar v.10.rar (22.2 Кб, 11 просмотров)
kievlyanin вне форума
Старый 05.05.2008, 17:47   #20
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

кстати единственное что я бы еще тут хотел изменить - так это гиперссылки ... неудобно .. курсор на них западает ... если бы это как-то перевести на обычную клавишу.
kievlyanin вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объеденение 2-х таблиц Stanislav БД в Delphi 3 28.07.2008 09:44
Сведение таблиц Funky_man Microsoft Office Excel 1 09.01.2008 07:20
Сведение таблиц Funky_man Microsoft Office Excel 1 08.01.2008 03:36
Копирование таблиц из одной базы в другую KuH БД в Delphi 7 27.09.2007 15:18