Ho guardato il file pubblicato da robygragio.
Chiaramente l' evento Worksheet_Change non si innesca quando una formula ricalcola un valore; e poiche' i nomi delle squadre finiscono in quelle celle per delle formule allora la macro che dovrebbe mettere le immagini non scatta.
Comunque, visto che aggiorni la classifica con la macro Workbook_SheetChange, ti suggerisco di inserire in questa stessa macro anche la compilazione degli Ottavi con relative bandiere.
Per il gruppo A questo vuol dire accodare a queste istruzioni (gia' presenti)
Range("N4:V7").Calculate
Range("N4:V7").Sort Key1:=Range("P4"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Queste ulteriori
- Codice: Seleziona tutto
If [Q4] + [Q5] + [Q6] + [Q7] = 12 Then
'si compilano le celle degli ottavi:
Range("d78").Value = Range("O4").Value 'In quale cella va il primo del girone
Range("NON LO SO").Value = Range("O5").Value 'In quale cella va il secondo del girone?
'In queste prossime istruzioni bisogna indicare da quale cella va prelevata l' immagine e in quale va copiata:
Call copImm("N4", "C78") 'prima del girone
Call copImm("N5", "NON LO SO") 'seconda del girone
End If
Analoga aggiunta va fatta per ognuno degli altri blocchi cheaggiornano e ordinano la classifica di ogni girone.
Tutte le aggiunte richiamano una " Sub copImm" che va inserita o nello stesso modulo che poi la richiama oppure in un "Modulo" standard, es Modulo1, e che corrisponde a questo codice:
- Codice: Seleziona tutto
Sub copImm(ByRef Sorg As String, ByRef Dest As String)
On Error Resume Next
ActiveSheet.Shapes("ZC_" & Dest).Delete
On Error GoTo 0
'
For Each Sh In ActiveSheet.Shapes
aaa = Sh.TopLeftCell.Address(0, 0)
If Sh.TopLeftCell.Address(0, 0) = Sorg Then
Sh.Copy
Range(Dest).Select
ActiveSheet.Paste
Selection.Name = "ZC_" & Dest
Range(Dest).Select
Exit For
End If
Next Sh
End Sub
In questo modo puoi fare a meno della Sub Worksheet_Change (che scatterebbe solo con input da tastiera), oltre che della componente che doveva cancellare le immagini prima di copiarne altre nella stessa posizione.
Ciao