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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 01:15   #1
Rust_12
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 25
Лампочка Пляшущие листы & отображение .СSV файл.

Доброго времени суток, господа форумчане
Возникло 2 небольших скорее технических вопроса)))

1) У меня в книге более 10 листов. Видимость для одного из них- общедоступна. Остальные листы- скрыты, на них выполняются предписания макроса. При нажатии на кнопку, расположенную на видимом листе, срабатывает макрос, который делает эти листы доступными на время выполнения процедур и функций, по завершению-скрывает. Но поскольку их относительно много, при открытии эти листы мелькают..что ли. Не знаю, как выразиться более корректно. Скачут и переключаются, и это бросается в глаза.
я пробовала такие варианты:
Код:
Dim Sh As Object
    For Each Sh In ActiveWorkbook.Sheets
      Sh.Visible = xlSheetVisible
       Next Sh
и еще банальней,- такой:

Код:
  Sheets("Лист2").Select
    ActiveWindow.SelectedSheets.Visible = False
    Sheets("Лист3").Select
    ActiveWindow.SelectedSheets.Visible = False
    Sheets("Лист4").Select
    ActiveWindow.SelectedSheets.Visible = False
            ........
   ActiveWindow.SelectedSheets.Visible = False
    Range("Лист9").Select

    ActiveSheet.Shapes("Button 6").Select
    Sheets("Лист2").Visible = True
    Sheets("Лист3").Visible = True
    Sheets("Лист4").Visible = True
              ......
    Sheets("Лист9").Visible = True
Подскажите, пожалуйста, как можно убрать эти переключения и мелькания, если это в принципе реально.
Возможно, есть другой способ сделать доступными листы для выполнения макроса без их видимого отображения, о котором я не знаю?
=================================== ================
2) У меня по кнопочке макрос открывает файл с расширением .CSV. И все бы ничего, но русскоязычные ЗАГЛАВНЫЕ символы отображаются некорректно,- в виде "утюжков" такого типа: ╤╦┬.
Строчные русские буквы - без проблем. На англоязычные символы любого регистра, цифры, тире, запятые и подобн.- тоже никаких нареканий.
Возможно, кто-то из вас с этим сталкивался. Я так понимаю, дело в кодировке. Подскажите, пожалуйста, как можно решить сию проблему - через настройку управляющего меню Excel...или,быть может, с помощью макроса? Погуглила-, к сожалению, не обнаружила ничего результативного.
_________________
Большое спасибо за участие!
Rust_12 вне форума Ответить с цитированием
Старый 20.12.2011, 01:36   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А зачем Листы светить,можно обработать и невидимые.


если хотите,можно и так сделать
Код:

Application.ScreenUpdating = False

Здесь код макроса
Application.ScreenUpdating = True
А еще круче вот так
Код:
Application.Visible = False

Ваш код
Application.Visible = True
Скорее всего у вас кодировка 866,надо либо файлы CSV предварительно перекодировать,либо на лету перекодировкой занятся
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 20.12.2011 в 01:38.
doober вне форума Ответить с цитированием
Старый 20.12.2011, 01:42   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Посмотрите в этой теме ,есть решение перекодировки скриптом от Hugo121
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.12.2011, 09:16   #4
Rust_12
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 25
По умолчанию

doober
Спасибо Вам большое за ответы, но если листы скрыты, то выпрыгивает Дебаг на строчках вида Sheets("Лист2").Select, где Лист2 - скрытый лист, с которым необходимо произвести определенные действия. Видимо, скрытым он недоступен для работы. Сообщение "Метод Select для класса WorkSheet завершен неверно"
У меня одна основная функция, которая вызывается по кнопке на видимом листе. В ней прописан макрос, который по мере работы вызывает другие функции, их у меня много.
Прописала в каждой функции , как Вы советовали


Application.ScreenUpdating = False

код макроса
Application.ScreenUpdating = True


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

Вариант с
Application.Visible = False
.....
Application.Visible = True


полностью закрывает приложение Эксель. Открываю-он пишет чтото вроде" Книга такая-то уже открыта. При повторном открытии данные могут быть утеряны"

Мне кажется, я Вас неправильно поняла, я, скорее всего, в чем-то ошибаюсь. Что я делаю неверно? =(

Последний раз редактировалось Rust_12; 20.12.2011 в 09:27.
Rust_12 вне форума Ответить с цитированием
Старый 20.12.2011, 09:34   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Мне кажется, я Вас неправильно поняла, я, скорее всего, в чем-то ошибаюсь. Что я делаю неверно? =(
Примеры файлов не выложили с кодом и CSV
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.12.2011, 09:37   #6
Rust_12
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 25
По умолчанию

А нет,нет...Прошу прощения.
Вот кое-что исправила ))
При варианте с

Application.Visible = False
.....
Application.Visible = True

если прописать в одной основной функции эти строки,просто не высвечиваются процессы и сам Эксель не показывается.
Однако, для работы этого варианта при запуске и открытии книги, необходимо,чтобы все листы были общедоступными. Верно ?
Но мне нужно, чтобы все, кроме одного, скажем так, управляющего листа, было "VeryHiden".
Как разрешить вопрос?
Rust_12 вне форума Ответить с цитированием
Старый 20.12.2011, 09:52   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Примеры файлов не выложили с кодом и CSV
От селектов можно избавиться и код ускорить
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.12.2011, 10:05   #8
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Если уж так необходимо, отобразить все листы книги (и без "мелькания") можно так
Код:
Sub ВсеЛисты()
'отображаем все скрытые листы
    Dim sh As Worksheet
    Application.ScreenUpdating = False
    For Each sh In ActiveWorkbook.Sheets
        sh.Visible = True
    Next
End Sub
Хотя, как сказал выше doober все можно сделать и без отображения листов и без селектов.
Но это только при наличии Вашего файла - примера.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 20.12.2011, 10:30   #9
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Цитата:
на них выполняются предписания макроса
А каковы предписания макроса?
СSV файл обычный текстовой файл.
Может можно обойтись вообще без дополнительных листов?
Сделать всё программно.
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 20.12.2011, 10:54   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

файлы под грифом совсекретно
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по поводу меню на сайте, html&css&js antoxa22 HTML и CSS 14 30.12.2011 11:02
Как передать файл используя TClientSocket & TServerSocket? Denutrror Работа с сетью в Delphi 1 04.04.2011 18:53
Ищу файл справки для O&O Defrag 11 Pro на русском языке triceratops Софт 0 29.04.2010 00:03
TForm & TImage & PNG & Прозрачность delphi_beginner Общие вопросы Delphi 7 19.09.2009 08:46
Просто не понимаю б чём проблема!!!!!!!(char* && index) artush1984 Общие вопросы C/C++ 12 30.05.2009 03:30