Condividi:        

Elenco con scelta loghi

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

Elenco con scelta loghi

Postdi luca_061088 » 03/04/14 12:12

Buongiorno

vi pongo il mio problema

Ho un foglio Excel dove vorrei creare un'elenco con i nomi di diversi loghi di clienti. Una volta selezionato il logo vorrei che venisse inserito su tutti i foglio excel o come intestazione oppure in una cella apposita o in una casella di testo, come potrei fare?

parliamo di excel 2010

Grazie mille
Luca
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Sponsor
 

Re: Elenco con scelta loghi

Postdi ricky53 » 03/04/14 13:48

Ciao,
per capire:
tu hai già un file in cui hai predisposto un foglio excel ce contiene in una colonna i nomi dei loghi dei tuoi clienti ed in un'altra l'immagine dei loghi corrispondenti ?

Se "SI" tu vorresti, dopo aver selezionato una di queste immagini, copiarla nella cella "A1" di tutti i fogli del file attivo ?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Elenco con scelta loghi

Postdi luca_061088 » 07/04/14 09:47

No i loghi sono tutti in una cartella sul desktop, io ho l'elenco dei clienti sul foglio ma i loghi esterni al foglio :)
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: Elenco con scelta loghi

Postdi Anthony47 » 08/04/14 00:29

Su un foglio creati un elenco di file che corrispondono ai logo dei tuoi clienti; ad esempio da E2 ad E20; se i nomi file non sono autoesplicativi allora nella colonna adiacente scrivi in chiaro a chi appartengono.
Sullo stesso foglio indica ad esempio in A1 il percorso in cui quei file sono presenti; DEVE terminare con "\".
Poi fai tasto dx sul tab col nome del foglio su cui hai inserito queste informazioni, scegli Visualizza codice; ti si apre l' editor delle macro; copia questo codice e inseriscilo nel frame vuoto di dx:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myPath As String, myLogo As String, myDest As String, newLogo As Shape
Dim xPos As Long, yPos As Long, myW As Long, I As Long
'
'NOTA: myPath DEVE TERMINARE con "\"
myPath = "A1"       '<< La cella di Foglio1 in cui e' posizionato il "PERCORSO" delle foto
mylist = "E2:E20"   '<< L' intervallo di Foglio1 in cui sono presenti i nomi dei File "logo"
myDest = "B2"       '<< La cella in cui, su ogni foglio sara' inserito il logo
'
If Application.Intersect(Range(mylist), Target) Is Nothing Then Exit Sub
'
Cancel = True
myLogo = Range(myPath).Value & Target.Value & ".jpg"      '***1
'
For I = 1 To Worksheets.Count
    With Sheets(I)
        On Error Resume Next
            .Shapes("Logo_Logo").Delete
        On Error GoTo 0
        xPos = .Range(myDest).Left             'calcola la posizione left
        yPos = .Range(myDest).Top              'calcola la posizione top
        myW = .Range(myDest).Width
        myh = .Range(myDest).Height
        Set newLogo = .Shapes.AddPicture(myLogo, False, True, xPos, yPos, -1, -1)
        With newLogo
            .Name = "Logo_Logo"
            .LockAspectRatio = msoTrue
            .Width = myW * 2              '***2 Vedi testo
            .Locked = True
        End With
    End With
Next I
End Sub

Personalizza le istruzioni marcate <<.
Revisiona anche le istruzioni marcate ***
-La ***1 inserisce ".jpg" in coda al nome file; se nel tuo elenco l' estensione e' gia' presene allora elimina la parte & ".jpg"
-La ***2 imposta la larghezza immagine; quella che ho inserito imposta la larghezza del logo pari al doppio della larghezza cella di destinazione, ma e' una scelta arbitraria. Tu puoi cancellare in toto la riga, e allora l' immagine mantiene le dimensioni del file di origine; oppure puoi scegliere una larghezza fissa (es .Width = 200); oppure puoi impostare l' altezza (.Height = xyzz) e avere la larghezza in proporzione.

Operativamente, vai sul foglio in cui hai impostato i parametri e fai doppioclick sulla cella con un nome file; la macro inserira' l' immagine della riga su ogni foglio del tuo file.

Fai sapere se risolvi cosi', ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elenco con scelta loghi

Postdi luca_061088 » 08/04/14 14:28

