Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

18 Июнь 2018, 12:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3   Вниз
  Печать  
Автор Тема: Суммирование чисел которые находятся в цветной ячейки  (Прочитано 1824 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Bigor
Старожил
****
Offline Offline

Пол: Мужской
Сообщений: 271


« Ответ #30: 7 Февраль 2018, 11:55 »

По скриншоту непонятно в чем дело, могу подозревать, что ты попал в ситуацию
о которой тебя тут все предупреждают, ячейки залиты белым фоном, для глаз разницы нет, а макрос видит что они раскрашены и не трогает их
Записан
Yarik
Новичок
*
Offline Offline

Сообщений: 16


« Ответ #31: 7 Февраль 2018, 12:12 »

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

ХАхаха  точно ,  так и есть
Записан
Yarik
Новичок
*
Offline Offline

Сообщений: 16


« Ответ #32: 13 Февраль 2018, 21:16 »

У тебя на рисунке до -  бирюзовых 6 ячеек, после - уже 7, хотя в описании про это ни слова  Непонимающий

Если это ошибка рисования  Улыбка, то смотри макрос

Код:
Sub razn_color
Dim oSheet As Variant, i As Long
Dim oSelection As Variant, oActiveCell As Variant, oRow As Variant
oSelection = ThisComponent.getCurrentSelection()
oSpreadsheet = oSelection.getSpreadsheet()

 For j =7 To 67 Step 2
    For i =4 To 16
     If oSpreadsheet.getCellByPosition(j+1, i).CellBackColor<>-1 Then
      oSpreadsheet.getCellByPosition(j+1, i).setvalue(oSpreadsheet.getCellByPosition(j, i).getvalue/2)
      oSpreadsheet.getCellByPosition(j, i).setvalue(oSpreadsheet.getCellByPosition(j, i).getvalue/2)
     End if
   Next i
  Next j
End Sub
вот результат его работы

Ты очень помог мне, все работает так как надо. Уже использовал в работе. Еще один маленький нюанс есть. Можно сделать так что я ввожу в первую колонку (Н5: Н17) числа и макрос сделал бы так, чтобы если соседний столбик закрашен то данный столбик делило пополам. А если столбик в котором я записал них нет окрашенной ячейки то оно автоматически все число переводило в соседний столбик)


* Безымянный2.png (17.76 Кб, 488x391 - просмотрено 10 раз.)
Записан
Bigor
Старожил
****
Offline Offline

Пол: Мужской
Сообщений: 271


« Ответ #33: 13 Февраль 2018, 22:25 »

Ну если устраивает работа с цветами, то вот твои хотелки, поменяй условия в макросе
Код:
If oSpreadsheet.getCellByPosition(j+1, i).CellBackColor<>-1 Then
      If oSpreadsheet.getCellByPosition(j, i).CellBackColor=-1 Then
      k=1
      Else
      k=0.5
      End if
      oSpreadsheet.getCellByPosition(j+1, i).setvalue(oSpreadsheet.getCellByPosition(j, i).getvalue*k)
      oSpreadsheet.getCellByPosition(j, i).setvalue(oSpreadsheet.getCellByPosition(j, i).getvalue*(1-k))
     End if

Остался неясным вопрос, если ячейки незакрашены и в столбце H и I.
Записан
Страниц: « 1 2 3   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!