Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem když v excelu přibyde řádek, lze ho automaticky vytisknout?

Potřeboval bych zautomatizovat jednu věc:

mám váhu s výstupem na sériový port, když se na ní zmáčkne tlačítko, váha odešle hodnotu do řádku v excelu a skočí na další řádek, kde čeká kursor až dostane další hodnotu, to obstarává program, který zachytává sériový port, a posílá do excelu.

A já bych potřeboval, aby poté co v excelu skočí kurzor na další řádku, aby se ta předchozí řádka vytiskla.
A každá další přibylá řádka.

Lze to nějak zařídit přímo v excelu, nebo jakým způsobem by se to dalo?

Předmět Autor Datum
Vytvoř si makro, které navážeš na událost Worksheet_Change. Více o událostech v Excelu najdeš zde ne… nový
MachR55 06.05.2015 13:18
MachR55
Ach díky. Nevěděl bys to trochu rozvést, třeba příklad toho makra, nejsem v excelu zrovna kovaný. Ne… nový
lk 06.05.2015 13:29
lk
Ano, máš pravdu, bude třeba rozpoznat, zda už je řádek kompletně vyplněný a kurzor přeskočil na dalš… poslední
MachR55 06.05.2015 14:51
MachR55
Prográmek je tento, umí vzít sériový port, dodat k němu případně další znaky a poslat všechno do buf… nový
lk 06.05.2015 13:20
lk

Ano, máš pravdu, bude třeba rozpoznat, zda už je řádek kompletně vyplněný a kurzor přeskočil na další volný řádek.
Napadá mě třeba do nějakého volného sloupce zavést příznak vytištění (např. makro bude zapisovat po vytištění do tohoto sloupce "x") a budu testovat, zda předchozí řádek od aktivní buňky tento příznak nemá. Pokud ne, tak ho vytisknu a zapíšu "x".
Předpokládejme, že se automaticky plní první tři sloupce (A až C) a pro příznak si vyhradíme pátý sloupec (E). Pak by to mohlo vypadat takto:

PredRadek = Selection.Row - 1
If IsEmpty(Cells(PredRadek, 5).Value) Then
  ' Ještě by šlo pro jistotu doplnit případně testem na neprázdnost všech tří buněk
  ' Tisk prvních tří buněk z předchozího řádku
  Print Cells(PredRadek, 1).Value, Cells(PredRadek, 2).Value, Cells(PredRadek, 3).Value
  ' Nastavení příznaku vytištění
  Cells(PredRadek, 5).Value = "x"
End If

Protože v Excelu jde téměř vše udělat mnoha různými cestami, toto je jen jedna z možností, která mě momentálně napadla. Třeba přijde ještě někdo jiný s lepším řešením

Zpět do poradny Odpovědět na původní otázku Nahoru