» »

Kako v excelu shraniti kot sliko?

Kako v excelu shraniti kot sliko?

BlackHole ::

Torej zanima me, če je kakorkoli mogoče v excelu npr. list, ki vsebuje neko sliko, okrog pa so neke formule (številke), shraniti kot sliko JPG oz. BMP. Pod SAVE AS... filtra za sliko ni. Zdaj pa ne vem, če še obstaja kaka druga možnost in ali je možno te filtre dodatno namestit. Odpade možnost Printscreen, ker mora rob slike zajeti ravno tisto območje, da je v njej slika in podatki in nič več, rezanje vsake slike posebej pa ne pride v poštev, zaradi večje količine slik

Slavček ::

Ali boš označil blok s sliko ter podatki in ga potem prekokopiral znotraj Excela ali zunaj v drugo aplikacijo?

Mercier ::

Mislim, da je najbolje narediti skrinšot. Da se, mpak so bedni bitmapi. Sicer pa, probaj sam:

Kopiraš izbran obseg celic s sliko, držiš shift in v meniju edit izbereš prilepi sliko. Kopiraš, kar dobiš in še enkrat ponoviš. Tokrat izbereš v meniju edit kopiraj sliko.

Tole je žal najboljši način, ki ga vem.

Zgodovina sprememb…

  • spremenil: Mercier ()

Predator ::

ko sem mel jaz doma trial od paint shopa pro sem imel nastavljen area capture, to je da sem označil ( z miško narišeš kvadrratek ) od kje do kje hočem print screen ( tko sem pač en pdf pretvoril v slike )

BlackHole ::

Evo cel postopek, kako bi naj stvar zgledala. Odprem nov list, v tega vstavim eno sliko, ki bo ves čas tam. Okrog nje pač našibam neke formule, ki bi izračunavale različne vrednosti glede na vhodne vrednosti, ki bi jih potem moral vedno vpisati. Ta dokument bi potem uporabljal praktično kot predlogo in vsakič ko bi vstavil različne vrednosti, bi rabil ta list shranjen kot sliko. In imel bi tudi več teh predlog v katere bi vstavljal vedno nove vrednosti (po potrebi pač). Vedno bi pa rabil sliko te predloge.

ToniT ::

Zadeva je zelo enostavna:
Odpreš excell in photoshop.
V excelu označiš, kaj bi rad skopiral in daš Copy. V Photoshopu daš new image in Paste. Potem pa še samo shraniš sliko.
Še primer tako narejene slike.

Slavček ::

Samo še vedno nisi pojasnil al rabiš sliko znotraj ali zunaj Excela?

BlackHole ::

Aja, to misliš, sliko rabim shranjeno posebej (kot slika1.JPG), torej zunaj Excela, za arhiv. Zgleda, da bo tale postopek ->označi, kopiraj in prilepi v slikarju kar pravi. Če pa ve kdo še boljšega pa na dan z njim.

Slavček ::

Ja to to je najlažja rešitev razen, če boš delal to 8 ur na dan, Potem si lahko napišeš aplikacijo, ki dela to namesto tebe. Ti samo označiš in klikneš npr. gumb, ki naredi ostalo. :D

BlackHole ::

S čim bi ti naredil to aplikacijo? Mogoče bi se pa lahko lotil s pomočjo par nasvetov.

Slavček ::

Enostavno. Kar v Excelu s pomočjo VBA.

BlackHole ::

Sem upal da boš rekel VBA, ker druga nimam, pa tudi včasih sem delal nekaj malega z njim, vendar le znotraj Excela. No zdaj pa lahko pride tisto v zvezi z nasveti. Rabil bi da označi vedno enak del (matrico) celic, ga skopira v odložišče, odpre Slikarja, prilepi sliko in jo shrani kot JPG. Ne vem, se da to storit kar z snemanjem makroja?

Slavček ::

V Excelu odpri en modul in vpiši tole:

Sub ShraniSliko()
Dim AppID As Long
Range("B10:E20").Select 'Območje s podatki
Selection.Copy
AppID = Shell("X:\Pot\MSPAINT.EXE", 1) 'Slikarski program
SendKeys "%{E}{P}%{F}{A}", True
SendKeys "ImeSlike", True 'Shrani pod to ime
SendKeys "%{S}%{F}{X}", True
End Sub


Zatem ta makro pripni na en gumb. To je osnovna logika. Kaj pa kaj pomeni pa si malo prečiti Help :D

BlackHole ::

Kaj pa misliš s tem, modul?:8)

Slavček ::

A nisu reku, da si že neki delo z VBA? Torej:
Ko si v zvezku pritisni Alt+F11 oz. Tools|Macro|Visual Basic Editor.
Nato izberi Insert|Module.
Prekopiraj prejšnjo kodo v ta modul.
Preklopi nazaj na zvezek.
Nato na orodno vrstico pripni en gumg, ki mu dodeliš prejšnji makro.

Če ti ta postopek ni dovolj razumljiv, ti priporočam da raje ostaneš pri metodi brez VBA in najprej prebereš kakšno lažjo knjigo o tem. :))

BlackHole ::

Popolnoma razumljivo mi je. Hvala.

BlackHole ::

Slavček, sem sprobal ta tvoj modul, pa mi ne deluje najboljše. Paintbrush sicer odpre (v ozdaju), označene celice pa hoče shranit v Excelu z XLS končnico in ne v Paintbrusu z JPG. Se ti da popravit?

