IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Обсуждение программ (http://www.imho.ws/forumdisplay.php?f=3)
-   -   Microsoft Excel: Вопросы и ответы (http://www.imho.ws/showthread.php?t=26600)

korotetsky 26.09.2006 21:41

в каком виде цифры и буквы? обрисуй, либо пример подбрось.

Alex Dark 27.09.2006 07:09

Самы
Цитата:

Pride Assa$$in™:
Я понимаю что это наверное просто очень,
Конечно просто.
Перебираешь ячейки. Для каждой ячейки меребираешь посимвольно содержание. Если число - складываешь, умножаешь, делишь, вычитаешь.

А лучше прицепи пример.

ну вот так для ячейки можно сделать

rez = 0
'
MsgBox ActiveCell.FormulaR1C1
L = ActiveCell.FormulaR1C1
For i = 1 To Len(L)
If Val(Mid(L, i, 1)) <> 0 Then ' Это условие можно вообще отключить
rez = rez + Val(Mid(L, i, 1))
End If
Next
MsgBox rez
End Sub


работает для текущей ячейки

Pride Assa$$in™ 27.09.2006 11:22

Уфф ... Проблема снята... Оказалось, дело в том, что в столбце были еще и буквы, то есть обозначения валют, например USD, RUR; кроме того, в качестве разделителя разрядов использовалась точка, а не запятая. Достаточно было убрать буквы и поменять точку на запятую - СУММ прекрасно справилась !

Wolf74 29.09.2006 16:07

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

Alex Dark 02.10.2006 10:05

Цитата:

Wolf74:
одном листе ведеться учет прихода зерна там в ячейке забиваеться номер автомобиля, как сделать так чтобы в ячейке напротив согласно набраному номеру автомобиля автоматически прописывалась фирма
Ну ты и завернул. Сделать можно, но сложно. Проще открыть Access и сотворить там за 5 минут, нежели в екселе.

ну а если так сильно надо то ща прицеплю. Сам разберешься?

что то не грузится архив

korotetsky 02.10.2006 11:07

Вложений: 1
Цитата:

Привет всем. подскажите выход из ситуации. как можно провернуть. такое.
на одном листе ведеться учет прихода зерна там в ячейке забиваеться номер автомобиля, как сделать так чтобы в ячейке напротив согласно набраному номеру автомобиля автоматически прописывалась фирма -грузоперевозчик. Заранее спасибо за помощь.
можно, правда путем некоторых "махинаций" ;) см. аттач

используется функция ВПР. получается, в листе "учет" в ячейку "номер машины" вбиваем номер, в соседнюю подтягивается из списка фирм и номеров машин из листа "база", который нужно подготовить заранее, название фирмы. в пример добавлена конструкция ЕСЛИ(ЕОШИБКА()) - без нее при пустом номере машины название фирмы будет Н/Д.
короче, читаем справку по функциям, там все понятно написано :contract:

пс:
хоелось взглянуть на решение от Alex Dark

Alex Dark 02.10.2006 12:58

Решение элементарное как ясный день :-)

аттач не аттачится а так, на макросе

по условию у нас 2 листа
"Лист 1":
1 колонка номер (то есть что ищем)
2 колонка функция "=My_Seek(A1)")
параметр - значение первой колонки

"Лист 2" справочник
1 колонка номер (то есть ключ)
2 название (то есть что возвращаем при помощи функции)

[COLOR=Red]
Public Function My_Seek(par)
Dim Лист
My_Seek = "!!! Не найден"
Set Лист = ActiveWorkbook.Sheets("Лист2")
i = 2
Do While True
If IsEmpty(Лист.Cells(i, 1).Value) Then
Exit Do
End If
If UCase(Лист.Cells(i, 1).Value) = UCase(par.Value) Then
My_Seek = Лист.Cells(i, 2)
Exit Do
End If
i = i + 1
Loop
End Function

[COLOR=Black]

Alex Dark 02.10.2006 14:46

