Moderatori: Anthony47, Flash30005
Sub MettImmZZ()
Dim mPath As String, mFoto As String, myArea As String, Cella As Range
Dim myT As Long, myL As Long, myH As Long, myCol As String, picPath As String
'
myCol = "P" '<<< La colonna dove si inseriranno le foto
mPath = "D:\provaz\pippo" '<<< Il percorso delle foto
'
myArea = Range(Range("A3"), Cells(Rows.Count, 1).End(xlUp)).Address
For Each Cella In Range(myArea)
On Error Resume Next
ActiveSheet.Shapes("FOTO_DA_" & Cella.Address(0, 0)).Delete
On Error GoTo 0
If Cella.Value <> "" Then
mFoto = Cella.Value
If Dir(mPath & "\" & mFoto & ".jpg") <> "" Then ' Si controlla se la foto esiste
Application.ScreenUpdating = False
'
myT = Cella.Top + 5
myL = Cells(Cella.Row, myCol).Left + 5
myH = Cella.Height - 5
'
Set CPic = ActiveSheet.Shapes.AddPicture(mPath & "\" & mFoto & ".jpg", False, True, myL, myT, True, True)
CPic.LockAspectRatio = msoTrue
CPic.ScaleHeight (myH / CPic.Height), msoTrue
CPic.Name = "FOTO_DA_" & Cella.Address(0, 0)
Application.ScreenUpdating = True
Else
MsgBox ("Immagine non trovata: " & Cella.Value) ' <<====== QUI scrivi il messaggio che vuoi sia inviato
End If
End If
Next Cella
MsgBox ("Completato inserimento...")
End Sub
Application.ScreenUpdating = False
'
Cella.RowHeight = 30 '<<< Aggiungi: imposta l'altezza che vuoi
myT = Cella.Top + 5
Infine, per le due istruzioni in basso è possibile creare un popup di inserimento per la prima e di selezione della cartella per la seconda?
- Codice: Seleziona tutto
myCol = "R" '<<< La colonna dove si inseriranno le foto
mPath = "C:\Temp\img" '<<< Il percorso delle foto
Rispo = Application.InputBox("In quale colonna (A-AZ) vanno posizionate le immagini?", "Rispondi", , , , , , 2)
If Rispo = False Then
MsgBox ("Processo abortito")
Exit Sub
Else
myCol = Rispo
End If
MsgBox ("Ora selezionerai la directory da cui prelevare le immagini")
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
If .SelectedItems.Count = 0 Then
MsgBox ("Nessuna voce selezionata, processo abortito")
Exit Sub
End If
mPath = .SelectedItems.Item(1)
End With
Bravo...Sono riuscito
Per non avere le interruzioni sulle immagini mancanti, modifica l'ultima parte della macro, da Else in avanti:Ultima cosa, è possibile attivare/disattivare la finestra che dice che l'immagine non è stata trovata?
Else
If Len(Missing) < 100 Then
Missing = Missing & Cella.Value & vbCrLf
Else
cippa = "....." & vbCrLf
End If
End If
End If
Next Cella
If Len(Missing) < 2 Then
myMSG = "Completato inserimento"
Else
myMSG = "Completato inserimento; immagini non trovate:" & vbCrLf & Missing & cippa
End If
MsgBox (myMSG)
End Sub
Torna a Applicazioni Office Windows
Come evidenziare aree separate di un foglio Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 18 |
Immagine visibile e in posizione definita Autore: BG66 |
Forum: Applicazioni Office Windows Risposte: 21 |
Creare/ripristinare un “Immagine di sistema” - Win 10/11 Autore: m.paolo |
Forum: Sistemi Operativi Windows Risposte: 0 |
Visitano il forum: Nessuno e 20 ospiti