Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Paolo,
grazie per il tuo aiuto,
ho applicato le modifiche che mi hai proposto, con integrazione del suggerimento di Eleuterio.
La macro non genera nessun codiceQR sull'evento change del foglio6.
Con questa lo genera e lo porta in B31, le celle che originano B30 sono altre, per cui il target va incrociato con un altro intervallo:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xObjOLE As OLEObject, shpTemp As Shape
' Verifica se la modifica è avvenuta in B30
If Not Intersect(Target, Range("D7:J7")) Is Nothing Then
On Error GoTo Xit
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each shpTemp In ActiveSheet.Shapes
shpTemp.Delete
Next shpTemp
' Crea il QR code
Set xObjOLE = Me.OLEObjects.Add("BARCODE.BarCodeCtrl.1")
With xObjOLE
.Object.Style = 11
.Object.Value = Range("B30")
End With
' Copia il QR code in B31
With ActiveSheet
.Shapes.Item(xObjOLE.Name).Copy
.Paste Range("B31")
With .Shapes(.Shapes.Count)
.Width = 144.75
.Height = 120.75
End With
End With
' Elimina l'oggetto OLE temporaneo
xObjOLE.Delete
End If
Xit:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Ciao.