|
Login

TOPIC: VBA da formula cerca verticale

VBA da formula cerca verticale 7 years 3 months ago #9084

  • cricriz
  • cricriz's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 10
  • Karma: 0
Grande!!!! Grazie mille!
The administrator has disabled public write access.

VBA da formula cerca verticale 7 years 3 months ago #9085

  • Canapone
  • Canapone's Avatar
  • OFFLINE
  • Platinum Boarder
  • Posts: 1346
  • Thank you received: 160
  • Karma: 108
Ciao,

grazie del riscontro.

Se devi confrontare high-medium-minor dovrebbe bastare


=SE(P7>Q7;"p";SE(P7=Q7;"w";"q"))

Uso l'ordine alfabetico secondo il quale devo invertire il segno che mi suggerirebbe la lettura delle colonne P e Q.

Fai qualche prova: dovrebbe funzionare, malgrado la povera spiegazione.


Saluti
Last Edit: 7 years 3 months ago by Canapone.
The administrator has disabled public write access.
The following user(s) said Thank You: cricriz

VBA da formula cerca verticale 7 years 3 months ago #9086

  • Canapone
  • Canapone's Avatar
  • OFFLINE
  • Platinum Boarder
  • Posts: 1346
  • Thank you received: 160
  • Karma: 108
Giusto per far ammattire i colleghi.

Saluti
The administrator has disabled public write access.

VBA da formula cerca verticale 7 years 3 months ago #9087

  • cricriz
  • cricriz's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 10
  • Karma: 0
Si infatti! Vabbé che siamo a livello che alcuni non sapevano excel potesse fungere da grande calcolatrice. ..fai te...
The administrator has disabled public write access.

VBA da formula cerca verticale 7 years 3 months ago #9089

  • Zer0Kelvin
  • Zer0Kelvin's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 11
  • Thank you received: 4
  • Karma: 2
Va bene, comunque la soluzione in VBA è possibile, appena ho tempo... :dry:
[Excel 2010]
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Dai ad un uomo un pesce e lo avrai sfamato per un giorno; insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
-Il sonno della ragione genera mostri. (Francisco Goya)
The administrator has disabled public write access.
The following user(s) said Thank You: cricriz

VBA da formula cerca verticale 7 years 3 months ago #9092

  • Zer0Kelvin
  • Zer0Kelvin's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 11
  • Thank you received: 4
  • Karma: 2
Ecco una possibile soluzione in VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Range, F As Range
    If Target.Cells.Count = 1 Then
        If Not Intersect(Target, Range("P7:Q148")) Is Nothing Then
            On Error Resume Next
            Application.EnableEvents = False
            Set R = Cells(Target.Row, 16)
            With Range("A2:A4")
                Set F = .Find(what:=R.Value, LookIn:=xlValues)
                If Not F Is Nothing Then R.Offset(0, 3) = F.Offset(0, 1)
                Set F = .Find(what:=R.Offset(0, 1).Value, LookIn:=xlValues)
                If Not F Is Nothing Then R.Offset(0, 4) = F.Offset(0, 1)
            End With
            If Cells(R.Row, 19) < Cells(R.Row, 20) Then
                R.Offset(0, 2) = "p"
            ElseIf Cells(R.Row, 19) > Cells(R.Row, 20) Then
                R.Offset(0, 2) = "q"
            Else
                R.Offset(0, 2) = "w"
            End If
            Set F = Nothing
            Set R = Nothing
            Application.EnableEvents = True
            On Error GoTo 0
        End If
    End If
End Sub
La routine in questione và inserita nel modulo di codice del foglio 1; per fare questo devi:
1) copiare il codice che ho inserito quì sopra
2) fare click col tasto destro sulla linguetta del foglio
3) selezionare "visualizza codice"
4) incollare il codice nella finestra che si è aperta
5) chiudere la finestra che si è aperta per tornare ad Excel.
La modifica sarà subito funzionante senza alcun altro intervento da parte tua.
Ogni volta che modificherai un fattore di rischio, nelle relative celle delle colonne R, S e T, il codice VBA sostituisce alle formule il valore visualizzato, ma non è un problema, in quanto le formule sono diventate inutili.
Il file con le modifiche dovrà obbligatoriamente essere salvato in un formato diverso.
Il formato del file che hai allegato al post è .xlsx che è il formato Excel 2007-2010 senza macro.
Dovrai salvare in uno dei seguenti formati: .xlsm (file Excel 2007-2010 con macro); .xlsb (file binario di Excel); oppure .xls (formato Excel 2003)
L'utilizzatore dovrà avere le macro attivate (o perlomeno non disattivate completamente) sul suo Excel.
Per attivare le macro occorre (le istruzioni sono per Excel 2010, per Excel 2007 sono praticamente identiche):
1) attivare il menù File
2) cliccare "Opzioni"
3) cliccare "centro protezione"
4) cliccare "impostazioni centro protezione"
5) cliccare "impostazioni macro"
6) nella scheda "impostazioni macro" selezionare una delle seguenti opzioni:
(opzione 1) Disattiva tutte le macro con notifica
(opzione 2) Attiva tutte le macro ...
Se si seleziona l'opzione 1 all'apertura del file comparirà un avviso che recita così:
Avviso di sicurezza le macro sono state disattivate
seguito dal pulsante [Abilita contenuto]
L'utente dovrà cliccare sul pulsante per attivare il codice Visual Basic
Se si seleziona l'opzione 2 (preferibile, a mio parere, malgrado l'avviso allarmistico di Microsoft) l'utente non dovrà compiere alcuna azione aggiuntiva.

PS: per sicurezza è sempre meglio, prima di qualunque prova, creare una copia di backup del tuo file. Teoricamente non c'è nulla che possa andare storto, ma non si sà mai...
[Excel 2010]
-Condividere la conoscenza aumenta la ricchezza di tutti.
-Dai ad un uomo un pesce e lo avrai sfamato per un giorno; insegnagli a pescare e lo avrai sfamato per sempre. (Confucio)
-Il sonno della ragione genera mostri. (Francisco Goya)
Last Edit: 7 years 3 months ago by Zer0Kelvin.
The administrator has disabled public write access.
Time to create page: 0.441 seconds