Slavček ::

Ta program deluje za Angleško različico Win98 in Of2k. Če uporabljaš Slovensko progr. opremo, potem moraš zamenjat črke, ki prožijo menije.
V JPG ti Paintbrush ne bo shranil, ker tega formata ne pozna (vsaj moj ne), lahko pa uporabiš kakšen drugi program. Jaz sm ti sam pokazo logiko, kako rešit problem. :))

BlackHole ::

Paintbrush pozna JPG, črke bom pa poskusil ugotovit. Kako bi pa nastavil, da mi shrani v JPG namesto v BMP?

BlackHole ::

Sem že malo bližje končnemu rezultatu. Takole zgleda sedaj:
Sub ShraniSliko()
Dim AppID As Long
Range("E10:O24").Select 'Območje s podatki
Selection.Copy
AppID = Shell("C:\Program Files\Accessories\MSPAINT.EXE", 1) 'Slikarski program
SendKeys "%{U}{P}{d}", True
SendKeys "%{D}{K}", True
SendKeys "slika2", True
SendKeys "{TAB}{j}{ENTER}", True
SendKeys "%{D}{h}", True
End Sub

Zdaj bi pa bi rad, da bi se ime datoteke nanašalo na določene celice iz excela. Npr. vrednost celice A1-B4xB5xB6.jpg
x-i ne pomenijo množenja, ampak bi rad, da bi se pod ime datoteke izpisala najprej vrednost celice A1, potem "minus", vrednost celice B4, iks, vrednost B5, itd. Po možnosti bi me še opozorilo, če enako ime obstaja.

Zgodovina sprememb…

Slavček ::

To lahko narediš na ta način:
Sub ShraniSliko2()
Dim strCel1 As String
Dim strCel2 As String
Dim strFileName As String

strCel1 = Range("A1").Value
strCel2 = Range("A2").Value

strFileName = strCel1 & "x" & strCel2 & ".jpg" 'Itd...

'Ali obstaja datoteka?
If Len(Dir("X:\Pot\" & strFileName)) > 0 Then
MsgBox "Datoteka " & strFileName & " že obstaja!"
Else
MsgBox "Shrani sliko..."
End If
End Sub

BlackHole ::

Stari hvala za trud, ampak kako zdaj ta parameter StrFileName vključim v prvi makro, ker ta makro bi naj bil pod enim gumbkom, kar pomeni da moram oba združit. Jaz bom poskušal kaj spacat medtem, ko čakam na pomoč.

Slavček ::

To je sedaj končna/zadnja rešitev: :D

Sub ShraniSliko3()
Dim AppID As Long
Dim strCel1 As String
Dim strCel2 As String
Dim strFileName As String

strCel1 = Range("A1").Value
strCel2 = Range("A2").Value

strFileName = strCel1 & "x" & strCel2 & ".jpg"

If Len(Dir("X:\Pot\" & strFileName)) > 0 Then
MsgBox "Datoteka " & strFileName & " že obstaja!"
Else 'Shrani sliko
Range("B10:E20").Select
Selection.Copy

AppID = Shell("X:\Pot\MSPAINT.EXE", 1)

SendKeys "%{E}{P}", True
SendKeys "%{F}{A}", True
SendKeys strFileName, True
SendKeys "%{S}", True
SendKeys "%{F}{X}", True
End If
End Sub

In pazi, kot sem že omenil Paintbrush ne podpira jpg pri shranjevanju. To pomeni, da če boš probu odpret ta "jpg", kje drugje ne bo šlo, čeprav zgleda, kot da je shranu.

Pa veliko uspeha pri nadaljnem raziskovanju.

BlackHole ::

Nisem še probal tega makra in ne vidim razloga zakaj ne bi delal. Hvala.
Glede Paintbrusha pa, moj zna shranit v JPG (preizkušeno) in tudi sliko lahko potem gledam z drugimi programi (npr. ACDSEE). Imam pa WIN98 SE.:P

BlackHole ::

Super, dela, na koncu ti je manjkal samo ukaz "End if". Edino škoda je, da se nisem tega spravil prej delat, ker so se na firmi že odločili, da bodo kupili en štorast program za 200.000 namesto tega, kar jim "jaz" v Excelu naredim zastonj. Jaz ga bom friziral še naprej, mogoče pa le kdaj pride v uporabo.>:D

BlackHole ::

Mogoče kdo ve, če se da naredit sliko vstavljeno v delovni list transparentno tako, da se tekst, ki je v celici pod sliko vidi. V bistvu bi rad sliko postavil za tekst, kot se to da v Wordu.

Slavček ::

Izberi ukaz Oblika|List|Ozadje (ang. Background).
Samo to ti majhno sliko položi eno poleg druge kot v browserju.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

VB.net Excel v Tif

Oddelek: Programiranje
121062 (961) saule
»

[Access 2007]

Oddelek: Programiranje
132529 (2129) urosz
»

Nič več bet za Windows 7

Oddelek: Novice / Operacijski sistemi
367228 (4223) kriko1
»

[Excel] problem z makrojem, visual basic (strani: 1 2 )

Oddelek: Programiranje
585399 (4862) steev
»

Odpiranje dat.exe v VB

Oddelek: Programiranje
122804 (2597) webblod

Več podobnih tem