Как да накараме ексел да маркира последна празна клетка според съседна клетка с информация?

Microsoft Excel Електронни таблици Microsoft 365 Excel VBA Програмиране VBA за Excel

Как да накараме ексел да маркира последната празна клетка, като се съобразява с последната клетка със стойност в съседната колона. Примерно А има информация до А10 и искаме в Б да се маркират всички клетки и от Б1 до Б10. Благодаря предварително

Здравей, може да го направиш посредством Conditional formatting.

На снимка 1 позиция 1 и 2 е примера, който ти споменаваш във въпроса си.

Снимка1

Идеята е щом в клекта А1 (A2,3,....10) има информация, то в B1 (B2,3,....10) може да няма нищо записано, НО тя да се оцветя. Съответно добавайки, неще в следващата клетка A11 (снимка 2 позиция 1), това автоматично да се отрази на клетка B11 и тя да се оцвети (снимка 2 позциия 2)

Снимка_2

Ето в няколко стъпки как може да бъде постигнато това.

Селектирам цялата колона B, кликвам горе на B (снимка 3 позциия 1), отивам на в раздела Home (снимка 3 позиция 2) и кликвам на Conditional Formatting (снимка 3 позиция 3) и от падащото меню избирам New Rule (снимка 4 позиция 1).

Снимка_3

Отваря се прозорец New Formatting Rule (снимка 4 позиция 1), селектираме раздела Use a formula to determine which cells to format (снимка 4 позиция 2), в полето записваме следната формула =$А1>0 с тази формула задаваме условието за форматиране на колона B, a именно ако в An клетката има стойност, ТО ми форматирай клетката В с някакъв цвят.След това кликваме на бутона Format (снимка 4 позиция 3) за да изберем цвета в който ще се оцветяват клетките, отваряни се прозореца Формат Cells (снимка 4 позиция 4), след което отивам в раздела Fill (снимка 4 позиция 5) и избираме цвета в който да се оцвети (снимка 4 позиция 6) клетката, избираме ОК (снимка 4 позиция 7) за да запазим промените по форматирането и ОК (снимка 4 позиция 8) за да запазим промените по създаденото условие.

Снимка_4

Резултатът е на снимка 5.

Снимка_5

Надявам се да съм бил полезен с отговора.

Благодаря много за изчерпателния отговор, имам още един въпрос, как да задам една формула да се копира до последна празна клетка в Б например, ако А има стойност до А50 например. Това се опитвам да направя с един макрос, но съм задала стойност до 10 000 и все трябва да трия излишните формули. Надявам се, че е ясно, какво точно питам :) и отново сърдечно благодаря за бързата реакция! Поздрави, Валентина

Здравей,

Ако данните ти са форматирани като Table (Ctr+T), следва при въвеждане на всеки следващ ред в клетка A, да се попълва и форулата записана в клетка B.

На снимка 1 позиция 1 съм направил таблица въвел съм стойност в клетка A7 (снимка 1 позиция 2), в клетка B имам формула (снимка 1 позиция 3), тя веднага се е записала, в клетки C7, D7 (снимка 1 позиция 4) имам стойнсоти който трябва да въведа ръчно.

Снимка_1

А по отношение на VBA -а, не знам докъде си минала през курса, но смятам че ако преминеш през целия това което ти показах по-горе с таблицата мисля че ще можеш да го напишеш и във VBA код.

Малкият триъгълник в долния десен ъгъл на таблицата ни позволява да добавяме(или премахваме) редове или колони, според необходимото. Важно е да отметнем прозорчето на функцията Total Row (позиция 2 на втората картина). Под таблицата ще се появи нов ред Total Row, а при клик в клетка Prod1 ще се покаже падащо меню с опции, от които можем да изберем това, което ни е ноебходимо. Накрая правим сумиране(най-вероятно) на данните И финалният резултат Дано е станало ясно! Лек ден и успехи!

