Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

EXCELL Richiamare Immagini

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

EXCELL Richiamare Immagini

Postdi Ale.P. » 09/10/07 14:50

Ciao a tutti,

ho un file excell composto da piu fogli.
su uno di questi foglio (tavola 1) c'è una tabella con tre colonne, la prima contine numeri progressivi, la seconda contine un immagine e la terza contine una descrizione.

Su un altro foglio vorrei ottenere in base alla selezione di un numero, l'immagine e il testo corrispondente contenuto nella tavola 1.

Per la selezione del testo non ho problemi, ma per la visualizzazione dell'immagine si.

mi potete aiutare ?


grazie 1000,
ale. :idea:
Ale.P.
Utente Junior
 
Post: 22
Iscritto il: 30/08/07 13:58

Sponsor
 

Postdi Anthony47 » 09/10/07 22:50

Per muovere le immagini devi lavorare con una macro.

Supponiamo che il foglio con tabella sia chiamato Foglio1, e il foglio di uscita sia Foglio2.
Supponiamo che su Foglio2, l’ indice venga scritto in A2 e l’ immagine vuoi metterla su B2.

Per cominciare in una cella libera di Foglio2 (io ho usato F1) scrivi la formula =CONFRONTA(A2;Foglio1!A:A;0)

Poi inserisci questa macro sul tuo vba:
Codice: Seleziona tutto
Sub ImmAle()
'
FoglioTab = "Foglio1"     '<<  Inserire Nome corretto del foglio Dati
FoglioOut = "Foglio2"     '<<  Inserire Nome corretto del foglio di out
CellaPos = "F1"           '<<  Inserire indirizzo cella con CONFRONTA
'
'Cancella le immagini presenti sul foglio di output
Application.EnableEvents = False
Sheets(FoglioOut).Activate   
For Each Pict In ActiveSheet.Shapes
Pict.Delete
Next Pict
'
'Cerca l’ immagine ….
RigaNum = Range("F1").value
Sheets(FoglioTab).Activate   
CurPos = Range("B" & RigaNum).Address
For Each Pict In ActiveSheet.Shapes
  If Pict.TopLeftCell.Address = CurPos Then
  NomeImm = Pict.Name: Exit For
  End If
Next Pict
'      …. e copiala su foglio di output
Sheets(FoglioOut).Activate   
If NomeImm = "" then
Msgbox("Nessuna Immagine corrisponde")
Goto Uscita
End If
Sheets(FoglioTab).Shapes(NomeImm).Copy     
Range("B2").Select    '<< Inserire Cella dove si vuole piazzare l’ immagine
ActiveSheet.Paste

Uscita:
Application.EnableEvents = True
End Sub


Procedura: Apri il vba editor con Alt-F11; Menu /Inserisci /Modulo; copia il codice e incollalo nel frame bianco di destra.
Commenti: Correggi subito le righe iniziali, inserendo i veri nomi fogli e la cella con Confronta.
La macro CANCELLA TUTTE le immagini presenti sul Foglio2, poi sceglie quella posizionata in Foglio1 sulla riga del codice inserito, la copia su Foglio2.

Eventualmente assegna alla macro un tasto per l’ attivazione: da excel, Menu /Strumenti /Macro /Macro; selezioni ImmAle, premi Opzioni, nella casella “Tasto di scelta rapida” inserisci I (maiuscolo; I come Immagine); conferma con Ok, chiudi con x. In questo modo bastera’ premere Contr-Maiusc-i per eseguire la macro.

Come sempre, prima di fare esperimenti fai DUE copie di backup del tuo file…

Se va bene, si puo’ fare in modo di eseguire la macro tutte le volte che si inserisce il codice su Foglio2; in questo caso pero’ e’ meglio che mi dia la posizione esatta dove scrivi l’ indice e in quale posizione vuoi l’ immagine.

Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi fiorella.fortunato » 09/10/07 23:12

La soluzione l'ho risolta all'epoca con le macro: 2 anni fa nella società in cui lavoro mi è stato chiesto di creare dei preventivi in Excel. In base ad un valore immesso in una cella, sotto il nome della società compariva la firma scannerizzata del commerciale di turno.

