Prima di esporre il mio problema ci tenevo a sottolineare che non credo affatto che il forum sia al mio servizio, ma che anzi ogni mio post è una umile richiesta di aiuto perché di certo ci sono persone molto più esperte di me nel settore che, per qualche motivo strano (e a me molto familiare) ci prendono tanto gusto quando riescono a far funzionare le cose
Detto questo, siete tutti gentilissimi e vi ringrazio sinceramente da prima!
Come al solito sono alle prese con una macro che non ne vuole sapere di funzionare come io le dico di fare (sarà che non glielo dico un granchè bene )
Provo a spiegarvi un po' il problema magari qualcuno di voi saprà illuminarmi
Ho una matrice che esprime dei legami padre figlio:
nella prima colonna (di lunghezza variabile) ci sono gli elementi padri (io li ho chiamati comp "X4:X23")
nelle righe in corrispondenza dei padri ci sono i rispettivi figli (dip = Range("Y4:AR23") ) anche queste di lunghezza variablile
per fare un esempio ho una cosa del genere:
(6) -> 7 8
(7)
(8)
ovvero nella prima colonna 6, 7 e 8 e solo nella prima riga 7 e 8. (Questo accade perché l'algoritmo che mi tira fuori queste cose deve verificare se 7 e 8 a loro volta abbiano figli, che in questo caso non ci sono)
Ora il mio obiettivo è affiancare ad ogni figlio il valore (presente in un'altra matrice) che si ottiene entrando con riga valore padre e colonna valore figlio.
Quello che mi serve è quindi entrare nella seconda riga, leggere il valore del figlio (7) vedere se questo valore è contenuto nella riga precedente e leggere il valore del padre (6).
Poi entrare nella terza, leggere il valore del figlio (8) e cercare nelle righe precedenti il valore del padre, in questo caso sempre 6.
Io ho abbozzato una cosa del genere, ma non funziona!
- Codice: Seleziona tutto
Sub giulia()
Set matr = Range("C4:V23")
Set comp = Range("X4:X23")
Set temp = Range("AS4:AS23")
Set dip = Range("Y4:AR23")
Range("AS4:AS23").Select
Selection.ClearContents
Nr = comp.rows.count
k = 1
For i = 2 To Nr
For j = 1 To Nr
If comp(i).Value = dip(k, j).Value Then
a = comp(i).Value
b = comp(k).Value
v = matr(b, a).Value
temp(i) = v
End If
Next
Next
k = k + 1
End Sub
Suppongo sia perché non so come dirgli di leggere le righe precedenti