Alcatraz
|
 |
« : 12 Апрель 2007, 15:29:34 » |
|
Вообщем в Экселе есть таблица чисел, среди таблицы есть 2 столбца вида: 12 10 15 11 25 30
Надо выделить оба числа красным цветом, если будет введено 2-е число > первого. Как это можно сделать ?
|
|
|
Записан
|
|
|
|
-DiMoN-
|
имхо тему нада было в "программирование" засунуть 8-)
|
|
|
Записан
|
|
|
|
svin0
|
Если я правильно понял вопрос, то можно Формат>Условное форматирование и дальше понятно...
|
|
|
Записан
|
|
|
|
siarzhuk
|
Справку по VBA почитай. там будет простой макрос типа if a > b than Selection.cell бла-бла-бла... Дальше не помню :-)
|
|
|
Записан
|
Детям нельзя в интернет. От детей интернет тупеет. В Интернете нет места правде. Howard Wolowitz
|
|
|
Alcatraz
|
Если я правильно понял вопрос, то можно Формат>Условное форматирование и дальше понятно... Это не проходит, так как сравнение Эксель делает всегда с одной и той же ячейкой. Даже если форматирование скопировать на весь первый столбец, всё равно каждое из чисел первого стобца сравнивается с первым числом 2-го столбца, а это не есть правильно. А делать форматирование так в каждой ячейке нереально, т.к. таблица огромная.
|
|
|
Записан
|
|
|
|
Alcatraz
|
Справку по VBA почитай. там будет простой макрос типа if a > b than Selection.cell бла-бла-бла... Дальше не помню :-) исходим из того, что: 1) справка по VBA на английском, а там и на русском без бутылочки не разберёсси; 2) макросы изучать нет времени, т.к. надо сделать всё быстро; 3) желательно вообще обойтись не макросами, а какими-нибудь формулами, а то юзеры у нас караул - ещё разобидятся, когда Эксель им будет плакаться на потенциальные вири в макросах.
|
|
|
Записан
|
|
|
|
DIV
|
IMHO можно через макрос (по другому никак), повесив процедурку на событие Worksheet_Change и проанализировать по относитльной ссылке содержимое ячейки слева
|
|
« Последнее редактирование: 13 Апрель 2007, 10:48:27 от Q115 »
|
Записан
|
|
|
|
Alcatraz
|
IMHO можно через макрос (по другому никак), повесив процедурку на событие Worksheet_Change и проанализировать по относитльной ссылке содержимое ячейки слева вот с этого места поподробнее если можно :-?
|
|
|
Записан
|
|
|
|
DIV
|
Вот кусок справки из 2007 VBA for Excel Worksheet.Change Event Occurs when cells on the worksheet are changed by the user or by an external link. Syntax expression.Change(Target) expression A variable that represents a Worksheet object. Parameters Name Required/Optional Data Type Description Target Required Range The changed range. Can be more than one cell. Return Value Nothing Remarks This event doesn't occur when cells change during a recalculation. Use the Calculate event to trap a sheet recalculation. Example This example changes the color of changed cells to blue. Visual Basic for Applications Private Sub Worksheet_Change(ByVal Target as Range) Target.Font.ColorIndex = 5 End Sub Сейчас спешу, завтра, если будет свободное время, напишу макрос. Но ты всеравно сам попробуй разобраться 
|
|
|
Записан
|
|
|
|
DIV
|
вот те макрос, вставляется в код листа, анализирует 4 и 5 столбцы
Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 4) Or (Target.Column = 5) Then If Cells(Target.Row, 4).Value > Cells(Target.Row, 5).Value Then Cells(Target.Row, 4).Font.ColorIndex = 1 Cells(Target.Row, 5).Font.ColorIndex = 1 Else Cells(Target.Row, 4).Font.ColorIndex = 3 Cells(Target.Row, 5).Font.ColorIndex = 3 End If End If End Sub
|
|
|
Записан
|
|
|
|
Alcatraz
|
вот те макрос, вставляется в код листа, анализирует 4 и 5 столбцы
Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 4) Or (Target.Column = 5) Then If Cells(Target.Row, 4).Value > Cells(Target.Row, 5).Value Then Cells(Target.Row, 4).Font.ColorIndex = 1 Cells(Target.Row, 5).Font.ColorIndex = 1 Else Cells(Target.Row, 4).Font.ColorIndex = 3 Cells(Target.Row, 5).Font.ColorIndex = 3 End If End If End Sub при попытке исполнения пишет "Argument not optional" :-/ Его вообще как правильно положено в документ записывать ?
|
|
|
Записан
|
|
|
|
siarzhuk
|
работает Альт + F11, щелкаешь два раза по листу в котором надо исполнять макрос Копировать-вставить макрос, который DIV написал - и все. Работает как часы
|
|
|
Записан
|
Детям нельзя в интернет. От детей интернет тупеет. В Интернете нет места правде. Howard Wolowitz
|
|
|
Alcatraz
|
вот те макрос, вставляется в код листа, анализирует 4 и 5 столбцы
Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 4) Or (Target.Column = 5) Then If Cells(Target.Row, 4).Value > Cells(Target.Row, 5).Value Then Cells(Target.Row, 4).Font.ColorIndex = 1 Cells(Target.Row, 5).Font.ColorIndex = 1 Else Cells(Target.Row, 4).Font.ColorIndex = 3 Cells(Target.Row, 5).Font.ColorIndex = 3 End If End If End Sub ещё маленькое уточнение: красный текст не очень заметен, как-то можно выделить не только шрифт, а залить ячейку красным цветом ?
|
|
|
Записан
|
|
|
|
DIV
|
вот те макрос, вставляется в код листа, анализирует 4 и 5 столбцы
Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 4) Or (Target.Column = 5) Then If Cells(Target.Row, 4).Value > Cells(Target.Row, 5).Value Then Cells(Target.Row, 4).Font.ColorIndex = 1 Cells(Target.Row, 5).Font.ColorIndex = 1 Else Cells(Target.Row, 4).Font.ColorIndex = 3 Cells(Target.Row, 5).Font.ColorIndex = 3 End If End If End Sub ещё маленькое уточнение: красный текст не очень заметен, как-то можно выделить не только шрифт, а залить ячейку красным цветом ? AL CAPONE имей совесть, доработать этот макрос даже школьник сможет
|
|
|
Записан
|
|
|
|
Alcatraz
|
вот те макрос, вставляется в код листа, анализирует 4 и 5 столбцы
Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 4) Or (Target.Column = 5) Then If Cells(Target.Row, 4).Value > Cells(Target.Row, 5).Value Then Cells(Target.Row, 4).Font.ColorIndex = 1 Cells(Target.Row, 5).Font.ColorIndex = 1 Else Cells(Target.Row, 4).Font.ColorIndex = 3 Cells(Target.Row, 5).Font.ColorIndex = 3 End If End If End Sub ещё маленькое уточнение: красный текст не очень заметен, как-то можно выделить не только шрифт, а залить ячейку красным цветом ? AL CAPONE имей совесть, доработать этот макрос даже школьник сможет школьник, знакомый с Visual Basic ты имел ввиду 
|
|
|
Записан
|
|
|
|
Alcatraz
|
Всё, доделал сам как надо, пришлось покапаться в хелпе. Всем помогавшим спасибо и по +1. TOPIC CLOSE.
|
|
|
Записан
|
|
|
|
slutkey
|
Вообщем в Экселе есть таблица чисел, среди таблицы есть 2 столбца вида: 12 10 15 11 25 30
Надо выделить оба числа красным цветом, если будет введено 2-е число > первого. Как это можно сделать ? Для начала вводишь формулу как тебе и говорили if 12 > 10 then....... Выделяешь "Например тут ввёл формулу связанную с 12 и 10" А потом цянишь за квадратик в правом нижнем углу ячейки 12 10 Например тут ввёл формулу связанную с 12 и 10 15 11 25 30
|
|
|
Записан
|
|
|
|
Alcatraz
|
хм, в Ёкселе ХР всё работает, а как заставить макрос работать в Ёкселе 97 (у нас на большинстве машин). В 97-м он благим матом орёт, что не знает слова Sub. :-/
|
|
|
Записан
|
|
|
|
slutkey
|
Попробуй как я говорил
|
|
|
Записан
|
|
|
|
Alcatraz
|
Попробуй как я говорил читай малость выше, такое уже предлагалось, вот что я ответил раньше: [highlight]Это не проходит, так как сравнение Эксель делает всегда с одной и той же ячейкой. Даже если форматирование скопировать на весь первый столбец, всё равно каждое из чисел первого стобца сравнивается с первым числом 2-го столбца, а это не есть правильно. А делать форматирование так в каждой ячейке нереально, т.к. таблица огромная.[/highlight]
|
|
|
Записан
|
|
|
|
slutkey
|
Попробуй как я говорил читай малость выше, такое уже предлагалось, вот что я ответил раньше: [highlight]Это не проходит, так как сравнение Эксель делает всегда с одной и той же ячейкой. Даже если форматирование скопировать на весь первый столбец, всё равно каждое из чисел первого стобца сравнивается с первым числом 2-го столбца, а это не есть правильно. А делать форматирование так в каждой ячейке нереально, т.к. таблица огромная.[/highlight] Что бы комп делал как ты говоришь надо использовать фиксацию знаком "$" иначе он будет когда тянешь за чёрный квадрат ассоциировать с соседними ячейками
|
|
|
Записан
|
|
|
|
Alcatraz
|
Попробуй как я говорил читай малость выше, такое уже предлагалось, вот что я ответил раньше: [highlight]Это не проходит, так как сравнение Эксель делает всегда с одной и той же ячейкой. Даже если форматирование скопировать на весь первый столбец, всё равно каждое из чисел первого стобца сравнивается с первым числом 2-го столбца, а это не есть правильно. А делать форматирование так в каждой ячейке нереально, т.к. таблица огромная.[/highlight] Что бы комп делал как ты говоришь надо использовать фиксацию знаком "$" иначе он будет когда тянешь за чёрный квадрат ассоциировать с соседними ячейками не понял, что за фиксация ? куда в формулу надо дописывать $ ?
|
|
|
Записан
|
|
|
|
slutkey
|
Попробуй как я говорил читай малость выше, такое уже предлагалось, вот что я ответил раньше: [highlight]Это не проходит, так как сравнение Эксель делает всегда с одной и той же ячейкой. Даже если форматирование скопировать на весь первый столбец, всё равно каждое из чисел первого стобца сравнивается с первым числом 2-го столбца, а это не есть правильно. А делать форматирование так в каждой ячейке нереально, т.к. таблица огромная.[/highlight] Что бы комп делал как ты говоришь надо использовать фиксацию знаком "$" иначе он будет когда тянешь за чёрный квадрат ассоциировать с соседними ячейками не понял, что за фиксация ? куда в формулу надо дописывать $ ? Если ты хочешь зафиксировать ячейку то надо писать $A$3
|
|
« Последнее редактирование: 23 Апрель 2007, 12:08:22 от PRODIGY »
|
Записан
|
|
|
|
Alcatraz
|
Хорошо, если делать, как ты говорил - if 12 > 10 then ..., тогда что писать дальше, как выделить ячейки [highlight]формулой[/highlight]  По-моему тут по-любому только макросом можно обойтись.
|
|
|
Записан
|
|
|
|
slutkey
|
Сам много раз такое делал, всегда вводил формулу из которой было ясно "если A1 > B1 то А1 обвести красным". Эту формулу вводил в C1, выделял ячейку C1, брал за чёрный квадратик в правом нижнем углу и тенул вниз по столбцу "С" столько сколько надо. Комп сам оссотиировал например С3 с двумя соседними слева B3 и A3 и так далее. Не знаю почему у тя не получается :-? :-? :-? :-? :-? :-? :-? :-? :-?
|
|
|
Записан
|
|
|
|
Alcatraz
|
Сам много раз такое делал, всегда вводил формулу из которой было ясно "если A1 > B1 то А1 обвести красным". Эту формулу вводил в C1, выделял ячейку C1, брал за чёрный квадратик в правом нижнем углу и тенул вниз по столбцу "С" столько сколько надо. Комп сам оссотиировал например С3 с двумя соседними слева B3 и A3 и так далее. Не знаю почему у тя не получается :-? :-? :-? :-? :-? :-? :-? :-? :-? в том и прикол, что формулой никак не сделаешь пункт "А1 обвести красным" :-/
|
|
|
Записан
|
|
|
|
MB
|
у меня тоже вопрос по экселю. как сделать чтобы число записанное в какой-либо ячейке автоматом писалось словами напр в А1: 1105 в В1: тысяча сто пять
|
|
|
Записан
|
|
|
|
DIV
|
Пиши макрос 
|
|
|
Записан
|
|
|
|
siarzhuk
|
Есть готовые. Поищи в нете NumberToString
|
|
|
Записан
|
Детям нельзя в интернет. От детей интернет тупеет. В Интернете нет места правде. Howard Wolowitz
|
|
|
|