Visual Basic & Excel

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zyx
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 22.10.2004 (Пт) 15:48

Visual Basic & Excel

Сообщение zyx » 22.10.2004 (Пт) 17:25

Народ, ай инд хелп!

Я прослышала, что скрипты для екселя пишутся на Visual Basic. Как сделать, чтобы ячейка в екселе сама задавала свой цвет в зависимости от заданных условий. Если Вам не трудно, киньте мне кто нить этот код и плз с инструкцией, как собсно его применить.
(я бы сама наверно разобралась, но меня сильно поджимают сроки :oops: )

Заранее огромное спасибо!!!!!!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.10.2004 (Пт) 17:27

Формат :arrow: условное форматирование
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

zyx
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 22.10.2004 (Пт) 15:48

Сообщение zyx » 22.10.2004 (Пт) 17:29

Хм...

Умные мужики сказали, что точно не так...

zyx
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 22.10.2004 (Пт) 15:48

Сообщение zyx » 22.10.2004 (Пт) 17:32

А хотя... :wink:

Andrew Sherd
Новичок
Новичок
Аватара пользователя
 
Сообщения: 42
Зарегистрирован: 10.05.2004 (Пн) 0:18
Откуда: Санкт-Петербург

Сообщение Andrew Sherd » 25.10.2004 (Пн) 3:37

Не на обячном ВБ пишется (если я правильно задачу понял). а на VBA - заходишь в Exel -> Cервис -> Макрос -> Вижуал Басик =)

там уже ориентурешься с ячейками, которые тебе нужны, но вроде так:

WorkSheets("Лист1").Cells(1,1).Value="TEST"

Так загонять значение "TEST" в ячейку A1. По тому же принципу обращаемся к другим свойствам ячейки...

Нет Экселя под рукой так что точность не гарантирую, но принцип такой 100%
Маленькие хитрости: Если золотую рыбку положить на сковородку, количество желаний увеличивается да 50!!!

kazah_
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 13.01.2003 (Пн) 18:37
Откуда: Russia

Сообщение kazah_ » 25.10.2004 (Пн) 15:43

Andrew Sherd писал(а):Не на обячном ВБ пишется (если я правильно задачу понял). а на VBA - заходишь в Exel -> Cервис -> Макрос -> Вижуал Басик =)

там уже ориентурешься с ячейками, которые тебе нужны, но вроде так:

WorkSheets("Лист1").Cells(1,1).Value="TEST"

Так загонять значение "TEST" в ячейку A1. По тому же принципу обращаемся к другим свойствам ячейки...

Нет Экселя под рукой так что точность не гарантирую, но принцип такой 100%
можно и на обычном бейсике, для этого нада сделать так:

Private Sub Command1_Click()
Dim sHEET1 As Object
Dim NObj As Object
Set NObj = CreateObject("EXCEL.APPLICATION")

NObj.workbooks.Open FileName:="C:\Documents and Settings\full\Ìîè äîêóìåíòû\Êíèãà1.xls"
Set sHEET1 = NObj.workbooks
NObj.cells(5, 5) = "Dennis"
NObj.Range("I5").Select
With NObj.Selection.Interior
.ColorIndex = 53
.Pattern = xlSolid
End With
NObj.Selection.Font.ColorIndex = 1
NObj.Visible = True
End Sub
Вот и все...
Mr DEN - THE WAY YOU KNOW / Мр. ДЕН - Ваш Путь к Познанию!

zyx
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 22.10.2004 (Пт) 15:48

Сообщение zyx » 05.11.2004 (Пт) 14:17

Ребята, вы просто прелесть!!!

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 05.11.2004 (Пт) 17:25

Эт мы болеем, а вообще - мы белые и пушистые! :D

Nigga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 20.01.2006 (Пт) 17:11

Сообщение Nigga » 20.01.2006 (Пт) 18:11

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

Sub примечание()
'
' примечание Макрос
' Макрос записан 20.01.2006 (mike)
'

'
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Range("AG19").AddComment
Range("AG19").Comment.Visible = False
Range("AG19").Comment.Text Text:="mike:" & Chr(10) & ""
End Sub
при этом выделяется токо ячейка AG19 вот что вместо нее прописать нужно... насколько я понимаю в этом дело.. в этой переменной..
заранее спасибо)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.01.2006 (Пт) 18:17

Гы гы.
Плюшка за злостную некрофилию годичной выдержки.


По проблеме.
Иногда (собственно, всегда) полезно не просто запускать записанный код, а постичь его смысл. В частности, узрев ключевое слово, оператор или имя объекта, доселе неизвестного, поставить в него курсор и нажать F1.
Случись это в приведённом примере, он немедленно был бы переделан на
Код: Выделить всё
With Selection
  .Interior.ColorIndex = 6
  .Interior.Pattern = xlSolid
  .AddComment "mike:" & Chr(10) & ""
  .Comment.Visible = False
End With

Но увы.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nigga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 20.01.2006 (Пт) 17:11

Сообщение Nigga » 20.01.2006 (Пт) 18:27

GSerg писал(а):Гы гы.
Плюшка за злостную некрофилию годичной выдержки.


По проблеме.
Иногда (собственно, всегда) полезно не просто запускать записанный код, а постичь его смысл. В частности, узрев ключевое слово, оператор или имя объекта, доселе неизвестного, поставить в него курсор и нажать F1.
Случись это в приведённом примере, он немедленно был бы переделан на
Код: Выделить всё
With Selection
  .Interior.ColorIndex = 6
  .Interior.Pattern = xlSolid
  .AddComment "mike:" & Chr(10) & ""
  .Comment.Visible = False