Per prima cosa su un foglio ho importato delle immagini. Ogni immagine ha un nome progressivo: Firma1, Firma2, Firma3. le immagini le puoi importare con il classico comando INSERISCI->IMMAGINE->DA FILE.
Per rinominare l'immagine basta che la selezioni e modifichi il nome "Immagine XX" che sta vicino alla barra della formula (fx...). Le immagini alla fine sono state sovrapposte e posizionate in uno stesso punto.

Come seconda cosa ho creato la seguente tabella in A1:
Codice: Seleziona tutto
         A          B       C
1 Nome Cognome1 | NC1 | Firma1
2 Nome Cognome2 | NC2 | Firma1
3 Nome Cognome3 | NC3 | Firma1



in D1 ho creato una casella e ho eseguito il menù DATI->CONVALIDA->Consenti "Elenco" e come parametro di origine: =$A$1:$A$3
in E1 =CERCA.VERT(D1;A1:C3;3)

a questo punto ho inserito la macro in Foglio1:
Codice: Seleziona tutto
Private Sub worksheet_calculate()
    Dim Firma As Picture
    Me.Pictures.Visible = False
    With Range("D33")
        For Each Firma In Me.Pictures
            If Firma.Name = .Text Then
                Firma.Visible = True
            End If
        Next Firma
    End With
End Sub


ma vedo che nel momento in cui stavo scrivendo mi ha anticipata anthony
Fiorella Fortunato
- Il 99% dei problemi di un computer sta tra la sedia e la tastiera...
Avatar utente
fiorella.fortunato
Utente Junior
 
Post: 59
Iscritto il: 11/09/05 11:38

Postdi Anthony47 » 09/10/07 23:36

Ciao a tutti.
Il metodo di Fiorella e' basato su un inventario nome/immagine, quello proposto da me e' basato sulla posizione dell' immagine.
Ale puo' scegliere la soluzione che preferisce; e comunque avere due risposte e' meglio che averne nessuna...

Per Fiorella: macro che funziona e' sempre buona; ma credo che potresti semplificare cosi':

Codice: Seleziona tutto
With Range("D33")
ActiveSheet.Shapes(.Text).Visible = True
End With


Ciao,
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi fiorella.fortunato » 09/10/07 23:55

a parte il mio errore "E1" e non "D33" (il mio esempio è di fatti una semplificazione di un lavoro molto più grande e un piccolo refuso è scappato, sorry)...
Proverò il tuo ultimo suggerimento... lo scopo è semplicemente quello di nascondere tutte le immagini e mostrare soltanto quella il cui nome è nella cella specificata... e di fatto Me.Pictures.Visible = False le nasconde tutte...
Fiorella Fortunato
- Il 99% dei problemi di un computer sta tra la sedia e la tastiera...
Avatar utente
fiorella.fortunato
Utente Junior
 
Post: 59
Iscritto il: 11/09/05 11:38

Postdi Ale.P. » 10/10/07 09:32

Anzitutto grazie ad entrambi.

Nel mio caso avendo una tabella di circa 40 righe (e relative immagini) il metodo di Anthony è più pratico.

Avrei ancora due domande:

1)_Nella stessa pagina (foglio 2) ho previsto la possibilità di settare più di un campo, quindi la parte iniziale della sub che cancella tutte le immagini del foglio non posso applicarla. (mi cancellerebbe le immagini già inserite)
Come posso modificarla in modo che mi cancelli solo un area del foglio2 (ad esempio l’area compresa tra le righe 20 e 25 ).

2)_ la posibilità di eseguire la macro in automatico mi interesssa molto.
Diciamo che il codice di riferimento è inserito in C20 e l’immagine dovrebbe comparire in D22.

Grazie,
Ale.
Ale.P.
Utente Junior
 
Post: 22
Iscritto il: 30/08/07 13:58

Postdi Anthony47 » 10/10/07 12:08

Vuoi dire che su Foglio2 vorresti riportare piu' immagini da Foglio1, ognuna richiamata con un indice, o che su Foglio2 ci sono gia' altre immagini che non vuoi cancellare?
Questo impatta anche la risposta 2, giacche' se vuoi importare piu' immagini non puoi avere solo 1 indice e 1 posizione immagine.

Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Ale.P. » 12/10/07 10:57

