
Uprava makra tak, aby sa pri kopirovani nezmenilo formatovanie cieloveho harku?
Ahojte, potreboval by som upravit nasledovny kod tak, aby ked kopirujem ten jeden treti riadok zo zdrojoveho harku (Sheet1) do cieloveho harku (Sheet5), tak formatovanie cieloveho harku bude zachovane. Myslene tak, ze napr. ked mam farbu pisma v nejakych bunkach cervenu, tak cervena ostane atd. Skusam sa s tym hrat, ale zatial sa mi moc nedari, potreboval by som vyriesit nasledovne. Kod je od pouzivatela Robert13, ktoremu vopred dakujem...
1. Zachovat formatovanie cieloveho harku. Ako vyriesit to, ze ked cez dany riadok, ktory kopirujem z harka 1 mam vlozeny nejaky objekt, napr. cierny obdlznik, tak mi jeho cast neprenesnie do cieloveho harku. Teraz mi to kopiruje komplet vsetko zo zdroja (komplet cele formatovanie + objekt, ktory prekryva dany treti riadok).
2. Suvisi s bodom 1. Ked v niektorej bunke nemam hodnotu v zdrojovom riadku, tak do cieloveho harku automaticky vklada nuly. Potrebujem, aby tie bunky zostali prazdne, neviem preco tam vlozi automaticky nuly, kedze v zdrojovom riadku nuly v prazdnych bunkach nie su.
3. Uz sa netyka daneho kodu, ale mam combo box, v ktorom potrebujem spravit to, ze ked do neho raz kliknem, tak mi automaticky oznaci cely text v nom tak, ze ked zacnem do neho pisat, tak sa cely ten text premaze. Pre ten combo box mam len do jednej bunky nalinkovany zoznam z ineho harku.
4. Este by sa mi hodilo, ze ked dany kod potvrdim, tak automaticky bude ten combo box aktivny a text v nom cely oznaceny.
Dakujem!
Private Sub CommandButton1_Click()
If Sheets(1).Range("A4") = "" Then
PR1 = 3
Else: PR1 = Sheets(1).Range("A3").End(xlDown).Row
End If
If Sheets(5).Range("A4") = "" Then
PR2 = 3
Else: PR2 = Sheets(5).Range("A3").End(xlDown).Row
End IfFor i = 3 To PR1
For j = 3 To PR2
If Sheets(1).Range("A" & i) = Sheets(5).Range("A" & j) And Sheets(1).Range("B" & i) = Sheets(5).Range("B" & j) And Sheets(1).Range("C" & i) = Sheets(5).Range("C" & j) Then
Sheets(5).Range("E" & j) = Sheets(5).Range("E" & j) + Sheets(1).Range("E" & i)
Sheets(5).Range("F" & j) = Sheets(5).Range("F" & j) + Sheets(1).Range("F" & i)
Sheets(5).Range("G" & j) = Sheets(5).Range("G" & j) + Sheets(1).Range("G" & i)
Sheets(5).Range("H" & j) = Sheets(5).Range("H" & j) + Sheets(1).Range("H" & i)
Sheets(5).Range("I" & j) = Sheets(5).Range("I" & j) + Sheets(1).Range("I" & i)
Sheets(5).Range("J" & j) = Sheets(5).Range("J" & j) + Sheets(1).Range("J" & i)
Sheets(5).Range("K" & j) = Sheets(5).Range("K" & j) + Sheets(1).Range("K" & i)
Sheets(5).Range("L" & j) = Sheets(5).Range("L" & j) + Sheets(1).Range("L" & i)
Sheets(5).Range("M" & j) = Sheets(5).Range("M" & j) + Sheets(1).Range("M" & i)GoTo DalsieI
End If
Next j
Sheets(1).Range("A" & i & ":M" & i).Copy (Sheets(5).Range("A" & (PR2 + 1)))
PR2 = PR2 + 1
DalsieI:
Next iSheets(1).Select
CommandButton1.BackColor = RGB(255, 255, 0)
ToggleButton1.Value = False
ToggleButton2.Value = FalseEnd Sub
to vlepovanie:
riadok
Sheets(1).Range("A" & i & ":M" & i).Copy (Sheets(5).Range("A" & (PR2 + 1)))
je potrebné upraviť na:
Sheets(1).Range("A" & i & ":M" & i).Copy
Sheets(5).Range("A" & (PR2 + 1)).select
Selection.PasteSpecial Paste:=xlPasteValues
pridať riadok na návrat do prvého hárku:
Sheets(1).Range("A1").select
a vypnúť zvýraznenie kopírovaného bloku:
Application.CutCopyMode = False
Robo moc dik za info:
1. Skusim
2. Jasne, ja som tam preklikol iny zosit:)
3. Presne tak to mam spravene, len ide mi o to, ze ked mi zbehne tento cely kod po stlaceni nejakeho tlacidla, tak automaticky bude aktivny combo box a to tak, ze text v nom bude cely oznaceny. Momentalne to je tak, ze ked zbehne kod, tak mi v combo boxe ostane ten text, to je ok, ale ked do neho kliknem na nejake miesto, tak mi kurzor blika v mieste kliknutia. Napr. mam v boxe nazov "automobil", tuknem do boxu a kurzor blika medzi "t/o" a ked zacnem zadavat text, tak mi ostanu pismena "aut", comu potrebujem predist. A ja potrebujem, ze ked do neho kliknem, tak hned mi oznaci cely text. Ide o to, ze tato aplikacia bude sluzit pre dotykovy displej bez klavesnice, preto to chcem mat co najviac zjednodusene a ja ked tuknem prstom do toho combo boxu, tak kurzor blika tam kde kliknem a ked zacnem cez tlacidla zadavat do comboboxu text, tak mi tam mozu ostat nejake pismena z predosleho vyberu. Mozno sa toto ani neda nastavit, neviem. Je to dost krkolomne napisane, ale snad je to aspon trosku zrozumitelne:).
rozumiem, ale myslím, že tak to nepôjde. Pokiaľ však máš len jednoslovné hodnoty v Combe, tak celé slovo naraz sa vyberá jednoducho dvojklikom naň. Ak je to ovšem viacslovný výraz, dvojklikom sa ti vyznačí len slovo, na ktoré si dvojklikol. Inak budeš musieť označiť vnútorný text potiahnutím cezeň (najšikovnejšie je to od konca k začiatku)
Aha, kua, zabudol som na jednu vec (pre istotu som si musel overiť, či to funguje aj bez užívateľského formulára)a síce, že pokiaľ máš vo vlastnostiach Comba nastavené SelectionMargin na True (defaultne), slúži to presna na to, čo chceš, t.j. naľavo pred textom v Combe ostáva malá voľná plocha, na ktorú keď klikneš, označí sa ti celý obsah :D
Nemažem čo som písal k dvojklikom na slovo, možno aj taká informácia sa ti niekedy zíde
R
4 pivá :D
Robo dik za info, idem sa s tym celym pohrat...tak tak, zapisuj si tie piva a potom ti nieco poslem:)...ked mozes napis mi na kovino@seznam.cz...