PS кому то нравятся формулы, мне не очень, лучше функцией. В формулах долго ковыряться, а особо когда не совсем понятно что она (они) делаеют, а в примере как всегда простенький примерчик, а в описании то же не густо. В любом случае и у функции и у формулы есть свои "+" и "-" Да и конечному пользователю намнго понятнее формула "=Расчет()" нежели трехэтажная формула со множеством условий и пераметров. Во всяком случае так как сделал korotetsky то же очень не плохо

korotetsky 02.10.2006 14:55

Цитата:

Alex Dark:
PS кому то нравятся формулы, мне не очень, лучше функцией. В формулах долго ковыряться, а особо когда не совсем понятно что она (они) делаеют, а в примере как всегда простенький примерчик, а в описании то же не густо.
с другой стороны, формулу легче поправить и применить подобие, если таких полей надо потянуть несколько.. хотя в принципе верно - кому как ;)

пс. решение действительно простое :)

morJ 02.11.2006 10:41

Плз люди помогите!!! Редактировал один документ, случайно вместо "save as" сделал "save". Прогу закрыл. Можно ли каким-нибудь образом восстановить старые данные?

Сорри, на 10-й странице нашел ответ, пост можно удалить.

abdu 03.11.2006 15:31

Заливка в Excel
 
Проблема такая. делаю заливку ячеек, ничего не происходит, но в режиме предварительного просмотра заливка есть. Я так думаю проблема в настройках, но сам не нашел

Cartman 03.11.2006 16:46

Поиском пользоваться религия не позволяет?
Объединяю.

Seva 03.11.2006 19:07

Как через макрос проверить существует ли файл?

korotetsky 03.11.2006 19:11

Цитата:

abdu:
Проблема такая. делаю заливку ячеек, ничего не происходит, но в режиме предварительного просмотра заливка есть. Я так думаю проблема в настройках, но сам не нашел
ты бы файлик приатачил ;)

Alex Dark 05.11.2006 10:19

Цитата:

Сообщение от Seva
Как через макрос проверить существует ли файл?

FILE = Dir("ДИСК:\ПУТЬ\ФАЙЛ.РАСШИРЕНИЕ")

Если файл есть FILE="ФАЙЛ.РАСШИРЕНИЕ" если нет то FILE=""

FILE = Dir в цикле перебирает файлы если вместо "ФАЙЛ.РАСШИРЕНИЕ" указать маску поиска

Цитата:

Сообщение от abdu
Проблема такая. делаю заливку ячеек, ничего не происходит, но в режиме предварительного просмотра заливка есть. Я так думаю проблема в настройках, но сам не нашел

Да. Картинка не помешала бы.
Может у тебя цветовая схема самодельная и не повторимая?

korotetsky 06.11.2006 14:03

наткнулся на фигню. неприятную.

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

проблема в следующем: макросом все выполняется без проблем и нареканий, но если это дело прицепить на кнопку, то получаем:

Цитата:

Run-time error '1004':
Метод Select из класса Range завершен неверно
лист копирует, сортировать не хочет, запнувшись на ошибке с выделением.
не соображу куда рыть и как эту гадость заставить работать
вот сам текст, ошибается на красном:
Код:

    Sheets("calendar").Delete
    Sheets("total").Select
    Sheets("total").Copy Before:=Sheets(2)
    Sheets("total (2)").Select
    Sheets("total (2)").Name = "calendar"
    ActiveSheet.Outline.ShowLevels RowLevels:=1
    Range("A8:AA122").Select
    Range("AA122").Activate
    Selection.Sort Key1:=Range("L8"), Order1:=xlAscending, Key2:=Range("C8") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
    Range("A1:AA130").Select
    Range("AA130").Activate
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AA$130"
    Range("D8").Select

есть у кого-нибудь мысли?

Alex Dark 06.11.2006 16:36

Вложений: 1
Цитата:

korotetsky:
есть у кого-нибудь мысли?
Во первых, все что касается не VB а Excel лучше аттачить сам файл, потому что у меня твой кусок работает. Наверное потому, что уже наступал на эти грабли и на автомате цепляю макрос правильно.