Vorrei inserire due immagini differenti nello stesso foglio (foglio 2).
non ho puntualizzato le celle perche contavo dio fare due macro differenti,
ad ogni modo le nuove celle saranno 30 righe sotto (quindi C50 per il secondo indice e D52 come pos della seconda immagine).

per info nel foglio dove vorrei importare le immagini, ci sono altre immagini (come ad esempio i bottoni cui ho associato le macro), che non vorrei fosserio cancellate.


ciao e grazie,
Ale.
Ale.P.
Utente Junior
 
Post: 22
Iscritto il: 30/08/07 13:58

Postdi Anthony47 » 14/10/07 23:01

Stava rimanendo indietro questo argomento…

Per cancellare solo l’ immagine relativa all’ oggetto da sostituire, allora io memorizzerei il nome immagine nella cella su cui si copia l’ immagine, e poi userei il nome per cancellarla.
Per questo modifichiamo in alcune parti la macro gia' proposta, come evidenziato con <<<:

Codice: Seleziona tutto
'Cancella le immagini presenti sul foglio di output
Application.EnableEvents = False
Sheets(FoglioOut).Activate   
'For Each Pict In ActiveSheet.Shapes                 '<<<<< 3 istruzioni rimosse
'Pict.Delete
'Next Pict
OldImm = Range("D22").value                '<<<<<
If OldImm<>"" then ActiveSheet.Shapes(OldImm).Delete                '<<<<<
'
'Cerca l’ immagine....

(nessuna modifica in questa sezione)

'      .... e copiala su foglio di output
Sheets(FoglioOut).Activate   
If NomeImm = "" then
Msgbox("Nessuna Immagine corrisponde")
Goto Uscita
End If
Sheets(FoglioTab).Shapes(NomeImm).Copy     
Range("D22").Select    '<< Inserire Cella dove si vuole piazzare l’ immagine                 '<<<<<
ActiveSheet.Paste
Range("D22").value = NomeImm                '<<<<<

Uscita:
Application.EnableEvents = True
End Sub


Prova e fai sapere se risolve, ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Ale.P. » 17/10/07 12:35

Purtroppo continuo ad avere dei problemi ..

La macro non cancella le immagini.

Il risulatto che ottengo è la sovrapposizione delle immagini, inoltre il nome delle immagini viene scritto nella cella D22.

Eliminando la riga

Range(“D22”).value = NomeImm

Evito che il nome dell’immagine sia scritto nella cella, ma le immagini continuano a sovrapporsi, se attivo la macro più volte.
Ale.P.
Utente Junior
 
Post: 22
Iscritto il: 30/08/07 13:58

Postdi Anthony47 » 18/10/07 00:31

Il nome dell’ immagine viene scritto in D22 per scelta; la scritta dovrebbe pero’ essere poi coperta dall’ immagine copiata, e infine dovrebbe servire per selezionare e cancellare l’ immagine “precedente” prima di importarne una nuova.
Scrivi che la macro non cancella le immagini; poiche' a me funziona, mi dai il listato della macro che stai usando?

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Ale.P. » 18/10/07 14:34

E’ molto propbabile che abbia fatto qualche errore ..
Ti allego il codice della macro.

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
Sub ImmAle()
'
FoglioTab = "Sheet2" '<< Inserire Nome corretto del foglio Dati
FoglioOut = "Sheet1" '<< Inserire Nome corretto del foglio di out
CellaPos = "H20" '<< Inserire indirizzo cella con CONFRONTA
'
'Cancella le immagini presenti sul foglio di output
Application.EnableEvents = False
Sheets(FoglioOut).Activate
'For Each Pict In ActiveSheet.Shapes
'Pict.Delete
'Next Pict
'
Range("D22").Value = OldImm
If OldImm <> "" Then ActiveSheet.Shapes(OldImm).Delete

'Cerca l' immagine ….
RigaNum = Range("H20").Value
Sheets(FoglioTab).Activate
CurPos = Range("B" & RigaNum).Address
For Each Pict In ActiveSheet.Shapes
If Pict.TopLeftCell.Address = CurPos Then
NomeImm = Pict.Name: Exit For
End If
Next Pict
' …. e copiala su foglio di output
Sheets(FoglioOut).Activate
If NomeImm = "" Then
MsgBox ("Nessuna Immagine corrisponde")
GoTo Uscita
End If
Sheets(FoglioTab).Shapes(NomeImm).Copy
Range("D22").Select '<< Inserire Cella dove si vuole piazzare l' immagine
ActiveSheet.Paste
Range("D22").Value = NomeImm

