Rispetto al file gia' inviato le modifiche sono le seguenti:
a) Il codice da inserire su Modulo 1, al posto dell' attuale
- Codice: Seleziona tutto
Public CurCPAdr As String
Sub mygod()
Sheets("RAPPORTI GIORNALIERI").Select
ActiveSheet.UsedRange
Set UsedB = Intersect(ActiveSheet.UsedRange, Range("B1:B" & Rows.Count))
For Each CPart In UsedB
CPart.Range("A1, C1").Copy Destination:=Sheets("RIFERIMENTI").Range("A1")
Sheets("RIFERIMENTI").Range("B1").Value = UCase(Sheets("RIFERIMENTI").Range("b1").Value) & "#-" '<<<
Application.CutCopyMode = False
If CPart.Value = "" Then GoTo SkiPart
If Not IsNumeric(CPart.Value) Then GoTo SkiPart '<<<
CPart.Select
If Sheets("RIFERIMENTI").Range("AH1") > 0 Then
Sheets("RIFERIMENTI").Range("AJ1:AK1").Copy
CPart.Offset(0, 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Else
CurCPAdr = CPart.Address
UserForm1.Show
End If
SkiPart:
Application.CutCopyMode = False
Next CPart
End Sub
Le righe aggiunte o modificate sono marcate <<<
B) le formule per la validazione delle regole in AC34:AG34 sono rispettivamente:
- Codice: Seleziona tutto
=E(NON(VAL.ERRORE(TROVA(MAIUSC(D34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(E34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(F34);$B$1))))*E(VAL.ERRORE(TROVA(MAIUSC(G34)&SE(LUNGHEZZA(G34)=0;"#@#";"");$B$1));VAL.ERRORE(TROVA(MAIUSC(H34)&SE(LUNGHEZZA(H34)=0;"#@#";"");$B$1)))*(O(LUNGHEZZA(D34)>0;LUNGHEZZA(E34)>0;LUNGHEZZA(F34)>0))*($A34=$A$1)
=E(NON(VAL.ERRORE(TROVA(MAIUSC(I34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(J34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(K34);$B$1))))*E(VAL.ERRORE(TROVA(MAIUSC(L34)&SE(LUNGHEZZA(L34)=0;"#@#";"");$B$1));VAL.ERRORE(TROVA(MAIUSC(M34)&SE(LUNGHEZZA(M34)=0;"#@#";"");$B$1)))*(O(LUNGHEZZA(I34)>0;LUNGHEZZA(J34)>0;LUNGHEZZA(K34)>0))*($A34=$A$1)
=E(NON(VAL.ERRORE(TROVA(MAIUSC(N34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(O34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(P34);$B$1))))*E(VAL.ERRORE(TROVA(MAIUSC(Q34)&SE(LUNGHEZZA(Q34)=0;"#@#";"");$B$1));VAL.ERRORE(TROVA(MAIUSC(R34)&SE(LUNGHEZZA(R34)=0;"#@#";"");$B$1)))*(O(LUNGHEZZA(N34)>0;LUNGHEZZA(O34)>0;LUNGHEZZA(P34)>0))*($A34=$A$1)
=E(NON(VAL.ERRORE(TROVA(MAIUSC(S34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(T34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(U34);$B$1))))*E(VAL.ERRORE(TROVA(MAIUSC(V34)&SE(LUNGHEZZA(V34)=0;"#@#";"");$B$1));VAL.ERRORE(TROVA(MAIUSC(W34)&SE(LUNGHEZZA(W34)=0;"#@#";"");$B$1)))*(O(LUNGHEZZA(S34)>0;LUNGHEZZA(T34)>0;LUNGHEZZA(U34)>0))*($A34=$A$1)
=E(NON(VAL.ERRORE(TROVA(MAIUSC(X34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(Y34);$B$1)));NON(VAL.ERRORE(TROVA(MAIUSC(Z34);$B$1))))*E(VAL.ERRORE(TROVA(MAIUSC(AA34)&SE(LUNGHEZZA(AA34)=0;"#@#";"");$B$1));VAL.ERRORE(TROVA(MAIUSC(AB34)&SE(LUNGHEZZA(AB34)=0;"#@#";"");$B$1)))*(O(LUNGHEZZA(X34)>0;LUNGHEZZA(Y34)>0;LUNGHEZZA(Z34)>0))*($A34=$A$1)
Non e' cambiata la formula di col AH.
Da riga 34 copia le formule nelle altre righe contenenti le definizioni.
C) Per validare la combinazione Altro/Altro basta inserire in colonna D i due caratteri "#-" (senza virgolette).
Al momento le regole inserite nel foglio che avevi postato sono abbastanza poche, e solo 7 record vengono diversi da Altro/Altro; devi quindi definire nuove regole (ne hai 5 per ogni combinazione, a disposizione): ricorda che le prime tre colonne sono di stringhe che devono essere tutte presenti (cella vuota=valore presente) e le altre due devono ambedue mancare (cella vuota=ignora).
Ciao, fai sapere.