sto iniziando un nuovo progetto ma ho già difficoltà con una macro.
mediante una macro trova, cerco e coloro alcuni valori in un range C-L.
a seconda della quantità di valori trovati su una riga, questi assumono un colore diverso;
se ad esempio vi è un solo numero si ha il colore rosso, se si hanno 2 valori il colore è verde...
questa stessa macro memorizza in un array l'address della prima cella colorata per ogni riga.
fino a qui nessun problema.
quello che sto cercando di realizzare è che ad ogni click sulle celle del range P2:P7 vengano selezionate le prime celle
aventi lo stesso colore poste sulle diverse righe, cioè quelle corrispondenti agli address memorizzati nell'array.
se ad esempio clicco su P2 deve essere selezionata la prima cella di colore rosso nel range C-L ;
ad un click successivo deve essere selezionata la cella successiva dello stesso colore.
così al click su P3 deve essere selezionata la prima cella del range C-L di colore verde;
nel modulo del foglio ho inserito questa macro:
- Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fine
With Worksheets("Foglio1")
If Not Intersect(Target, .Range("P2:P7")) Is Nothing Then
If ActiveCell.Interior.ColorIndex = xlNone Then Exit Sub
Miocol = ActiveCell.Interior.ColorIndex
SUCCESSIVI
End If
End With
Letscontinue:
Exit Sub
Fine:
MsgBox Err.Description
Resume Letscontinue
End Sub
invece in un modulo generico ho inserito questa macro:
- Codice: Seleziona tutto
Sub SUCCESSIVI()
With Worksheets("Foglio1")
-------------------------------
Select Case Miocol
Case Is = 3
-------------------------------
-------------------------------
CelAdr = ActiveCell.Address(RowAbsolute:=False, _
ColumnAbsolute:=False)
For Item = LBound(Ar2) To UBound(Ar2)
Adr = Ar2(Item)
If Item = UBound(Ar2) Then GoTo FineAdr
If CelAdr = Adr Then
Adr = Ar2(Item + 1)
FineAdr:
.Range(Adr).Select
Exit Sub
End If
Next Item
End With
End Sub
essendo Ar2 l'array degli address.
la macro SUCCESSIVI funziona se isolata dall'evento SelectionChange, ma in combinazione
vengono selezionate tutte le celle dello stesso colore
fino a raggiungere l'ultima.
non riesco a modificare le macro per raggiungere lo scopo.
forse una diversa soluzione rispetto all'array potrebbe risultare più semplice?
ciao e grazie