Uscita:
Application.EnableEvents = True
End Sub
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

grazie,
Ale.
Ale.P.
Utente Junior
 
Post: 22
Iscritto il: 30/08/07 13:58

Elenco selezione immagini con macro

Postdi fly84pd » 18/10/07 18:22

ciao ragazzi, sono un nuovo utente e pertanto scusate se dovessi errare o essere banale in qlc cosa.

In ambito excell mi muovo abbastanza bene, ma le macro (e VBA) son il mio tallone d'achille.

Dico ciò poichè penso che il mio problema si possa risolvere solamente con l'uso delle macro (osbaglio?).

Su un fac-simile di quanto detto da fiorella, devo creare cio:

Ho e voglio ottenere (se possibile) Tutto su foglio 1:

A B C

1 vuoto
2 STC (convalida elenco) =immagine
3 SCM
4 KRS

Ho rinominato l'immagine da abbinare a vuoto "Lvuoto"
Ho rinominato l'immagine da abbinare a STC "logstc"
Ho rinominato l'immagine da abbinare a SCM "logscm"
Ho rinominato l'immagine da abbinare a KRS "logkrs"

Ora in base alla scelta che farò dall'elenco a discesa in B2, nella cella C2 mi dovra' comparire l'immagine rispettiva abbinata.

Spero essere stato il + chiaro possibile e possiate soddisfare le mie esigenze.
Grato per la collaborazione.

Saluto
fly84pd
Newbie
 
Post: 6
Iscritto il: 18/10/07 17:59

Postdi Anthony47 » 19/10/07 01:26

Nella macro ci sono 2 errori:
Errato (in testa): Range("D22").Value = OldImm
Corretto:
Codice: Seleziona tutto
OldImm = Range("D22").Value


Errato (in coda): Range("D22").Value = NomeImm
Corretto:
Codice: Seleziona tutto
Range("D22").Value = Selection.Name

Questa e’ la modifica chiave, perche’ mette il vero nome immagine in D22.

Inoltre ho notato che avevamo definito la variabile CellaPos, con l’ indirizzo della cella che contiene la formula; ma poi usavo ancora l’ indirizzo della cella (e non il contenuto della variabile) per andare a pescare l’ immagine. Possiamo quindi anche correggere:
Errato: RigaNum = Range("H20").Value
Corretto:
Codice: Seleziona tutto
RigaNum = Range(CellaPos).Value


Fai sapere!

Per fly84pd.
Intanto benvenuto nel forum.
Devi procedere come indicato appunto da Fiorella:
-ti carichi le immagini tutte nella stessa posizione; la macro determinera’ poi quale visualizzare.
-ti fai una tabella che incrocia i possibili valori della cella con il nome dell’ immagine
-in una cella di servizio metti la formula del cerca.vert (Fiorella aveva usato E1, vedi il suo secondo post) per avere in quella cella il nome immagine in funzione del valore prescelto.
-carichi la macro nel modulo del foglio su cui lavori; mi pare che vuoi avere una immagine anche nel caso che la cella con convalida sia vuota. Per questo modifichiamo la macro come segue:

Codice: Seleziona tutto
Private Sub worksheet_calculate()
Application.EnableEvents = false
ActiveSheet.Pictures.Visible = False
If Range("B2").Value = "" Then           
ActiveSheet.Shapes("Lvuoto").Visible = True
Else
ActiveSheet.Shapes(Range("E1").Text).Visible = True   ‘<<<<   Vedi Testo
End If
Application.EnableEvents = true
End Sub


Nota: invece di E1 immettere l’ indirizzo della cella in cui hai effettivamente immesso la formula del CERCA.VERT.

Uso: da excel, fare tasto dx sul tab del nome foglio su cui vuoi lavorare; scegliere “Visualizza codice”; si apre il vba editor; copi il codice e lo incolli nel frame vuoto di dx.

