Войти

Показать полную графическую версию : *VBA* | Помогите написать макросы для Excel'я


Страниц : 1 2 3 [4]

Delirium
21-07-2010, 01:04
BonoU2, код необходимо вставить не в "Эта книга", а в Module1, так, чтобы код был между Sub и End Sub. Затем идем Сервис-макрос-безопасность - выбираем наш макрос и назначаем ему клавишу или просто жмем Выполнить.

surgutfred
03-08-2010, 10:01
Люди, натолкните на мысль, как сделать.
В таблице есть строки, где данные забиты в два уровня:
"275,83
40,66"

Вот так, но это не объединеные ячейки. Одна ячейка. Мне надо из таких строк сделать две, разделив данные.

Т.е. из этого:

http://s41.radikal.ru/i092/1008/45/fd1172fd0a67.jpg (http://www.radikal.ru)

Должно получиться это:

http://s02.radikal.ru/i175/1008/30/7d9a16649f9a.jpg (http://www.radikal.ru)


В ячейке что бы написать второй строкой жмем ALT+Enter - это что перевод каретки называется? По нему отслеживать?

Delirium
04-08-2010, 00:34
В ячейке что бы написать второй строкой жмем ALT+Enter - это что перевод каретки называется? По нему отслеживать? »
Да, это перевод каретки (или же \b \r в других кодах). Если подождете сутки, вышлю файл, я там как раз делал подобное разбиение и поиск в таких ячейках.

BonoU2
05-08-2010, 15:46
Delirium за Макрос вЕликое спасибо, все работает ка Вы говорили!
Меня тоже интересует как автоматом сделать то что вынес на обговор surgutfred о переводах каретки, иногда такое тоже нужно...
И у меня еще вопрос (извените что надоедаю, файл (вложение) с одинаковыми столбцами в листах : Вовківецька-25, Вербовецька-99, Новичівська-116. Нужно на лист ЗАГАЛЬНА скопировать все данные с етих листо, то есть не делать копирование данных вручную ( у меня таких листов будет много и данные постоянно добавляются), хочу заметить что шапка на всех листах одинакова что б при автомат. копировании она не повторялась в листе ЗАГАЛЬНА. ???

BonoU2
06-08-2010, 10:09
...и еще такой вопрос, у меня вместо подщета формул в екселе 2003 отображаются сами формулы, то есть =СУММ(D34:D58) , а должно считать, не подскажмте как исправить???

Delirium
09-08-2010, 00:31
у меня вместо подщета формул в екселе 2003 отображаются сами формулы, то есть =СУММ(D34:D58) , а должно считать, не подскажмте как исправить?? »
Выделяем ячейку - формат ячеек - меняем вместо ТЕКСТ на ОБЩИЙ. Если же формулы отображаются, но подсчет производится, то идем в Сервис-параметры - и там убираем галку с "Отображать формулы"
как автоматом сделать то что вынес на обговор surgutfred о переводах каретки, иногда такое тоже нужно »
Сегодня постараюсь найти документ и выложить сюда. Файл вложения посмотрю.

Delirium
09-08-2010, 01:26
BonoU2, так этот файл ничем не отличается от того, что я делал ранее для вас. Надо только поменять условия на номера столбцов, по которым искать совпадения и дописать столбцы, которые надо копировать.

BonoU2
09-08-2010, 15:10
Delirium так там ниче сравнивать не нужно, нужно чтоб результат вышел вот такой (вложение, лист ЗАГАЛЬНА) и все???

RUVATA
09-08-2010, 16:29
конструкция IF Else
примерно так это должно выглядеть

Sub такая-то () (если необходимо привязать к событию, то там сложнее, и все-же)
'адрес ячейки (формат R1C1 без кавычек, формат буквенно-циферный A1,B4 в кавычках
If Range("адрес ячейки").value = тому-то then Range("адреc") = тому - то
'если необходимо производить какие-то действия при невыполнении условия ждобавляем Else
Else
Range("адреc") = тому - то
End if

End sub


...
конкретней и я пример кода дам, на примере легче разобраться...
читайте справку
если займетесь всерьез, советую найти учебник Уокенбаха - он очнь доступно на примере Excel вводит в VBA

BURJ
22-08-2010, 18:40
Прошу помощи, ибо в VBA к сожалению почти не понимаю.
Смысл проблемы вот в чем: из сторонней программы я передаю в excel файл, в котором числа и даты сохранены как текст.
Найдено решение в виде

Sub В_Число()
With ActiveSheet.UsedRange
.Replace ",", "."
arr = .Value
.NumberFormat = "General"
.Value = arr
End With
End Sub

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

okshef
22-08-2010, 19:40
BURJ, назначьте макрос (программу) кнопке. И версию Office озвучьте, пожалуйста.

Delirium
23-08-2010, 01:00
как автоматом сделать то что вынес на обговор surgutfred о переводах каретки »
Совсем забыл, что обещал скинуть решение. Во вложении файл, 1 кнопка. При нажатии выбираем диапазон, строку поиска, в какой столбец выводить количество совпадений. В примере в первом столбце нет данных с переводом каретки, вставьте сами. Файл в формате 2007 Excel

BURJ
23-08-2010, 01:09
okshef, все назначил, это все понятно. КАК АВТОМАТИЗИРОВАТЬ процесс назначения этой кнопки? Т е создать такую надстройку которая при добавлении все делала.
ЗЫ. 2000

okshef
23-08-2010, 07:56
2000 »
В нем можно создать свою кнопку на панели с назначенным макросом, причем, независимо от файла. Единственное, не знаю, какой файл в отвечает за пользовательские шаблоны. Берете этот файл и копируйте его на все компьютеры, и у каждого пользователя в Excel будет эта кнопка. За пояснением лучше обратиться в форум Microsoft Office (http://forum.oszone.net/forum-115.html).

RUVATA
24-08-2010, 12:38
кострукция

цикл Do while (сам определись до какого момента выполнять)

конструкция if - Else (проверишь пуста или нет такая-то Range, Offset - сместишься)
н\п


Sub First ()
Dim EndWhile As Variant

Set EndWhile = Range("A1")

'цикл "пока выполняется условие", в данном случае проверяется адрес EndWhile
Do while EndWhile.Address <> "$C$4"
'проверка пустая ли ячейка
If EndWhile.value <> "" Then
'если нет то выбираем для проверки следующую
Set EndWhile = EndWhile.Offset(1,0)
Else
'если да, то что-то там ей присваиваем и переходим к следующей ячейке
EndWhile.Value = "что-то там"
Set EndWhile = EndWhile.Offset(1,0)
End If

Loop


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

Delirium
24-08-2010, 15:01
RUVATA, к чему ваше последнее сообщение, дублирующее 69 сообщение (http://forum.oszone.net/post-1470098-69.html) ? Если предлагаете решение проблемы, озвучивайте хотя бы вкратце просьбы, иначе непонятно, к чему относить текст.

RUVATA
24-08-2010, 16:24
извиняюсь... :o
э-т ответ на #10...
я че-т проглазел, что тут ужо 8 страниц...
гость недавний... уж прощайте




© OSzone.net 2001-2012