Anthony47 ha scritto:Su un foglio creati un elenco di file che corrispondono ai logo dei tuoi clienti; ad esempio da E2 ad E20; se i nomi file non sono autoesplicativi allora nella colonna adiacente scrivi in chiaro a chi appartengono.
Sullo stesso foglio indica ad esempio in A1 il percorso in cui quei file sono presenti; DEVE terminare con "\".
Poi fai tasto dx sul tab col nome del foglio su cui hai inserito queste informazioni, scegli Visualizza codice; ti si apre l' editor delle macro; copia questo codice e inseriscilo nel frame vuoto di dx:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myPath As String, myLogo As String, myDest As String, newLogo As Shape
Dim xPos As Long, yPos As Long, myW As Long, I As Long
'
'NOTA: myPath DEVE TERMINARE con "\"
myPath = "A1"       '<< La cella di Foglio1 in cui e' posizionato il "PERCORSO" delle foto
mylist = "E2:E20"   '<< L' intervallo di Foglio1 in cui sono presenti i nomi dei File "logo"
myDest = "B2"       '<< La cella in cui, su ogni foglio sara' inserito il logo
'
If Application.Intersect(Range(mylist), Target) Is Nothing Then Exit Sub
'
Cancel = True
myLogo = Range(myPath).Value & Target.Value & ".jpg"      '***1
'
For I = 1 To Worksheets.Count
    With Sheets(I)
        On Error Resume Next
            .Shapes("Logo_Logo").Delete
        On Error GoTo 0
        xPos = .Range(myDest).Left             'calcola la posizione left
        yPos = .Range(myDest).Top              'calcola la posizione top
        myW = .Range(myDest).Width
        myh = .Range(myDest).Height
        Set newLogo = .Shapes.AddPicture(myLogo, False, True, xPos, yPos, -1, -1)
        With newLogo
            .Name = "Logo_Logo"
            .LockAspectRatio = msoTrue
            .Width = myW * 2              '***2 Vedi testo
            .Locked = True
        End With
    End With
Next I
End Sub

Personalizza le istruzioni marcate <<.
Revisiona anche le istruzioni marcate ***
-La ***1 inserisce ".jpg" in coda al nome file; se nel tuo elenco l' estensione e' gia' presene allora elimina la parte & ".jpg"
-La ***2 imposta la larghezza immagine; quella che ho inserito imposta la larghezza del logo pari al doppio della larghezza cella di destinazione, ma e' una scelta arbitraria. Tu puoi cancellare in toto la riga, e allora l' immagine mantiene le dimensioni del file di origine; oppure puoi scegliere una larghezza fissa (es .Width = 200); oppure puoi impostare l' altezza (.Height = xyzz) e avere la larghezza in proporzione.

Operativamente, vai sul foglio in cui hai impostato i parametri e fai doppioclick sulla cella con un nome file; la macro inserira' l' immagine della riga su ogni foglio del tuo file.

Fai sapere se risolvi cosi', ciao.


Allora, così funziona (anche se non con tutti i loghi che ho nella cartella, facendo un debug mi da questa riga"Set newLogo = .Shapes.AddPicture(myLogo, False, True, xPos, yPos, -1, -1)" in giallo), solo una cosa, se io volessi in Heigh, mettere un'altezza fissa e il Width farglielo impostare a lui di conseguenza, da lui da solo la proporzione, si può fare? perchè i loghi non hanno una dimensione uguale per tutti, quindi io do alla macro a tutti un 20 di altezza e poi la larghezza la imposta lui di conseguenza. si può fare?
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: Elenco con scelta loghi

Postdi luca_061088 » 08/04/14 14:31