Ritorna su excel, e imposta un valore nella cella con convalida: solo l’ immagine corrispondente verra’ di volta in volta visualizzata.
La macro si esegue and ogni variazione di dati nel foglio.

Fai sapere anche tu! Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi fly84pd » 19/10/07 14:01

procedimento spiegato esemplarmente per no dire impeccabile!
rieuscito al primo colpo...grazie mille

...se dovessi avere perplessità so su chi contare!

nb: la formula con il cerca.vert funziona solo secondo questo modo:

dopo aver nominato "tab" la mia tabella con nomi (colonna A) e rispettivo nome immagine (colonna B):

=CERCA.VERT(C2;tab;2;FALSO)

Cmq. tutto ok e grazie.

ps:e se dovessi inserire tutto ciò su un foglio già creato dove in vba contiene già:

Private Sub CheckBox1_Click()

End Sub

Private Sub CommandButton1_Click()

End Sub

Private Sub rs485_Click()

End Sub

Private Sub Data_Click()

End Sub

?

Saluto
fly84pd
Newbie
 
Post: 6
Iscritto il: 18/10/07 17:59

selezionare immagini con elenco (macro)

Postdi fly84pd » 19/10/07 17:16

ho usato il metodo descritto da te e quello da fiorella;ambedue funzionano naturalmente, ma con qll di fiorella vedo che non serve l'immagine vuota nel caso non ci fosse nessuna selezione.

Spiego il procedimento TESTUALMENTE eseguito poichè ora avrei bisogno di altre informazioni:

Creata tabella:

colonna A
1 = STC
2 = SCM
3 = KRI

colonna B
1 = Firma1
2 = Firma2
3 = Firma3

Selezionate celle Tra A1 e B3 creando un elenco chiamato "ELENCO"

cella C1 = cella convalida dati =$A$1:$A$3

cella D1 = CERCA.VERT(C1;elenco;2;FALSO)

Prese 3 immagini che servono x rispettiva selezione e chiamate
Firma 1, Firma2, Firma 3.

Tasto DX su Foglio 1 per Visualizza Codice.

Ho copiato:

Private Sub worksheet_calculate()
Dim Firma As Picture
Me.Pictures.Visible = False
With Range("D1")
For Each Firma In Me.Pictures
If Firma.Name = .Text Then
Firma.Visible = True
End If
Next Firma
End With
End Sub

- Tutto Funziona senza nessun problema.
Ora però a me serve un altra cosa: in base alla selezione in C1 oltre alla Firma 1 o 2 o 3 mi deve comparire un'altra immagine per ogni selezione:

in altra parte sempre dello stesso foglio
- quando seleziono STC oltre a Firma1 mi deve comparire anche Firma11
- quando seleziono SCM oltre a Firma2 mi deve comparire anche Firma12
- quando seleziono KRI oltre a Firma3 mi deve comparire anche Firma13

Io ho già preso le altre 3 immagini rinominandole Firma 11,12 e 13, ma su visualizza codice no so come fare perchè mi risulti corretto il tutto.


Saluto
fly84pd
Newbie
 
Post: 6
Iscritto il: 18/10/07 17:59

Postdi fly84pd » 19/10/07 18:09

...rammento un altro problema.

Il lavoro discusso dovrei eseguirlo anche su un foglio di lavoro già esistente, in cui si trovano pulsanti, elenchi a discesa e penso moduli....

riporto ora in codice di questo foglio:


Private Sub CheckBox1_Click()

End Sub

Private Sub CheckBox4_Click()

End Sub

Private Sub ComboBox1_Change()

End Sub

Private Sub ComboBox11_Change()

End Sub

Private Sub ComboBox4_Change()

End Sub

Private Sub Label1_Click()

End Sub

Private Sub ComboBox41_Change()

End Sub

Private Sub OptionButton1_Click()

End Sub

Private Sub OptionButton14_Click()

End Sub

Private Sub OptionButton22_Click()

End Sub

Private Sub OptionButton24_Click()

End Sub

Private Sub OptionButton11_Click()

End Sub

Private Sub OptionButton3_Click()

End Sub

Private Sub OptionButton40_Click()

End Sub

Private Sub OptionButton48_Click()

End Sub

Private Sub OptionButton5_Click()