Вообще то, я всегда для операций типа Range("A8:AA122").Select добавляю ActiveSheet или явное указание листа. Добавь попробуй

PS вот приаттачил. Это файл XLS переименованный в TXT. Извините. нахожусь в школе, а тут комп голый

korotetsky 06.11.2006 16:47

еще вдогонку вопрос:

таблица имеет сгруппированые строки. как при сортировке заставить excel првильно разносить эти сгруппированные строки? ибо рвет нещадно.

Alex Dark 06.11.2006 16:52

Цитата:

korotetsky:
разносить эти сгруппированные строки
приаттачь файл, лень придумывать что ты хочешь получить

ps у меня вообще отказывается сортировать сгруппированные ячейки

korotetsky 06.11.2006 17:21

Вложений: 1
файл аттачить не могу - конф. :contract:, а разбирать до нужного уровня долго

хотя щас попытаюсь воссоздать нечто подобное


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

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

abdu 07.11.2006 07:27

Цитата:

Сообщение от korotetsky
ты бы файлик приатачил ;)

На другом компе все нормально, проверял

nikiniki 09.11.2006 00:12

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

Pride Assa$$in™ 09.11.2006 09:50

Цитата:

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

Вряд ли. Специальным софтом эти пароли взламываются на раз. Причем я заметил - на разных машинах разные пароли, видимо, используется дыра в системе защиты.

AlexArGC 16.11.2006 11:22

Укажи явно лист
Код:

Worksheets("calendar").Range("A8:AA122").Select

alexist 17.11.2006 13:24

У кого есть проблемы с итогами в Office 2003 или 2007 при использовании вложенных подитогов, то для решения проблемы достаточно добавить в реестр для 2003-го и 2007-го соответственно

[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options]
"Excel97Subtotals"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options]
"Excel97Subtotals"=dword:00000001

deimos 21.11.2006 09:55

Есть такая проблемка. стоит офис 2003 и в экселе если открываешь по очереди два файла(с большими таблицами), то эксель первый файл открывает, а второй не открывает. Выдает ошибку что недостаточно ресурсов, хотя машина не слабая для офиса.
Потом тупит, открывает все же второй файл, но открывает коряво и пишет что файл поврежден.
что делать?

причем, если этот файл который эксель открыл коряво не сохранять и просто открыть заново, но только его, то он открывает его без проблем

kharson 22.11.2006 17:31

цикл с проверкой в Excel
 
У меня вопрос по Excel, он вроде элементарный, но никак не соображу, как же правильно сваять таблицу и что пользовать, потому как не спец абсолютно.

Задача следующая: есть небольшой набор значений, который будет расширяться в будующем.
A | B
--------
a 10
b 20
c 18,5
........
итд

названия в столбце А уникальны ессно.

В другом месте листа есть своя таблица, в которой надо использовать данные из этого набора в таком виде:
Если в ячейке H1 написать с, то в ячейке I1 должно отображаться автоматически значение 18,5

По соображениям безопасности макросами пользоваться нельзя. В любой проге это делается элементарно, макрос пишется за несколько секунд, а как запустить подобный цикл в Excel?

Alex Dark 23.11.2006 07:21

=ВПР(H2;A:B;2)
При этом столбец А должен быть отсортирован по возрастанию (естественно вместе с данными)
(В списке функций в разделе ссылки и массивы на втором месте)

=ИНДЕКС(A:B;ПОИСКПОЗ(H1;A:A;0);2)
без сортировки

Alex Dark 24.11.2006 11:38

Не запускаются XLS файлы
 
Запостил сюда, т.к. офис работает ВРОДЕ нормально. Для подстраховки переустановил его
Проблема: При запуске XLS файлов открывается только Еxcel и ВСЁ
Если открывать из Еxcel - открывается нормально.

Проверил "ТИПЫ ФАЙЛОВ" Сравнил с параметрами рабочей машины - исправил различия. Теперь все совпадает. Но не запускается
Проблемма возникла не давно.