luca_061088 ha scritto:
Anthony47 ha scritto:Su un foglio creati un elenco di file che corrispondono ai logo dei tuoi clienti; ad esempio da E2 ad E20; se i nomi file non sono autoesplicativi allora nella colonna adiacente scrivi in chiaro a chi appartengono.
Sullo stesso foglio indica ad esempio in A1 il percorso in cui quei file sono presenti; DEVE terminare con "\".
Poi fai tasto dx sul tab col nome del foglio su cui hai inserito queste informazioni, scegli Visualizza codice; ti si apre l' editor delle macro; copia questo codice e inseriscilo nel frame vuoto di dx:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myPath As String, myLogo As String, myDest As String, newLogo As Shape
Dim xPos As Long, yPos As Long, myW As Long, I As Long
'
'NOTA: myPath DEVE TERMINARE con "\"
myPath = "A1"       '<< La cella di Foglio1 in cui e' posizionato il "PERCORSO" delle foto
mylist = "E2:E20"   '<< L' intervallo di Foglio1 in cui sono presenti i nomi dei File "logo"
myDest = "B2"       '<< La cella in cui, su ogni foglio sara' inserito il logo
'
If Application.Intersect(Range(mylist), Target) Is Nothing Then Exit Sub
'
Cancel = True
myLogo = Range(myPath).Value & Target.Value & ".jpg"      '***1
'
For I = 1 To Worksheets.Count
    With Sheets(I)
        On Error Resume Next
            .Shapes("Logo_Logo").Delete
        On Error GoTo 0
        xPos = .Range(myDest).Left             'calcola la posizione left
        yPos = .Range(myDest).Top              'calcola la posizione top
        myW = .Range(myDest).Width
        myh = .Range(myDest).Height
        Set newLogo = .Shapes.AddPicture(myLogo, False, True, xPos, yPos, -1, -1)
        With newLogo
            .Name = "Logo_Logo"
            .LockAspectRatio = msoTrue
            .Width = myW * 2              '***2 Vedi testo
            .Locked = True
        End With
    End With
Next I
End Sub

Personalizza le istruzioni marcate <<.
Revisiona anche le istruzioni marcate ***
-La ***1 inserisce ".jpg" in coda al nome file; se nel tuo elenco l' estensione e' gia' presene allora elimina la parte & ".jpg"
-La ***2 imposta la larghezza immagine; quella che ho inserito imposta la larghezza del logo pari al doppio della larghezza cella di destinazione, ma e' una scelta arbitraria. Tu puoi cancellare in toto la riga, e allora l' immagine mantiene le dimensioni del file di origine; oppure puoi scegliere una larghezza fissa (es .Width = 200); oppure puoi impostare l' altezza (.Height = xyzz) e avere la larghezza in proporzione.

Operativamente, vai sul foglio in cui hai impostato i parametri e fai doppioclick sulla cella con un nome file; la macro inserira' l' immagine della riga su ogni foglio del tuo file.

Fai sapere se risolvi cosi', ciao.


Allora, così funziona :)

una cosa, se io volessi in Heigh, mettere un'altezza fissa e il Width farglielo impostare a lui di conseguenza, da lui da solo la proporzione, si può fare? perchè i loghi non hanno una dimensione uguale per tutti, quindi io do alla macro a tutti un 20 di altezza e poi la larghezza la imposta lui di conseguenza. si può fare?
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: Elenco con scelta loghi

Postdi Anthony47 » 09/04/14 00:44

se io volessi in Heigh, mettere un'altezza fissa e il Width farglielo impostare a lui di conseguenza, da lui da solo la proporzione, si può fare?
Veramente l' ho gia' detto:
"puoi cancellare in toto la riga, e allora l' immagine mantiene le dimensioni del file di origine; oppure puoi scegliere una larghezza fissa (es .Width = 200); oppure puoi impostare l' altezza (.Height = xyzz) e avere la larghezza in proporzione"
Quindi cancella la riga .Width = myW * 2 e mettici
Codice: Seleziona tutto
.Height = 20


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Elenco con scelta loghi

Postdi luca_061088 » 09/04/14 07:18

Ah ok Ti ringrazio Anthony, gentilissimo, e scusami per la mia svista ;)

Luca
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: Elenco con scelta loghi

Postdi luca_061088 » 09/04/14 07:35

luca_061088 ha scritto:Ah ok Ti ringrazio Anthony, gentilissimo, e scusami per la mia svista ;)

Luca


un'ultima cosa scusami. quando clicco su alcuni clienti/loghi (non su tutti) mi dice:

errore di run-time '1004':

errore definito dall'applicazione o dall'oggetto

premendo su debug mi da in giallo questa riga:

Codice: Seleziona tutto
Set newLogo = .Shapes.AddPicture(myLogo, False, True, xPos, yPos, -1, -1)


Ho controllato se il nome del cliente corrispondesse al nome corretto del logo e sono tutti giusti.

Luca
Prodotti Utilizzati

Windows 7 + Office 2010
luca_061088
Utente Junior
 
Post: 23
Iscritto il: 14/01/14 14:48

Re: Elenco con scelta loghi

Postdi Anthony47 » 09/04/14 13:32

Evidentemente "sembrano uguali" ma sono diversi...
Prova dopo aver "rinominato" il file sul disco, riscrivendo tutti i caratteri (in particolare eventuali "spazi").

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Elenco con scelta loghi":


Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti