Supporta il tuo Forum su Patreon!
 
  > Register  
  > Calendar  
  > Members List  
 
  > Supporta il Forum  
  > Today's Posts  
   

Go Back   netgamers.it > NetGamers Life > Agorà

Reply
 
Thread Tools Rate Thread
Old 18th May 2016, 12:47   #1
baz*
i get things done
 
baz*'s Avatar
 
Join Date: Jul 2002
Location: Singapore
Posts: 8,261
CAA - Excel

Domanda per i nerd piu professionali di NGI

data una cartella windows con all'interno files JPEG il cui nome è un numero di 5 cifre,

esiste un programma o una macro che, aperto un file excel, nel momento in cui in una cella inserisco un numero di 5 cifre, mette la foto corrispondente presente nella cartella, la resiza per stare all'interno della cella e la ancora alla cella?

10€ via paypal a chi mi risolve il problema

Grazie 1000
__________________
IL MEDICO E' UN PERSONAGGIO CHE SERVE AD AIUTARE GLI ALTRI.

NON E' UNO CHE VA IN GIRO.
baz* is offline   Reply With Quote
Old 18th May 2016, 15:08   #2
oblivionGohma
GIMPatore di vecchia data
 
oblivionGohma's Avatar
 
Join Date: Jun 2005
Location: 'n pruinsa de Bèrghem
Posts: 753
Code:
Sub macroPerBaz()
    
    percorsoCartella = "C:\latuacartella\" 'indicare il percorso della cartella
    
    altezzaCella = ActiveCell.Height ' legge l'altezza della cella
    larghezzaCella = ActiveCell.Width ' legge la larghezza della cella
    
    If Right(percorsoCartella, 1) <> "\" Then percorsoCartella = percorsoCartella & "\"
    nomeFile = ActiveCell.Value & ".JPG" 'il nome del file è il contenuto della cella selezionata
    
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    fileEsiste = fso.FileExists(percorsoCartella & nomeFile) ' controlla che il file esista
    Set fso = Nothing
    
    If fileEsiste = falso Then
        MsgBox ("Errore, il file '" & nomeFile & ".jpg' non esiste")
        Exit Sub
    End If
    
    ActiveSheet.Pictures.Insert(percorsoCartella & nomeFile). _
        Select ' inserisce l'immagine in base al percorso e nome file precedentemente indicati

    Selection.ShapeRange.LockAspectRatio = msoFalse ' sblocca le proporzioni dell'immagine
    Selection.Placement = xlMoveAndSize ' aggancia l'immagine alle dimensioni della cella
    Selection.ShapeRange.Height = altezzaCella ' modifica le dimensioni dell'immagine in base
    Selection.ShapeRange.Width = larghezzaCella ' ai valori letti in precedenza
    
End Sub
edit; aggiunto messaggio di errore nel caso il file non esista
__________________
--Bacco-forever--
"ma non è il commento su di una lollina esso stesso una lollina?"

Last edited by oblivionGohma; 24th May 2016 at 10:55.
oblivionGohma is offline   Reply With Quote
Old 18th May 2016, 15:24   #3
pbo
mi? sbàt i bäll.
 
pbo's Avatar
 
Join Date: Jan 2004
Location: Monza
Posts: 1,037
Quote:
Originally Posted by oblivionGohma View Post
edit; aggiunto messaggio di errore nel caso il file non esista
checcazzo m'ero messo a farla pure io
la metto tanto ormai già c'ero...
Code:
Sub img_replace()
Dim img_replace_folder, img_replace_extension As String

'cartella immagini
img_replace_folder = "C:\PROVA\"
'estensione file
img_replace_extension = ".png"

img_replace_height = ActiveCell.Height
img_replace_width = ActiveCell.Width

img_replace_current = img_replace_folder + CStr(ActiveCell.Value) + img_replace_extension

If Len(Dir(img_replace_current)) = 0 Then
   MsgBox "file does NOT exist."
Else
    With ActiveSheet.Pictures.Insert(img_replace_current)
        With .ShapeRange
            .LockAspectRatio = msoFalse
        End With
        .Placement = xlMoveAndSize
        .Height = img_replace_height
        .Width = img_replace_width
        .Placement = 1
        .PrintObject = True
    End With
End If
End Sub
__________________
il treno è sempre il treno.
pbo is offline   Reply With Quote
Old 18th May 2016, 15:33   #4
Maui
No Social
 
Maui's Avatar
 
Join Date: Oct 2007
Posts: 7,661

me ne approprio. paga baz.
__________________
Scherzando si può dire di tutto, anche la verità.
Maui is offline   Reply With Quote
Old 18th May 2016, 15:39   #5
baz*
i get things done
 
baz*'s Avatar
 
Join Date: Jul 2002
Location: Singapore
Posts: 8,261
oblivion grazie hai un pm
__________________
IL MEDICO E' UN PERSONAGGIO CHE SERVE AD AIUTARE GLI ALTRI.

NON E' UNO CHE VA IN GIRO.
baz* is offline   Reply With Quote
Old 18th May 2016, 15:48   #6
oblivionGohma
GIMPatore di vecchia data
 
oblivionGohma's Avatar
 
Join Date: Jun 2005
Location: 'n pruinsa de Bèrghem
Posts: 753
oibò mi trovo in difficoltà a dirti un metodo semplice per aggiungere una nuova macro...
fai così;
- apri excel
- premi Alt + F11, ti si aprirà Microsoft Visual Basic
- tasto destro nella colonna sinistra "Progetto - VBAProject", fai "Aggiungi Modulo". Ti si dovrebbe aggiungere il "Modulo 1".
- Dentro il modulo 1 ci incolli la macro da "Sub.." a ".. End Sub"
- Chiudi VBA
- Salvi il foglio di Excel , nel mio caso devo salvare in formato "xlsm" che è un formato che permette il salvataggio delle macro
- per lanciare la macro da Excel devi selezionare il menu "Sviluppo", "Macro" , e lanciare la macro "MacroPerBaz"

ps la macro di pboy è più pro! "Dir(percorsoFile)" mica lo conoscevo, annoto =b
__________________
--Bacco-forever--
"ma non è il commento su di una lollina esso stesso una lollina?"

Last edited by oblivionGohma; 18th May 2016 at 15:58.
oblivionGohma is offline   Reply With Quote
Old 18th May 2016, 15:52   #7
Kiven
Registered User
 
Kiven's Avatar
 
Join Date: Mar 2011
Posts: 6,814
Is this real?
Siamo su Agorà?
__________________
Kiven is offline   Reply With Quote
Old 18th May 2016, 16:03   #8
baz*
i get things done
 
baz*'s Avatar
 
Join Date: Jul 2002
Location: Singapore
Posts: 8,261
mi da sempre "il file 12345.jpg non esiste" anche se esiste..
__________________
IL MEDICO E' UN PERSONAGGIO CHE SERVE AD AIUTARE GLI ALTRI.

NON E' UNO CHE VA IN GIRO.
baz* is offline   Reply With Quote
Old 18th May 2016, 16:10   #9
oblivionGohma
GIMPatore di vecchia data
 
oblivionGohma's Avatar
 
Join Date: Jun 2005
Location: 'n pruinsa de Bèrghem
Posts: 753
Quote:
Originally Posted by baz* View Post
mi da sempre "il file 12345.jpg non esiste" anche se esiste..
se stai testando la mia di macro prova quest'altra, ho modificato la parte di verifica esistenza file come da macro di pboy

Code:
Sub macroPerBazCorretta()

    percorsoCartella = "C:\latuacartella\" '<-- DA MODIFICARE con il percorso della TUA cartella contenente i .JPG
    
    altezzaCella = ActiveCell.Height ' legge l'altezza della cella
    larghezzaCella = ActiveCell.Width ' legge la larghezza della cella
    
    If Right(percorsoCartella, 1) <> "\" Then percorsoCartella = percorsoCartella & "\"
    nomeFile = ActiveCell.Value & ".JPG" 'il nome del file è il contenuto della cella selezionata
    
    If Len(Dir(percorsoCartella & nomeFile)) = 0 Then
        MsgBox ("Errore, il file '" & nomeFile & ".jpg' non esiste")
        Exit Sub
    End If
    
    ActiveSheet.Pictures.Insert(percorsoCartella & nomeFile). _
    Select ' inserisce l'immagine in base al percorso e nome file precedentemente indicati
    
    Selection.ShapeRange.LockAspectRatio = msoFalse ' sblocca le proporzioni dell'immagine
    Selection.Placement = xlMoveAndSize ' aggancia l'immagine alle dimensioni della cella
    Selection.ShapeRange.Height = altezzaCella ' modifica le dimensioni dell'immagine in base
    Selection.ShapeRange.Width = larghezzaCella ' ai valori letti in precedenza

End Sub
edit; mi son dimenticato di dirti che devi modificare la riga della macro percorsoCartella = "C:\latuacartella\" inserendo il TUO percorso contenente i vari file .jpg, altrimenti la macro non è che se la può sognare (;
__________________
--Bacco-forever--
"ma non è il commento su di una lollina esso stesso una lollina?"

Last edited by oblivionGohma; 24th May 2016 at 10:54.
oblivionGohma is offline   Reply With Quote
Old 18th May 2016, 16:59   #10
Mephala
oh well.
 
Mephala's Avatar
 
Join Date: Sep 2006
Location: Cesena
Posts: 6,339
Fatemi capire bene, in VBA l'operatore per concatenare le stringhe è &?
__________________
"Brother Doorkeeper?"
"METAPHORICALLY."
I'm gonna do you a favor. And not teabag you for your behavior.

Quote:
Originally Posted by TheyCalledMeMad
Looks like it's flood-the-world-with-magma o'clock.
Mephala is offline   Reply With Quote
Old 18th May 2016, 17:25   #11
baz*
i get things done
 
baz*'s Avatar
 
Join Date: Jul 2002
Location: Singapore
Posts: 8,261
grazie mille! devo sistemarci giusto due cose (che riesco a fare da me).

Comunico x correttezza che oblivion non ha voluto $$$
__________________
IL MEDICO E' UN PERSONAGGIO CHE SERVE AD AIUTARE GLI ALTRI.

NON E' UNO CHE VA IN GIRO.
baz* is offline   Reply With Quote
Old 18th May 2016, 17:32   #12
oblivionGohma
GIMPatore di vecchia data
 
oblivionGohma's Avatar
 
Join Date: Jun 2005
Location: 'n pruinsa de Bèrghem
Posts: 753
Quote:
Originally Posted by Mephala View Post
Fatemi capire bene, in VBA l'operatore per concatenare le stringhe è &?
si ma ho scoperto solo ora che anche il + va bene.
Utilizzo da sempre la & perché la appresi nella concatenazione di Excel, e nel passaggio al VBA della stessa Microsoft mi è venuto automatico concatenare con tale operatore e darlo per scontato per anni.
Vabbuò' non si finisce mai di imparare (soprattutto se non si studia e si va a tentativi da buon autodidatta!).
__________________
--Bacco-forever--
"ma non è il commento su di una lollina esso stesso una lollina?"

Last edited by oblivionGohma; 18th May 2016 at 17:33.
oblivionGohma is offline   Reply With Quote
Old 18th May 2016, 23:09   #13
luckyluke81
Registered User
 
luckyluke81's Avatar
 
Join Date: Nov 2013
Posts: 10,307
Quote:
Originally Posted by baz* View Post
grazie mille! devo sistemarci giusto due cose (che riesco a fare da me).

Comunico x correttezza che oblivion non ha voluto $$$
Dalli in beneficenza; al primo mendicante per strada dicendo "offre Oblivion"
luckyluke81 is online now   Reply With Quote
Old 19th May 2016, 00:28   #14
Kaldais
pew pew!
 
Kaldais's Avatar
 
Join Date: Apr 2002
Posts: 18,086
Quote:
Originally Posted by Mephala View Post
Fatemi capire bene, in VBA l'operatore per concatenare le stringhe è &?
Quote:
Originally Posted by oblivionGohma View Post
si ma ho scoperto solo ora che anche il + va bene.
Utilizzo da sempre la & perché la appresi nella concatenazione di Excel, e nel passaggio al VBA della stessa Microsoft mi è venuto automatico concatenare con tale operatore e darlo per scontato per anni.
Vabbuò' non si finisce mai di imparare (soprattutto se non si studia e si va a tentativi da buon autodidatta!).
Sempre per "non si finisce mai d'imparare" un piccolo appunto: l'operatore & esplode se le due variabili non sono di tipo stringa, il + invece potrebbe dare risultati inaspettati perché prova ad "aggiungere" (fa il cast automatico)
__________________
e mi chiamerò Teresa / scenderò a far la spesa / me facce crescere ‘e capille e me metto ‘e tacchi a spillo / inviterò gli amici a casa a passare una giornata / senza avere la paura che ci sia una chiamata / e uscire poi per strada e gridare so' normale / e nisciuno me dice niente, nemmeno la stradale
Kaldais is offline   Reply With Quote
Old 19th May 2016, 14:15   #15
oblivionGohma
GIMPatore di vecchia data
 
oblivionGohma's Avatar
 
Join Date: Jun 2005
Location: 'n pruinsa de Bèrghem
Posts: 753
Quote:
Originally Posted by Kaldais View Post
Sempre per "non si finisce mai d'imparare" un piccolo appunto: l'operatore & esplode se le due variabili non sono di tipo stringa, il + invece potrebbe dare risultati inaspettati perché prova ad "aggiungere" (fa il cast automatico)
mi sembra che non sia esatto, perché da sempre utilizzo la & mischiando stringhe, interi e date e il risultato della concatenazione è sempre una stringa...

esempio veloce; in Access alla modifica di un determinato campo "Filtro età" , VBA mi applica il filtro ai record mostrati nella maschera;

Private Sub field_filtroEta_AfterUpdate()
Filter = "([operai].[Eta] = " & field_filtroEta & ")"
FilterOn = True
End Sub

Ovviamente con campo field_filtroEta formattato per accogliere numeri interi e non stringhe

il + invece l'ho sempre usato solo per le formule, e capita che crashi in casi come intero = intero + stringa. Sapere che può essere usato per concatenare stringhe mi è utile solo a ricordarmi che anche nel Java e nel vecchio basic l'operatore era lo stesso.

Test:
Sub prova()

Dim i As Integer
Dim ii As String

i = 5
ii = "ciao"

MsgBox (i + ii) ' Risultato; errore di runtime "tipo non corrispondente"
MsgBox (i & ii) ' Risultato; message box con scritto "5ciao"

End Sub
__________________
--Bacco-forever--
"ma non è il commento su di una lollina esso stesso una lollina?"

Last edited by oblivionGohma; 19th May 2016 at 14:49.
oblivionGohma is offline   Reply With Quote
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 13:41.



Copyright 2017-2024 by netgamers.it