Благодаря много и на двамата, само че при мен таблица не е форматирана и не е удачно да я форматирам. За VBA курса съм още в началото,т.е. до трети модул. Аз съм написала макро, в таблицата, с която работя да направи формула например сбор от две числа в С, а в А и Б имаме 1 и респективно 2, в С ще се изпише 3 като сбор от формулата, но надолу е празна колоната и всеки път числата в А и Б са различни на брой, т.е. таблицата не е статична. Та не ми е ясно как мога да накарам формулата да се разпространи до последната активна клетка спрямо А и Б. Защото в С няма никакви стойностти. Благодаря за отделеното време, за да ми отговорите! Поздрави, Валентина

Г-жо Слабакова, може ли да изпратите снимка да се види за какво точно става въпрос? Лек ден!

Може да се ползва и формулата =$D1<>"" на мястото, което е посочил г-н Кръстев в Conditional Formating. Резултат: Ако напишем нещо в празните клетки, те ще се запълнят автоматично с избраният от нас цвят при форматирането. Лек ден и успехи!

Извинения, примерът , който съм дал на втората картина, не е коректен, но формулата е вярна и може да се приложи. Дано е станало ясно! Лек ден, успехи и още веднъж - ИЗВИНЕНИЯ!

Здравейте и много благодаря за отделеното време и енергия за отговор, ето един пример какво точно имам предвид.

Вие и двамата сте отговорили прекрасно на първоначалния ми въпрос, но аз не съм го задала правилно. Записах кратко видео какво точно имам предвид и линка е: https://aula.bg/u/Mjc4ODlxMzY3MA Линка го преписах, защото не успях да го поставя, та да обясня при вече записан макрос, който взима сбор от клетка А и Б в Ц и трябва формулата да се копира до долу, но все ден броя на стойност в клетки А и Б е различен. При мен макроса изпълнява формулата и после ръчно кликам в долния десен ъгъл на клетката, за да се разпространи до последната клетка спрямо А и Б(нали в Ц е сбор). Надявам се, че този път съм обяснила по-коректно и отново сърдечно благодаря за времето и усилията Ви! Поздрави, Валентина

Г-жо Слабакова, както разбирам, данните се променят всеки ден. Тогава да форматираме цялата колона С в този случай. Вижда се, че сме маркирали клетка С2, натискаме комбинацията Ctrl+ Shift+ стрелка надолу и цялата колона С е маркирана. Връщаме се в началото чрез плъзгача отстрани и пишем в клетка С2 показаната формула. Издърпваме надолу за да получим резултата. Когато добавим следващите стойности след края на таблицата, сборът ще се получи в колона С след като сме натиснали стрелка надясно. Стрелка 4 показва новите стойности - за улеснение, те са с друг размер и цвят. Дано е станало ясно. Лек ден и успехи!

За протокола - числото 1 048 576 или 2 на степен 20, т.е. 2^20, показва броят на редовете в един лист(sheet). Броят на колоните е 16 384 или 2 на степен 14, т.е. 2^14. Броят на листата в една книга(book) е 256, т.е. 2 на степен 8 или 2^8 или броят на всички налични клетки в една книга е 2 на степен 42, т.е. 2^42 или 4 398 046 511 104. Това е Еxcel! Лек ден и успехи!

Здравейте,

Този код събира клетките от колона А и колона В в колона С до последния ред с данни в колона А. Поставя формулата от ред 2, приемайки че ред 1 е заглавен. Работи с активния лист. Разбира се, можете да го пригодите за лист с конкретно име.

Option Explicit
Sub AddFormulaToLastRow()

Dim LastRow As Long
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row 'Намира номерът на последния ред с данни в колона А

ActiveSheet.Range("C2:C" & LastRow).FormulaR1C1 = "=RC[-2]+RC[-1]"

End Sub

Надявам се, че съм помогнала. Успех с макроса!

Благодаря г-жо Данаилова, имам още един въпрос, ако желая да заместя формулата в макроса от формула със сбор с формула за конкатенация, би трябвало само да променя знака + на &, правилно ли разсъждавам? Отново благодаря за отделеното време и помощта!

Благодаря на г-н Петров и на инж. Кръстев! :)

Да, разсъждавате правилно - ако заместите знака + с & ще комбинирате знаците на клетките от колони А и В. Формулата в например клетка C2 ще бъде =A2&B2.

Благодаря Ви много г-жо Данаилова за отделеното време и помощ! :)


Вашият отговор

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Регистрация