End Sub

Private Sub OptionButton52_Click()

End Sub

Io ho eseguito tutta la procedura, come nella prima parte del messaggio di prima descritta, che prima su un foglio nuovo e pulito mi riusciva;

però se ora faccio tutto lo stesso procedimento e nel codice già esistente vado a inserire:

Private Sub worksheet_calculate()
Dim Firma As Picture
Me.Pictures.Visible = False
With Range("xn") <riferimenti esatti
For Each Firma In Me.Pictures
If Firma.Name = .Text Then
Firma.Visible = True
End If
Next Firma
End With
End Sub

No mi funziona e mi da errore di run time '1004':
Impossibile impostare la proprietà Visible per la classe Pictures.

Continua - Fine - Debug - ?

Devo rifare il foglio da capo, facendo x prima cosa l'elenco a selezioni con immagini o si può risolvere qlc?
fly84pd
Newbie
 
Post: 6
Iscritto il: 18/10/07 17:59

Postdi Anthony47 » 19/10/07 18:47

Intanto: il metodo su cui abbiamo lavorato E' quello di fiorella; le modifiche alla macro le ho fatte perche' avevi scritto che in caso di valore nullo volevi selezionare l' immagine Lvuoto, che invece la macro originale (quindi quella che citi nel tuo post delle 18:16) non gestisce. Avevo capito male??

Poi: il codice esistente non fa nulla; lo puoi cancellare. Sono infatti macro vuote (ogni macro comincia con Private Sub xxxx e finisce subito con End Sub, senza nessuna istruzione intermedia).

Per la doppia firma: il metodo piu' semplice e' di ampliare la tabella firme, inserendo un' altra colonna con la seconda immagine, e una ulteriore formula
Codice: Seleziona tutto
=CERCA.VERT(C2;tab;3;0)
in cella E1 (accanto a quella gia' in uso). Ovviamente poi dovrai ampliare la macro; allo scopo riesumo la mia versione della macro "fiorella", e la modifico:

Codice: Seleziona tutto
Private Sub worksheet_calculate()
Application.EnableEvents = false
ActiveSheet.Pictures.Visible = False
If Range("B2").Value = "" Then           
ActiveSheet.Shapes("Lvuoto").Visible = True
Else
ActiveSheet.Shapes(Range("D1").Text).Visible = True   
ActiveSheet.Shapes(Range("E1").Text).Visible = True
End If
Application.EnableEvents = true
End Sub



Se invece non ti serve piu' l' immagine Lvuota dimmelo e togliamo le relative istruzioni.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Ale.P. » 22/10/07 12:55

Perfetto !

grazie 1000 oar funziona.

Ale.
Ale.P.
Utente Junior
 
Post: 22
Iscritto il: 30/08/07 13:58

macro con foglio bloccato

Postdi fly84pd » 24/10/07 10:31

ok, funziona, tutto ok.

Grazie 1000 !!!

Ora dovrei proteggere il foglio di lavoro con password, poichè ho sbloccato e nascosto solamente le celle che dovranno essere variate.

So che non è possibile eseguire macro se il foglio è bloccato, salvo inserendo lo sblocco e il blocco prima e dopo di essa.

Nel Foglio ho creato altre macro:
1- x stampare direttamente
2- x creare una copia del foglio creato

Dopo aver registrato le macro, ho modificato il loro codice in qst modo:

ActiveSheet.Unprotect Password:="nome pssw data"

"inserisco il codice che voglio far eseguire alla macro"

ActiveSheet.Protect Password:="nome pssw data"

Tutto sembrerebbe funzionare correttamente, ma Il problema è che a volte rimane tutto bloccato come dovrebbe, ma altre volte la pssw non è che si disabilita, però tutte le celle diventano selezionabili come se fosse stata tolta.

Non c'è un modo x usare le macro con la sicurezza che il foglio resti sempre bloccato?

Saluto e ringrazio per la collaborazione.
fly84pd
Newbie
 
Post: 6
Iscritto il: 18/10/07 17:59

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "EXCELL Richiamare Immagini":

Immagini
Autore: aleyandro
Forum: Sistemi Operativi Windows
Risposte: 5

Chi c’è in linea

Visitano il forum: patel e 11 ospiti