Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao John,
Ho un foglio excel con 1000 righe contenenti codici alfanumerici tutti diversi.
Il foglio è diviso in due colonne: "A" per quanto riguarda i codici e "B" per quanto riguarda l'immagine corrispondente.
Come faccio per inserire l'immagine corrispondente ad ogni riga?
I codici sono in ordine alfabetico e anche le immagini dato che TUTTE hanno il nome del codice corrispondente.
Il risultato dovrebbe essere questo:
ABC1234abc1234 immagine_ABC1234abc1234 DEF5678def5678 immagine_DEF5678def5678 GHI1234ghi1234 immagine_GHI1234ghi1234 Capirete che i codici sono 1000! Non posso inserire le immagini una ad una...
- Alt+F11 per aprire l'editor di VBA
- Alt+IMper inserire un nuovo modulo di codice
- Nel nuovo modulo vuoto, incolla il seguente codice:
'=========>>
Option Explicit
'--------->>
Public Sub Tester()
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range, rCell As Range
Dim myPic As Picture
Dim sStr As String
Dim LRow As Long
Dim CalcMode As Long
Const sNomeFoglio As String = "Foglio1" '<<=== Modifica
Const sPercorsoImagine As String = _
"**C:\Users\Ndj\Documents**" '<<=== Modifica
Set WB = ThisWorkbook
Set SH = WB.Sheets(sNomeFoglio)
With SH
LRow = LastRow(SH, .Columns("A:A"))
Set Rng = .Range("A1:A" & LRow)
End With
For Each rCell In Rng.Cells
With rCell
sStr = sPercorsoImagine & .Value & ".jpg"
Set myPic = SH.Pictures.Insert(sStr)
myPic.Top = .Offset(0, 1).Top
myPic.Left = .Offset(0, 1).Left
.RowHeight = myPic.Height
End With
Next rCell
XIT:
End Sub
'--------->>
Public Function LastRow(SH As Worksheet, _
Optional Rng As Range, _
Optional minRow As Long = 1)
If Rng Is Nothing Then
Set Rng = SH.Cells
End If
On Error Resume Next
LastRow = Rng.Find(What:="*", _
after:=Rng.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
If LastRow < minRow Then
LastRow = minRow
End If
End Function
'<<=========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel
- Salva il file con l’estensione xlsm
- Alt+F8 per aprire la finestra di gestione delle macro
- Seleziona Tester | Esegui
===
Regards,
Norman