Операционка
Win XP HomeEdition SP2 лицензионная пришла с компом, активизирована
Пользователь с правами админа
Офис
Офис XP ломаный

В событиях примерно в то время когда произошол сбой нашел такую запись
Код:

Поставщик OffProv10 зарегистрирован в пространстве имен WMI Root\MSAPPS10, но не указал свойство HostingModel. 
Для запуска поставщика будет использоваться учетная запись LocalSystem. 
Это привилегированная учетная запись, и если поставщику не удастся олицетворить запрос пользователя, это может привести к нарушению безопасности. 
Проверьте, что поставщик не угрожает безопасности, и обновите свойство регистрации поставщика HostingModel до учетной записи с наименьшими привилегиями, необходимые для данной функциональности.


Alex Dark 24.11.2006 13:40

И так пришел к выводу что все же проблема с виндовозом.
В типах файлов у XLS было
Приложение "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" /e
Сообщение DDE [open("%1")]

Исправил на
Приложение "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" "%1"
Сообщение DDE пусто

Файлы стали открываться, но при этом выходит сообщение что такого файла (с указаниемм его пути) НЕТ

что соответственно не есть хорошо

Cartman 24.11.2006 19:11

Объединяю.

kharson 03.12.2006 22:50

Excel. Перенос настроенного меню с компьютера на компьютер.

Обычная рабочая книга в Excel, в которой перенастроено стандартное меню - некоторые кнопки и пункты меню удалены, некоторые добавлены, есть отдельное меню с макросами, подписанными сертификатом итд. При переносе этого всего на другой, "чистый" комп, прописывания всех макросов и других процедур, сами макросы в новой книге присутствуют и работают, а вот пунктов меню, которые были в оригинальной версии и которые нажатием кнопки запускают команды, уже нет.

Излечимо ли это и как перенести уже настроенное меню с компа на комп? Спасибо!

korotetsky 04.12.2006 20:47

по-моему достаточно будет перенести файл
Код:

<drive>:\Documents and Settings\<user>\Application Data\Microsoft\Excel\Excel11.xlb
со старой системы на новую. по-моему так, ибо если этот файл убить на старой системе, excel приобретает девственный вид

Frenzy 06.12.2006 12:36

можно ли привести следующтй пример, когда одна книга xls открывается из-под другой, причем 1-ую книгу напрямую екселем открыть невозможно

korotetsky 06.12.2006 14:17

думаю, что стоит поточнее сформулировать вопрос ;)

Alex Dark 07.12.2006 07:26

Цитата:

Frenzy:
можно ли привести следующтй пример
можно
Цитата:

Frenzy:
когда одна книга xls открывается из-под другой
Можно и очень просто
Цитата:

Frenzy:
причем 1-ую книгу напрямую екселем открыть невозможно
ну да,
1. если она не является файлом excell но имеет расширение xls
2. или просто запароленна.
3. еще не придумал, но есть и 3 вариант если объяснишь смысл своего вопроса
Специально разбил твой вопрос на 3 части, иначе (т.е. если читать его разом) ни чего не понятно

Frenzy 07.12.2006 13:56

есть файл setup.xls и start.xls оба файлы екселя на них пароль 6905 причем файл start.xls можно открыть если открыт фалй setup.xls если файл setup.xls закрыть, то файл start.xls также закрывается, попытки открыть файл start.xls заканчиваются на вводе пароля.

V0land 07.12.2006 14:00

Цитата:

попытки открыть файл start.xls заканчиваются на вводе пароля.
всмысле, заканчиваются? тыж пароль знаешь. или я что-то недопонял?

korotetsky 07.12.2006 15:05

Цитата:

V0land:
всмысле, заканчиваются? тыж пароль знаешь. или я что-то недопонял?
нет, видимо задача в том, чтоб второй файл никак не открывался если не открыт первый. и соответственно при закрытии первого закрывался и второй.

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

V0land 07.12.2006 15:10

а если попробовать сменить пасс на один из файлов?


Часовой пояс GMT +4, время: 04:53.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.