End With

Но увы.

Мда... может насчет ф1 так оно и есть, но вот все равно не работает и этот код..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.01.2006 (Пт) 18:34

Патамушта excel не хочет делать коммент на весь range. Если честно, от него не ожидал...
Но если бы F1 было выполнено, до
Код: Выделить всё
With Selection.Interior
  .ColorIndex = 6
  .Pattern = xlSolid
End With
ActiveCell.AddComment "mike:" & Chr$(10)
ActiveCell.Comment.Visible = False

ты бы додумался...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nigga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 20.01.2006 (Пт) 17:11

Сообщение Nigga » 20.01.2006 (Пт) 19:00

GSerg писал(а):Патамушта excel не хочет делать коммент на весь range. Если честно, от него не ожидал...
Но если бы F1 было выполнено, до
Код: Выделить всё
With Selection.Interior
  .ColorIndex = 6
  .Pattern = xlSolid
End With
ActiveCell.AddComment "mike:" & Chr$(10)
ActiveCell.Comment.Visible = False

ты бы додумался...

О дааа))) Пасибки...
зы. Да, на весь range комент не делает :( Ну да ладно... :)
Пасибище бальшое:)
Буду сюда заглядывать))

Nigga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 20.01.2006 (Пт) 17:11

Сообщение Nigga » 23.01.2006 (Пн) 12:08

Еще такой вопрос... как прописать чтоб текст комента был равен ячейке.. ну например A1? то есть чтоб в ячейке забиваешь текст, и этот текст при выполнении макроса (предыдущего) прописывался в коментарии? Че то тоже не срастается у меня никак сделать так... :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.01.2006 (Пн) 12:13

ActiveCell.AddComment cells(1,1).value
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nigga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 20.01.2006 (Пт) 17:11

Сообщение Nigga » 23.01.2006 (Пн) 14:35

GSerg писал(а):ActiveCell.AddComment cells(1,1).value

То есть это должно выглядеть так:
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
ActiveCell.AddComment "mike:" & Chr$(10)
ActiveCell.Comment.Visible = False
ActiveCell.AddComment cells(1,1).value

Или не так? Просто я че то вкурить не могу никак.... :)

Nigga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 20.01.2006 (Пт) 17:11

Сообщение Nigga » 23.01.2006 (Пн) 14:46

Может я короче че нить не так объясняю просто:) вот скрин и описание чего я хочу добится)
Чтоб при нажатии на "кнопка16" данные из обведенных ячеек справа заносились в коммент..:)
Вложения
screen.JPG
screen.JPG (169.79 Кб) Просмотров: 407

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.01.2006 (Пн) 14:54

Ужос...

Во-первых, такие скрины сохраняются в gif и весят после этого 10 кб.
Во-вторых, если хочешь чё-то "вкурить", то кури маны.
И в-третьих, ты что, прямо таблицу хочешь в комменте увидеть? Фиг тебе...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nigga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 20.01.2006 (Пт) 17:11

Сообщение Nigga » 23.01.2006 (Пн) 15:07

GSerg писал(а):Ужос...

Во-первых, такие скрины сохраняются в gif и весят после этого 10 кб.
Во-вторых, если хочешь чё-то "вкурить", то кури маны.
И в-третьих, ты что, прямо таблицу хочешь в комменте увидеть? Фиг тебе...

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

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.01.2006 (Пн) 15:16

Nigga писал(а):Во первых формат гифа и жпега не отличаются по компресси практически ни сколько

Вот тебе полноэкранный скрин экселя в gif.

Nigga писал(а):но просто я хотел сделать по быстрее и застрял на такой теме..

Пока не начнёшь баловаться манами, будешь застревать.

Nigga писал(а):В третьих мне не нужна таблица в коменте, а просто текст из ячейки.. чтоб комент просто отбражал содержимое а не таблицу

Хинт.
ActiveCell.AddComment "mike:" & Chr$(10) & cells(1,1).value & cells(1,2).value & cells(1,3).value
Вложения
Untitled-1.gif
(31.43 Кб) Скачиваний: 25
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nigga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 20.01.2006 (Пт) 17:11

Сообщение Nigga » 23.01.2006 (Пн) 15:22

GSerg писал(а):
Nigga писал(а):Во первых формат гифа и жпега не отличаются по компресси практически ни сколько

Вот тебе полноэкранный скрин экселя в gif.

Nigga писал(а):но просто я хотел сделать по быстрее и застрял на такой теме..

Пока не начнёшь баловаться манами, будешь застревать.

Nigga писал(а):В третьих мне не нужна таблица в коменте, а просто текст из ячейки.. чтоб комент просто отбражал содержимое а не таблицу

Хинт.
ActiveCell.AddComment "mike:" & Chr$(10) & cells(1,1).value & cells(1,2).value & cells(1,3).value

Пасибки за хинт:)
зы. насчет скринов:) У нас я так думаю просто разрешения на экранах разное => разрешение скринов разное аналогично;)
Если что в следущий раз просто разрешение сделаю помнее)) а форматы тут ни при чем абсолютна:)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.01.2006 (Пн) 17:08

Юноша... Разница между форматом сжатия полноцветной графики с потерями и форматом сжатия рисунка с фиксированной палитрой без потерь очень большая...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 183

    TopList