Rejpal napsal/a:
Pro off. 2003 jsou jen 3 podmínky.
Keby to bol súbor pre ofice 2007 nie je problém, ale s týmto súborom sa pracuje v office 2003.
Prkotina, ale neviem to zadefinovať.
VYRIEŠENÉ - upraveným makrom od Marjankaja z www.porada.sk
https://www.porada.sk/t184286-podmienene-formatovanie-bunky-zafarbenie-pri-splneni-podmienok.html
VYRIEŠENÉ
Pridala som makro na zobrazenie aktuálneho času do stĺpca J a využila som farebnú škálu podmieneného formátu - najvyššia a najnižšia hodnota.
Našla som toto makro na zvýraznenie aktívnej bunky.
Ale potrebovala by som, aby mi farene zvýraznilo aspoň 5 posledných záznamov v stĺpci E. Možno sa to dá aj funkciu a podmieneným formátom, ale neviem ako.
Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
'Update 20140923
Static xLastRng As Range
On Error Resume Next
Target.Interior.ColorIndex = 6
xLastRng.Interior.ColorIndex = xlColorIndexNone
Set xLastRng = Target
End Sub
Tak už som vyriešila aj druhý problém so zachovaním vzorcov a odkazov. Len by som trochu potrebovala učesať makro, ktoré som si nahrala, aby nebolo také dlhé.
Mohla by som vybrať oblasť (Array), ale oddelenie OK má oblasť 29 a Očné iba 25, tak neviem ošetriť výnimku.
FaP som trochu skrátila, neviem či sa dá ešte viac.
Sheets("KUCH").Select
Range("E3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$4"")"
Range("E3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("E3:E28"), Type:=xlFillDefault
Range("E3:E28").Select
Sheets("OK").Select
Range("E3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$5"")"
Range("E3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("E3:E29"), Type:=xlFillDefault
Range("E3:E29").Select
Sheets("NK").Select
Range("E3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$6"")"
Range("E3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("E3:E28"), Type:=xlFillDefault
Range("E3:E28").Select
Sheets("UK").Select
Range("E3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$7"")"
Range("E3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("E3:E28"), Type:=xlFillDefault
Range("E3:E28").Select
Sheets("ORL").Select
Range("E3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$8"")"
Range("E3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("E3:E28"), Type:=xlFillDefault
Range("E3:E28").Select
Sheets("OMFCH").Select
Range("E3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$9"")"
Range("E3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("E3:E28"), Type:=xlFillDefault
Range("E3:E28").Select
Sheets("KPCH").Select
Range("E3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$10"")"
Range("E3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("E3:E28"), Type:=xlFillDefault
Range("E3:E28").Select
Sheets("Očné").Select
Range("E3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$11"")"
Range("E3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("E3:E25"), Type:=xlFillDefault
Range("E3:E25").Select
Sheets("FaP").Select
Range("B2").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$4"")"
Range("B3").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$5"")"
Range("B4").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$6"")"
Range("B5").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$7"")"
Range("B6").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$8"")"
Range("B7").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$9"")"
Range("B8").Select
ActiveCell.FormulaR1C1 = "=INDIRECT(""'zoznam pacientov'!$D$10"")"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
JoKe napsal/a:
xlOpenXMLWorkbookMacroEnabled - ukládá jako xlsm
Mám súbor s makrom, ktoré bolo tvorené pre excel 2003, teraz sa používa v exceli 2007.
Zmenila som všade v makre príponu súboru na xlsm.
Makro funguje, prebehne, súbory uloží s touto príponou, ale po opätovnom vytvorení vyhodí chybu.
Ako keby makro ukladalo naďalej v starom formáte excelu 2003.
A ešte by som potrebovala zachovať vzorce:
v zozname pacientov v stĺpci H
IF(LEN(C14<3;"";CHOOSE(TRUNC(MID(C14;3;1)/5)+1;"M";"Ž"))
v oddeleniach v stĺpci E v o blasti E3:E28
(prenos údajov zo zoznamu pacientov)
DOPLNENIE - prvý problém vyriešený, ďakujem
Darbujan napsal/a:
A problém?
(a zapomeňte na TintAndShade a další zhovadilosti ze Záznamníku maker) GB.
Potrebujem zmeniť kód farby v makre.
Makro bolo používané v exceli 2003, ale teraz prechodom na excel 2007 sa zmenila farba paleta štandardných farieb.
Const SLUZBA = "služba": Const COLOR_SLUZBA = 16711680
Const PRISLUZBA = "príslužba"
Const DODATOK = "dodatok": Const COLOR_DODATOK = 32768
Const PREKLAD = "preklad": Const COLOR_PREKLAD = 12632256
Const NEOP = "neop.": Const COLOR_NEOP = 255
https://www.youtube.com/watch?v=8RnOrEbOyR4
Tak som to celé zjednodušila.
Podľa tohto linku som si natvrdo vytvorila šablónu.
Do outlooku som hodila makro na vyvolanie šablóny.
A vytiahla tlačidlo.
Účel splnený. Považujem za vyriešené.
Sub mail()
Set msg = Application.CreateItemFromTemplate("C:\Users\meno\AppData\Roaming\Microsoft\Templates\template.oft")
msg.Display
End Sub
Použila som poslednú verziu.
Pri premenovaní súborov z xls na xlsx nebol problém.
Ale pri premenovaní z doc na docx mi word vykázal chybu. Nechcel otvoriť dokument.
Keď som ich znovu premenovala na doc, bolo ich možné otvoriť.
Dnes som si pozrela toto video.
Tento krok som už spravila pred jeho videním. Na makro-projekt to nemalo vplyv.
https://www.youtube.com/watch?v=GitPWH0RybQ
Už som zmenila aj šablóna NormalEmail, políčko nepridávať medzery za rovnakým štýlom je tam zaškrtnuté. Nová správa je už bez medzier, ale v projekte sa to neprejaví.
Na nepridávanie medzier som našla dva linky
https://stackoverflow.com/questions/23418243/how-can-i-programmatically-change-dont-add-space-between-paragraphs-of-the-sam
https://stackoverflow.com/questions/15522349/remove-space-before-and-after-in-outlook
Toto je funkčné, len neviem ako to pridať do makra.
Sub FixParagraphSpacing()
Dim objOL As Application
Dim objDoc As Object
Dim objSel As Object
Set objOL = Application
Set objDoc = objOL.ActiveInspector.WordEditor
Set objSel = objDoc.Windows(1).Selection
objSel.ParagraphFormat.SpaceBefore = 0
objSel.ParagraphFormat.SpaceBeforeAuto = False
objSel.ParagraphFormat.SpaceAfter = 0
objSel.ParagraphFormat.SpaceAfterAuto = False
Set objOL = Nothing
Set objDoc = Nothing
Set objSel = Nothing
End Sub
elninoslov napsal/a:
Heh, samozrejme :)
Ja nemám žiaden taký súbor v danom umiestnení, tak som si vyremoval apostrofom riadok, kde sa načíta obsah toho súboru. Odstránte si apostrof na začiatku riadku
'Signature = CreateObject(...
Vyššie som to už urobil.
elninoslov napsal/a:
Mne to robí takto OK:
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.