Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Antena satelit DIGi prin fibra op...

Recomandare imprimanta

Masina spalat indesit wisl 85 nu ...

Modificare frecventa rami ddr4
 Ramon(2023)

Probleme internet (ping,packetloss)

Adictia la medicamente opioide.

reziliere contract
 E normal sa aiba viteza mai mica ...

Kaufland - Pareri / Sugestii / Re...

Ce fel de calorifere/radiatoare s...

Ce inseamna C.I+?
 O luna de permis si un Ford Monde...

Problema baterie opel astra h

Prioripost

ce puteam face in aceasta situatie?
 

Poze in Excel, VB

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

#1
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,310
  • Î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,310
  • Î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

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

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