Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Rename SQL column

Achiziționare tuner TV !

Din ce este facuta terasa asta?

Cum accesez site-ul CNAS ?
 Algoritm simplu de calculare al u...

Bitdefender Total Security ș...

casa verde 2024

Intrerupator cu N - doza doar cu ...
 Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...
 probleme cu ochelarii

Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National
 

Poze in Excel, VB

- - - - -
  • Please log in to reply
2 replies to this topic

#1
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Am un fisier Excel si pe o coloana vreau sa pun niste poze (pe care sa le fac mici mici de tot, cam cat e celula de Excel by default). Si doresc sa le asignez un macro, care sa mi le mareasca, apoi sa le pot micsora la loc (la dimensiunea initiala).

Nu cunosc limbajul de programare VB. Ma rezum doar la ce se poate face prin inregistrare, direct din macro (pe care apoi il editez si, daca mai am nevoie,  incerec sa inteleg acele linii de cod si sa mai modific ceva pe acolo).

Ceva ceva (veti vedea) face dar nu face bine (cum trebuie) (las deocamdata problema de lock aspect ratio; de aia am si pus-o pe false si am dat valorile alea acolo, de test).

As vrea ca atunci cand dau click pe acea poza (corespunzatoare ecranului de pe linia curenta, pe care sunt), aceasta sa se mareasca, sa o vad mare si clar (ca si cum as vizualiza ecranul aplicatiei sau ca si cum as vedea o poza full screen, cu orice viewer de poze), si apoi, fie dupa un delay, fie dupa un alt clik pe poza sau pe un soi de alt buton (ca si cum as vrea sa inchid poza), sa mi se faca la loc, la dimensiunea aia mica-mica. Deci doresc, un stiu, o functie ceva, care sa-mi faca un soi de preview al acelei poze pe care apas.

Dupa cum ziceam, din inregistrarea automata, a iesit cam asta. Si de aici m-am blocat.
 ActiveSheet.Shapes("Picture 1").Select
	Selection.ShapeRange.LockAspectRatio = msoFalse
	Selection.ShapeRange.Height = 1000
	Selection.ShapeRange.Width = 1200
	Selection.ShapeRange.Rotation = 0#
   
	'Application.Wait (Now + TimeValue("0:00:05"))
  
	'ActiveSheet.Shapes("Picture 1").Select
	'Selection.ShapeRange.LockAspectRatio = msoFalse
	'Selection.ShapeRange.Height = 50
	'Selection.ShapeRange.Width = 100
	'Selection.ShapeRange.Rotation = 0#

Sper sa se poate face ce vreau eu... Va rog, imi puteti da o idee, in sfat, chiar o mana de ajutor (corectie). Multumesc

#2
mihaicris

mihaicris

    Junior Member

  • Grup: Members
  • Posts: 215
  • Înscris: 03.03.2003
Salut

Uite cum am facut:
Am pus o poza in celula A1, empiric am vazut ca inaltimea de 10 face poza cam cat celula de inalta
Am creat Macro-ul de mai jos, denumit Picture1:
Sub Picture1()
	ActiveSheet.Shapes("Picture 1").Select
	If Selection.Height < 20 Then
		Selection.ShapeRange.Height = 1000
		Selection.ShapeRange.Width = 1200
		Application.DisplayFullScreen = True
	Else
		Selection.ShapeRange.Height = 10
		Selection.ShapeRange.Width = 10
		Application.DisplayFullScreen = False
	End If
	Cells(1, 1).Select
End Sub
M-am dus in Sheet si am asignat pozei acest macro (click-dreapta pe poza).
Cand dau click pe poza, daca inaltimea e mica (<20) atunci mi-o mareste, altfel o micsoreaza.
Linia Cells(1, 1).Select am introdus-o ca intra forma in Design mode si nu mai executa macro-ul cand dadeam click pe ea.
Dimensiunile de 1000 respectiv 1200 sunt ale tale, trebuie sa vezi cat sa fie ca sa umple ecranul.

Daca ai mai multe imagini... trebuie sa faci cate un macro pentru fiecare din ele, Picture1, Picture2 samd si sa le asignezi la fiecare macro-ul potrivit. Daca toate pozele au aceasi dimensiune se poate rupe macro-ul de mai sus in 2 parti ca sa nu repeti de prea multe ori toate liniile. Prima parte, cea asignata pozelor apeleaza cu numele potrivit partea a 2 a care face redimensionarea si e scrisa o singura data ptr. toate imaginile. Ceva de genul:
Sub Picture1()
	ResizePicture ("Picture 1")
End Sub

Sub Picture2()
	ResizePicture ("Picture 2")
End Sub

Sub Picture3()
	ResizePicture ("Picture 3")
End Sub

Sub ResizePicture(PicName As String)
	ActiveSheet.Shapes(PicName).Select
	If Selection.Height < 20 Then
		Selection.ShapeRange.Height = 1000
		Selection.ShapeRange.Width = 1200
		Application.DisplayFullScreen = True
	Else
		Selection.ShapeRange.Height = 10
		Selection.ShapeRange.Width = 10
		Application.DisplayFullScreen = False
	End If
	Cells(1, 1).Select
End Sub

Edited by mihaicris, 25 March 2012 - 19:08.


#3
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Mi-a fost de ajutor, dar nu in acel sheet (caci avea vreo 200 de poze/articole in el), ci pentru urmatorul sheet (a trebuit sa-i mai adaug inca unul, cu alte chestii, legate de rapoarte). Multumeeeeesc mult  :cheers:

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate