Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 30 di 42

Discussione: Gestire evento di una singola cella



  1. #1
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    LocalitÓ
    Roma
    EtÓ
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61

    Gestire evento di una singola cella

    Ciao a tutti,
    vorrei gestire la presenza o meno nella cella B1 ed applicare quindi il filtro laddove ci sia qualcosa.
    Ho fatto questo
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)    
    If Target.Address = Range("B1").Address Then
                If Range("B1").Value = "" Then
                    Selection.AutoFilter
                Exit Sub
                End If
            Call Filter_Name
        End If
    End Sub
     
    'che richiama questo
    
    Sub Filter_Name()
    Dim SH As Worksheet
    Dim WB As Workbook
    Set WB = ThisWorkbook
    Set SH = WB.Sheets("db")
    myCrit = SH.Range("B1").Value
    Range("A2").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=4, Criteria1:="=*" & myCrit & "*", Operator:=xlAnd
    Range("B3").Select
    End Sub
    Ci˛ che vorrei Ŕ: se inserisci un qualcosa in B1 si attiva il filtro e lo cerca...come cancelli quel qualcosa in B1 si toglie il filtro e tutto torna come prima.
    Quello che vorrei Ŕ che se io faccio canc in B1 e do invio il filtro si togliesse...
    Faccio altre prove...
    Grazie anche per dei consigli.
    ciao
    ale

  2. #2
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    LocalitÓ
    Livorno
    EtÓ
    72
    Messaggi
    1104
    Versione Office
    2010
    Likes ricevuti
    141
    Likes dati
    1

    Re: Gestire evento di una singola cella

    se usi Selection.AutoFilter la cella selezionata dopo il Canc non Ŕ B1, ma B2

  3. #3
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    LocalitÓ
    ferrara
    EtÓ
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da Alessandro Visualizza Messaggio
    Ciao a tutti,
    vorrei gestire la presenza o meno nella cella B1 ed applicare quindi il filtro laddove ci sia qualcosa.
    Ho fatto questo

    Ci˛ che vorrei Ŕ: se inserisci un qualcosa in B1 si attiva il filtro e lo cerca...come cancelli quel qualcosa in B1 si toglie il filtro e tutto torna come prima.
    Quello che vorrei Ŕ che se io faccio canc in B1 e do invio il filtro si togliesse...
    Faccio altre prove...
    Grazie anche per dei consigli.
    ciao
    ale
    Patel ti ha dato un buono spunto ma io rigirerei un p˛ di pi¨ il coltello nella piaga:

    - Indentare Ŕ importantissimo per chi legge e cerca di capire. Quindi cerca di impegnarti nell indentare perchŔ riesci a tradurre meglio quello che vuoi far fare al pc.

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = Range("B1").Address Then
            If Range("B1").Value = "" Then
                Selection.AutoFilter
                Exit Sub
            End If
            Call Filter_Name
        End If
    End Sub
    - Sei consapevole di dove ti trovi? quale PRIVATE SUB stai popolando di istruzioni? (il colore dovrebbe aiutarti

    - Conosci il legame che esiste tra Target e Selection nel momento in cui il flusso si trova dentro questa SottoProcedura? (prova ad interrogare la finestra immediato mentre con F8 ti trovi dentro questa Sub)

    - Sei sicuro di utilizzare bene l' istruzione AUTOFILTER? vuoi davvero filtrare una sola cella? Ŕ possibile farlo? (se ho una cassa di mele posso cernire le pi¨ belle ma se ne ho solo una?)


    -PerchŔ utilizzi Exit Sub? Se non lo metti che cosa succede?

  4. I seguenti utenti hanno dato un "Like"


  5. #4
    L'avatar di Cuc¨^_^
    Clicca e Apri
    Data Registrazione
    Jun 2016
    LocalitÓ
    TrentoGallipoliTaranto
    EtÓ
    46
    Messaggi
    309
    Versione Office
    2010
    Likes ricevuti
    57
    Likes dati
    17

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio

    - Sei consapevole di dove ti trovi? quale PRIVATE SUB stai popolando di istruzioni? (il colore dovrebbe aiutarti

    - Conosci il legame che esiste tra Target e Selection nel momento in cui il flusso si trova dentro questa SottoProcedura? (prova ad interrogare la finestra immediato mentre con F8 ti trovi dentro questa Sub)

    - Sei sicuro di utilizzare bene l' istruzione AUTOFILTER? vuoi davvero filtrare una sola cella? Ŕ possibile farlo? (se ho una cassa di mele posso cernire le pi¨ belle ma se ne ho solo una?)


    -PerchŔ utilizzi Exit Sub? Se non lo metti che cosa succede?
    A tutte queste domande del tutto lecite aggiungerei... i due If sono necessari o si potrebbe utilizzare una variabile booleana per verificare le 2 condizioni?

  6. #5
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    LocalitÓ
    ferrara
    EtÓ
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da Cuc¨^_^ Visualizza Messaggio
    i due If sono necessari o si potrebbe utilizzare una variabile booleana per verificare le 2 condizioni?
    pi¨ che variabile forse intendi operatore booleano. comunque, a mio avviso: Si. sono necessari.

    serve un filtro per entrare solo se target Ŕ una sola cella
    serve un filtro per detrminare se quella sola cella Ŕ B1
    serve un filtro per determinare cosa accada con stringa nulla e cosa accade con stringa non nulla.

    l ultimo annidamento non Ŕ nell evento ma nella sub filter_name()

    i primi due servono perche il luogo in cui si sta operando sarÓ certamente interessato da altri target oltre a B1 e se non lo Ŕ ora lo sarÓ poi.

  7. #6
    L'avatar di Cuc¨^_^
    Clicca e Apri
    Data Registrazione
    Jun 2016
    LocalitÓ
    TrentoGallipoliTaranto
    EtÓ
    46
    Messaggi
    309
    Versione Office
    2010
    Likes ricevuti
    57
    Likes dati
    17

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio
    pi¨ che variabile forse intendi operatore booleano. comunque, a mio avviso: Si. sono necessari.
    In effetti intendevo "operatore" anche se nessuno ci vieta di utilizzare una variabile booleana per testare 2 condizioni...
    In linea di massima per˛... (ammetto di non aver letto tutta la discussione) Ŕ sempre meglio scrivere:

    Codice: 
    
    If A>b and A =5 then...
    
    'che
    
    if A >b then
    
       if a=5 then...

  8. #7
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    LocalitÓ
    ferrara
    EtÓ
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da Cuc¨^_^ Visualizza Messaggio
    Ŕ sempre meglio scrivere:
    Codice: 
    If A>b and A =5 then...
       'che
    if A >b then
       if a=5 then...
    E' quel "sempre" che stona. quale tipo di espressione utilizzi per fare questo?

    Codice: 
    If a > b Then
        If a = 5 Then
            ' fai qualcosa
        Else
            ' fai qualcos' altro
        End If
    End If


    Comunque io la vedo cosý:

    Supponendo che il range da filtrare sia la colonna A1:A8 e che la cella che funge da filtro sia la B1

    Excel 2010 32 bit
    A
    B
    1
    Intestazione
    2
    foca
    3
    forca
    4
    formaggio
    5
    maggio
    6
    gioco
    7
    corda
    8
    dardo

    dove, per esempio, se si digita "gio" in B1 e si preme invio:

    Excel 2010 32 bit
    A
    B
    1
    Intestazione gio
    4
    formaggio
    5
    maggio
    6
    gioco


    se si seleziona la cella B1 e poi si cancella con CANC si ritorna alla colonna intera:

    Excel 2010 32 bit
    A
    B
    1
    Intestazione
    2
    foca
    3
    forca
    4
    formaggio
    5
    maggio
    6
    gioco
    7
    corda
    8
    dardo



    L' evento Ŕ, appunto, Private Sub Worksheet_Change(ByVal Target As Range) ... End Sub
    Il target Ŕ la cella che si ha appena modificato e che scatena l' evento change. A noi serve intercettare solo ed esclusivamente B1:

    Quindi dobbiamo inserire una condizione:

    Se il target interseca la cella che ci interessa allora facciamo quello che dobbiamo fare


    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("B1")) Is Nothing Then
            'Facciamo quello che dobbiamo fare
        End If
    End Sub
    'Nei listati che si vedono spesso, va tenuto conto se il target Ŕ mono o pluricella. perchŔ ci vuole un attimo ad andare in debug, per esempio selezionando e cancellando tutte le celle ed avendo una qualche istruzone che contempli Target.cells.count.

    Quindi, la struttura generale nell' intercettare un evento come in questo caso Ŕ:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If (Target.Rows.Count = 1) And (Target.Columns.Count = 1) Then
            If Not Intersect(Target, Range("B1")) Is Nothing Then
                'Facciamo quello che dobbiamo fare
            ElseIf
    
            Else
    
            End If
        ElseIf
    
        Else
    
        End If
    End Sub
    Nel casoil target sia B1, dicevamo che volevamo filtrare un qualche range di celle. Quale? io ho utilizzato le celle A1:A8 per fare un esempio. l' autore del topic dovrÓ inserire le proprie.

    Quindi:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If (Target.Rows.Count = 1) And (Target.Columns.Count = 1) Then
            If Not Intersect(Target, Range("B1")) Is Nothing Then
                Range("A1:A8")  'Punto qualcosa...
            End If
        End If
    End Sub
    che metodo di range vogliamo applicare?
    parliamo di filtri.. sarÓ Autofilter..

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If (Target.Rows.Count = 1) And (Target.Columns.Count = 1) Then
            If Not Intersect(Target, Range("B1")) Is Nothing Then
                Range("A1:A8").AutoFilter Field:=1, Criteria1:="*" & Target.Value & "*", Operator:=xlAnd
            End If
        End If
    End Sub
    Il criterio Ŕ che il valore della cella B1 sia una stringa contenuta nelle stringhe delle celle da filtrare. B1, l' ho evidenziato dello stesso colore di Target perchŔ in questo contesto sono la la stessa cosa.
    Siamo nella sub routine dedicata all' evento change. in questa routine viene passato un argomento che Ŕ proprio la cella che si sta modificando e se la si sta modificando allora Ŕ anche la cella selezionata.
    In questo contesto ed in questo momento:

    Selection, Range("B1") e Target, sono la stessa cosa.

    E' sbagliato utilizzare selection in questo contesto. Vanno SEMPRE utilizzati gli argomenti disponibili prima di altro. Sono li apposta!


    Alessandro ha spezzato il listato in due tronconi: la Private Sub _change e da li ha richiamato la Sub Filter_Name()

    Nella filter_Name aveva bisogno di accedere alle informazioni della cella B1 ed ha commesso un algtro errore. Non grave ma sempre concettualmente sbagliato.

    Il flusso del programma Ŕ finito dentro un evento. in quell' evento Ŕ stato passato il Target e deve sempre essere esso, il target, ad essere passato alla nostro secondo troncone di programma, la nostra sottoprocedura.

    Le Sub e le Function, Le Procedure, detto in generale, o le macro se ci piace di pi¨, hanno la possibilitÓ di essere costruite con l' aggiunta di argomenti. Essi sono le variabili che, quando richiamiamo la procedura, passiamo dentro ad essa.

    Se volessimo separare comunque la nostra unica riga di istruzioni per metterla dentro una sub a parte dobbiamo prima chiederci di cosa ha bisogno quella parte del listato per funzionare e poi costruire la sub con i relativi argomenti.

    Prendiamo l' istruzione da sola ed evidenziamo quello che serve:

    Range("A1:A8").AutoFilter Field:=1, Criteria1:="*" & Target.Value & "*", Operator:=xlAnd

    Proprio cos'. Ci serve un argomento per passare un range ed un argomento per passare una stringa.

    la nostra sottoprocedura quindi, sarÓ cosý formata:

    Codice: 
    Private Sub Filter_menu(CelleDaFiltrare As Range, Criterio As String)
    
    
    End Sub
    Quindi dovremmo cambiare la nostra istruzione tenendo conto dei nuovi nomi assegnati:

    Codice: 
    Private Sub Filter_menu(CelleDaFiltrare As Range, Criterio As String)
        CelleDaFiltrare.AutoFilter Field:=1, Criteria1:=Criterio , Operator:=xlAnd
    End Sub

    e, al posto dell' istruzione nella procedura legata all' evento, dovremmo chiamare la nostra sottoprocedura e passargli anche i relativi dati

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If (Target.Rows.Count = 1) And (Target.Columns.Count = 1) Then
            If Not Intersect(Target, Range("B1")) Is Nothing Then
                Filter_Menu CelleDaFiltrare:=Range("A1:A8"), Criterio:= "*" & Target.value & "*"
            End If
        End If
    End Sub


    Dando luogo al listato completo:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
        If (Target.Rows.Count = 1) And (Target.Columns.Count = 1) Then
            If Not Intersect(Target, Range("B1")) Is Nothing Then
                Filter_menu CelleDaFiltrare:=Range("A1:A8"), Criterio:="*" & Target.Value & "*"
            End If
        End If
    End Sub
    
    
    Private Sub Filter_menu(CelleDaFiltrare As Range, Criterio As String)
        CelleDaFiltrare.AutoFilter Field:=1, Criteria1:=Criterio, Operator:=xlAnd
    End Sub
    Dichiarare Private le varie Function e Sub, all' interno di un progetto Ŕ molto importante. le variabili vanno sempre tenute nello stato di visibilitÓ minore possibile per scongiurare sempre un loro utilizzo scorretto. Certo, non Ŕ questo il caso di possibili errori ma Ŕ l' abitudine nel farlo sempre che poi porta a costruire buoni progetti stabili

    ...

    Forse, in questo caso, se solo per un fatto di ordine, avere separato il filtro dall evento, fa pi¨ bene che male, per˛ Ŕ possibile affermare:
    Se si costruiscono procedure in questo modo, esse sono riutilizzabili in pi¨ parti del programma. Per esempio, gia cosý come si presenta, la Private Sub Filter_menu(CelleDaFiltrare As Range, Criterio As String) Ŕ utilizzabile anche per filtrare altri range posizionati all' interno dello stesso foglio.

    speriamo si sia sbloccato il lucchetto della porta
    File Allegati File Allegati

  9. I seguenti 3 utenti hanno dato un "Like" a dracoscrigno per questo post:


  10. #8
    L'avatar di Cuc¨^_^
    Clicca e Apri
    Data Registrazione
    Jun 2016
    LocalitÓ
    TrentoGallipoliTaranto
    EtÓ
    46
    Messaggi
    309
    Versione Office
    2010
    Likes ricevuti
    57
    Likes dati
    17

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio
    E' quel "sempre" che stona. quale tipo di espressione utilizzi per fare questo?

    Codice: 
    If a > b Then
        If a = 5 Then
            ' fai qualcosa
        Else
            ' fai qualcos' altro
        End If
    End If
    Nessuna... visto che il mio suggerimento e quindi quel "sempre" Ŕ contestualizzato al codice scritto da Alessandro #1 e quindi io in una situazione del genere utilizzerei "sempre" un And anzichŔ 2 codizioni if. (non mi sembra di vedere un else dopo il secondo If)

  11. #9
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    LocalitÓ
    Roma
    EtÓ
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61

    Re: Gestire evento di una singola cella

    Buongiorno a tutti,
    non pensavo davvero ci fossero tutti questi riscontri.
    Chiedo venia per non aver inserito alcun file di spiegazioni (cosa che sto facendo).
    Questo a fatto si che ci fossero delle interpretazioni non del tutto azzeccate (colpa mia nel sottovalutare alcuni aspetti e nel non dirvi esattamente tutto).
    In pratica, come scritto nel file alleagto, vorrei che nella tabella non ci sia alcun filtro e che questo si attivi solo se all'interno di B1 ci sia qualcosa (per ritornare poi alla tabella senza filtro quando si cancella la ricerca fatta o cmq quando B1 Ŕ blanc).
    ciao
    ale
    File Allegati File Allegati

  12. #10
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    LocalitÓ
    ferrara
    EtÓ
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Gestire evento di una singola cella

    scusa cucu. ma non fa quanto chiedi quello che ho postato qui sopra?

  13. #11
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    LocalitÓ
    Roma
    EtÓ
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio
    scusa cucu. ma non fa quanto chiedi quello che ho postato qui sopra?
    si lo fa...solo che quando faccio canc il filtro rimane attivo...vorrei se possibile anche disattivare il filtro laddove B1 sia blanc.

  14. #12

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Ciao,

    Citazione Originariamente Scritto da Cuc¨^_^
    In linea di massima per˛... (ammetto di non aver letto tutta la discussione) Ŕ sempre meglio scrivere:
    Codice: 
    If A>b and A =5 then...
    
    'che
    
    if A >b then
    
       if a=5 then...

    Citazione Originariamente Scritto da Cuc¨^_^ Visualizza Messaggio
    Nessuna... visto che il mio suggerimento e quindi quel "sempre" Ŕ contestualizzato al codice scritto da Alessandro #1 e quindi io in una situazione del genere utilizzerei "sempre" un And anzichŔ 2 codizioni if. (non mi sembra di vedere un else dopo il secondo If)
    a dire il vero io andrei cauto su questo punto perchÚ, al contrario di altri linguaggi di programmazione (C, Javascript ...), il VBA valuta comunque TUTTE le condizioni: anche se la prima Ŕ FALSA, valuta anche la seconda e la terza etc ....., mentre con IF annidati, se il primo IF Ŕ FALSO si evita il controllo degli altri.

    Bisogna avere sempre ben presente questo comportamento perchÚ se l'esecuzione del test a destra dell'AND, nel caso in cui il test a sinistra restituisse FALSO, producesse un errore interverrebbe il debugger. Esempio banale:

    Codice: 
    Sub prova()
      If IsNumeric(Range("A1")) And Range("A1") * 2 > 10 Then
        MsgBox "test ok"
      End If
    End Sub
    se in A1 c'Ŕ un testo ("Pippo"), nonostante IsNumeric restituisca FALSE, verrebbe verificato anche il prodotto di "Pippo" * 2 con ovvio errore.


    Oltretutto "complicare" il test dell'IF con operatori logici comporta, in linea teorica ma anche pratica (anche se magari parliamo di centesimi di millesimo di secondo), un aumento dei tempi di esecuzione, vedi codice di esempio sotto, dove l'uso dell'AND porta ad un raddoppio del tempo dell'esecuzione:

    Codice: 
    '-------------- copy & paste in a standard module ---------------
    '
    'MicroTimer function
    'Found on the net
    '
    #If VBA7 Then
    
      Private Declare PtrSafe Function getFrequency _
                  Lib "kernel32" _
                  Alias "QueryPerformanceFrequency" ( _
                  cyFrequency As Currency) _
                  As Long
      
      
      Private Declare PtrSafe Function getTickCount _
                  Lib "kernel32" _
                  Alias "QueryPerformanceCounter" _
                  (cyTickCount As Currency) _
                  As Long
    #Else
      Private Declare Function getFrequency _
                  Lib "kernel32" _
                  Alias "QueryPerformanceFrequency" ( _
                  cyFrequency As Currency) _
                  As Long
      
      
      Private Declare Function getTickCount _
                  Lib "kernel32" _
                  Alias "QueryPerformanceCounter" _
                  (cyTickCount As Currency) _
                  As Long
    #End If
    
    
    
    Public Function MicroTimer() As Double
        Dim cyTicks1 As Currency
        Static cyFrequency As Currency
        MicroTimer = 0
        If cyFrequency = 0 Then getFrequency cyFrequency
        getTickCount cyTicks1
        If cyFrequency Then MicroTimer = cyTicks1 / cyFrequency
    End Function
    
    Sub prova()
        Dim nStart1 As Double, nStop1 As Double
        Dim nStart2 As Double, nStop2 As Double
        Dim j As Long, nRnd As Single
        
        nStart1 = MicroTimer
        For j = 1 To 10000
          If (VBA.Rnd() > VBA.Rnd() + 1) And (VBA.Rnd() < VBA.Rnd() - 1) Then
            Debug.Print j
          End If
        Next
        nStop1 = MicroTimer
        nStart2 = MicroTimer
        For j = 1 To 10000
          If (VBA.Rnd() > VBA.Rnd() + 1) Then
            If (VBA.Rnd() < VBA.Rnd() - 1) Then
              Debug.Print j
            End If
          End If
        Next
        nStop2 = MicroTimer
        Debug.Print (nStop1 - nStart1) 
        Debug.Print (nStop2 - nStart2) 
    End Sub
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  15. I seguenti utenti hanno dato un "Like"


  16. #13
    L'avatar di Cuc¨^_^
    Clicca e Apri
    Data Registrazione
    Jun 2016
    LocalitÓ
    TrentoGallipoliTaranto
    EtÓ
    46
    Messaggi
    309
    Versione Office
    2010
    Likes ricevuti
    57
    Likes dati
    17

    Re: Gestire evento di una singola cella

    Da te scossa c'Ŕ sempre da imparare...
    Concordo con l'essere sempre cauto nella scrittura del codice poichŔ l'utente finale sicuramente riuscirÓ, prima o poi, a metterlo in crisi ^_^
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    a dire il vero io andrei cauto su questo punto perchÚ, al contrario di altri linguaggi di programmazione (C, Javascript ...), il VBA valuta comunque TUTTE le condizioni: anche se la prima Ŕ FALSA, valuta anche la seconda e la terza etc ....., mentre con IF annidati, se il primo IF Ŕ FALSO si evita il controllo degli altri.
    Ma allo stesso tempo se hai 3 condizioni IF e solo la terza Ŕ falsa, questo comporta una verifica dei primi due "inutilmente"... ma potrebbero essere anche molti pi¨ di due...


    Oltretutto "complicare" il test dell'IF con operatori logici comporta, in linea teorica ma anche pratica (anche se magari parliamo di centesimi di millesimo di secondo), un aumento dei tempi di esecuzione, vedi codice di esempio sotto, dove l'uso dell'AND porta ad un raddoppio del tempo dell'esecuzione:
    Ma se tutti questi if nidificati non comportano un aumento del tempo di esecuzione (come ho sempre creduto, in attesa di un mio approfondimento in materia) a questo punto la domanda che nasce spontanea Ŕ:
    Allora perchŔ utilizzare gli operatori booleani???

  17. #14
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    LocalitÓ
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da Cuc¨^_^ Visualizza Messaggio
    a questo punto la domanda che nasce spontanea Ŕ:
    Allora perchŔ utilizzare gli operatori booleani???
    prima di tutto mi agli intervenuti alla discussione coi quali non mi sogno nemmeno di "parlare seriamente di Excel":
    dovrei solo ascolatare.

    Poi,
    se non ho capito male il "messaggio" di Marco,
    non credo che la questione sia l' "errrato utilizzo" degli operatori booleani, utilizzabili in molte occasioni con risultati efficienti,

    ma che volesse evidenziare l'importanza di individuare lo "strumento pi¨ idoneo" alla risoluzione del problema di cui si cerca soluzione,
    cercando di prevedere/prevenire gli "utilizzi maldestri" dell'utente finale.

    Praticamente una lotta impari....

    ciao
    Frank
    Excel 2007 win7 - Ogni Progetto Ŕ composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  18. #15

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da Cuc¨^_^ Visualizza Messaggio
    Ma allo stesso tempo se hai 3 condizioni IF e solo la terza Ŕ falsa, questo comporta una verifica dei primi due "inutilmente"... ma potrebbero essere anche molti pi¨ di due...
    La differenza tra gli IF nidificati e il test pluri-condizioni, nel caso pi¨ sfavorevole (ultimo IF falso) Ŕ minima (0,3 millesimi pi¨ lenta rispetto a quasi il doppio pi¨ veloce della condizione pi¨ favorevole); accoda il seguente codice a quello giÓ postato e potrai verificarlo:

    Codice: 
    Sub prova2()
        Dim nStart1 As Double, nStop1 As Double
        Dim nStart2 As Double, nStop2 As Double
        Dim j As Long, nRnd As Single
        
        nStart1 = MicroTimer
        For j = 1 To 10000
          If (VBA.Rnd() < VBA.Rnd() + 1) And (VBA.Rnd() > VBA.Rnd() - 1) Then
            'Debug.Print j
          End If
        Next
        nStop1 = MicroTimer
        nStart2 = MicroTimer
        For j = 1 To 10000
          If (VBA.Rnd() < VBA.Rnd() + 1) Then
            If (VBA.Rnd() > VBA.Rnd() - 1) Then
              'Debug.Print j
            End If
          End If
        Next
        nStop2 = MicroTimer
        Debug.Print (nStop1 - nStart1)
        Debug.Print (nStop2 - nStart2)
    End Sub





    Tornando al problema di Alessandro, se ho capito quello che chiede, e modificando il minimo indispensabile il codice presente nel file:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
          If Target.Cells(1).Address(0, 0) = "B1" Then
            If Target.Cells(1).Value = vbNullString Then
              Range("D3:D10").AutoFilter
            Else
              Filter_menu CelleDaFiltrare:=Range("D3:D10"), Criterio:="*" & Target.Cells(1).Value & "*"
            End If
          End If
    End Sub
    
    Private Sub Filter_menu(CelleDaFiltrare As Range, Criterio As String)
        CelleDaFiltrare.AutoFilter Field:=1, Criteria1:=Criterio, Operator:=xlAnd
    End Sub
    Ultima modifica fatta da:scossa; 16/09/16 alle 22:20
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  19. #16

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da Cuc¨^_^ Visualizza Messaggio
    Ma se tutti questi if nidificati non comportano un aumento del tempo di esecuzione (come ho sempre creduto, in attesa di un mio approfondimento in materia) a questo punto la domanda che nasce spontanea Ŕ:
    Allora perchŔ utilizzare gli operatori booleani???
    PerchÚ, se a fronte di una prestazione solo di pochi decimi o anche di pochi secondi pi¨ lenta, si ha un beneficio in termini di chiarezza ( e perchÚ no, di eleganza) del codice e di facilitÓ di manutenzione (Ŕ sicuramente pi¨ facile capire un'operazione booleana che non seguire il flusso di 3 o 4 if nidificati), personalmente opto per gli operatori logici (io ho detto di andare cauto non di non usarli).
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  20. #17

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da tanimon Visualizza Messaggio
    ... ma che volesse evidenziare l'importanza di individuare lo "strumento pi¨ idoneo" alla risoluzione del problema di cui si cerca soluzione, cercando di prevedere/prevenire gli "utilizzi maldestri" dell'utente finale.
    Esatto, bisognerebbe sempre valutare quale parametro sia pi¨ importante in un certo contesto: velocitÓ o soliditÓ, perchÚ non sempre i vantaggi di uno compensano gli svantaggi dell'altro, anche se spesso vanno a braccetto.
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  21. #18
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    LocalitÓ
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da tanimon Visualizza Messaggio
    ...ma che volesse evidenziare l'importanza di individuare lo "strumento pi¨ idoneo" alla risoluzione del problema di cui si cerca soluzione,
    cercando di prevedere/prevenire gli "utilizzi maldestri" dell'utente finale.
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Esatto, bisognerebbe sempre valutare quale parametro sia pi¨ importante in un certo contesto: velocitÓ o soliditÓ, perchÚ non sempre i vantaggi di uno compensano gli svantaggi dell'altro, anche se spesso vanno a braccetto.
    Beh, sono sollevato,
    se non 4 chiacchiere in Vba, possiamo farne 2 in italiano

    Ciao Marco,
    buona serata

    Frank
    Excel 2007 win7 - Ogni Progetto Ŕ composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  22. #19

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Esatto, bisognerebbe sempre valutare quale parametro sia pi¨ importante in un certo contesto: velocitÓ o soliditÓ, perchÚ non sempre i vantaggi di uno compensano gli svantaggi dell'altro, anche se spesso vanno a braccetto.
    Miiii, come mi sono espresso male .
    Intendevo dire che non sempre i vantaggi di una scelta (p.e. velocitÓ) compensano la rinuncia ai vantaggi offerti dall'altra scelta (p.e. soliditÓ).
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  23. #20
    L'avatar di tanimon
    Clicca e Apri
    Data Registrazione
    Oct 2015
    LocalitÓ
    _
    Messaggi
    258
    Versione Office
    Excel 2007
    Likes ricevuti
    36
    Likes dati
    4

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Esatto, bisognerebbe sempre valutare quale parametro sia pi¨ importante in un certo contesto: velocitÓ o soliditÓ, perchÚ non sempre i vantaggi di uno compensano gli svantaggi dell'altro, anche se spesso vanno a braccetto.
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Miiii, come mi sono espresso male .
    Intendevo dire che non sempre i vantaggi di una scelta (p.e. velocitÓ) compensano la rinuncia ai vantaggi offerti dall'altra scelta (p.e. soliditÓ).
    io, leggendo di corsa, me l'ero persa........ per˛ ti era venuta bene
    Excel 2007 win7 - Ogni Progetto Ŕ composto da Micro Progetti: PRIMA risolvi quelli, e PRIMA raggiungi il completamento del Progetto!
    Domanda: "Come avranno fatto gli utilizzatori di Excel VBA, quando non esisteva il registratore di macro?"

  24. #21

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Tornando al problema di Alessandro, se ho capito quello che chiede, e modificando il minimo indispensabile il codice presente nel file:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
          If Target.Cells(1).Address(0, 0) = "B1" Then
            If Target.Cells(1).Value = vbNullString Then
              Range("D3:D10").AutoFilter
            Else
              Filter_menu CelleDaFiltrare:=Range("D3:D10"), Criterio:="*" & Target.Cells(1).Value & "*"
            End If
          End If
    End Sub
    
    Private Sub Filter_menu(CelleDaFiltrare As Range, Criterio As String)
        CelleDaFiltrare.AutoFilter Field:=1, Criteria1:=Criterio, Operator:=xlAnd
    End Sub
    Io per˛ rivedrei il tutto cosý:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
      Set Target = Intersect(Target, Me.Range("B1"))
      If Not Target Is Nothing Then
            Filter_menu Me.Range("D3:D10"), Target
      End If
    End Sub
    
    Private Sub Filter_menu(ByRef CelleDaFiltrare As Range, ByRef Criterio As Range)
      If Criterio.Value = vbNullString Then
        Me.AutoFilterMode = False
      Else
        CelleDaFiltrare.AutoFilter Field:=1, Criteria1:="*" & Criterio.Value & "*", Operator:=xlAnd
      End If
    End Sub
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  25. #22
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    LocalitÓ
    ferrara
    EtÓ
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Io per˛ rivedrei il tutto cosý:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
      Set Target = Intersect(Target, Me.Range("B1"))
      If Not Target Is Nothing Then
            Filter_menu Me.Range("D3:D10"), Target
      End If
    End Sub


    Scusa, Scossa. ma cosý Ŕ O B1 Oppure Nothing... a meno che in tutto il foglio ci sia solo B1 con il quale interagire, questa soluzione non mi pare una buona soluzione. No?

  26. #23

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Ciao,

    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio

    Scusa, Scossa. ma cosý Ŕ O B1 Oppure Nothing... a meno che in tutto il foglio ci sia solo B1 con il quale interagire, questa soluzione non mi pare una buona soluzione. No?
    ammetto di non aver letto tutto il thread dall'inizio, per˛ mi sembrava fosse quella la richiesta; del resto pure tu hai scritto:
    Codice: 
    .....
            If Not Intersect(Target, Range("B1")) Is Nothing Then
                'Facciamo quello che dobbiamo fare
            ElseIf
    ......
    Il criterio Ŕ che il valore della cella B1 sia una stringa contenuta nelle stringhe delle celle da filtrare. B1, l' ho evidenziato dello stesso colore di Target perchŔ in questo contesto sono la la stessa cosa.
    Con la differenza che il mio codice prenderÓ in considerazione solo B1, indipendentemente dalle celle unite e/o se siano state selezionate ed editate contemporaneamente pi¨ celle (es. A1:E1, particolare questo utile soprattutto in altri contesti).
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  27. #24
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    LocalitÓ
    ferrara
    EtÓ
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Gestire evento di una singola cella

    Perdonami ancora Scossa MA NO!

    il listato che propongo io Ŕ un normalisssimo listato per ipovedenti dove il Target, l' argomento passato all' evento non viene forzato ad essere SEMPRE una sola cella.
    Semplicemente, il segnor Target, quando si trova davanti alle Porte dell' fantasmagorico Evento Change, il butta fuori gli chiede:
    Hei. Tu chi diavolo rappresenti -> if not intersect(Target, [B1]) is nothing then

    Se lui gli risponde bene allora entra al privŔ della cella B1 altrimenti deve passare oltre e cercare di andare ad altri privŔ.. che ne so. MAgari lui e C19


    Tu, invece, a sto giro, hai deciso che chiunque rappresenti il signor Target, non te ne frega niente Se rappresenta B1 Bene. l' evento si fa. ALtrimenti. Nisba. Tutti a casa. Quý entra solo B1.

    Ecchediamine SCossa. Un evento con solo una cella No. Dissento. M' indigno come un politicante che ha perso le elezioni.
    E nutro seri dubbi su che tu abbia mai utilizzato questo metodo... Forse due volte contando quella di questo topic.

    Mi tocca anche dirti grazie per aver trovato una tecnica che mi piace. Non so ancora per cosa ma mi piace davvero.

    Maledetta cassetta piena di mele!

  28. #25

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio
    Semplicemente, il segnor Target, quando si trova davanti alle Porte dell' fantasmagorico Evento Change, il butta fuori gli chiede:
    Hei. Tu chi diavolo rappresenti -> if not intersect(Target, [B1]) is nothing then

    Se lui gli risponde bene allora entra al privŔ della cella B1 altrimenti ......:

    Tu, invece, a sto giro, hai deciso che chiunque rappresenti il signor Target, non te ne frega niente Se rappresenta B1 Bene. l' evento si fa. ALtrimenti. Nisba. Tutti a casa. Quý entra solo B1.
    Guarda, non so se ho capito quello che vuoi dire, ma il tuo codice fa la stessa cosa, solo che il mio buttafuori Ŕ 2 metri e 10 per 150 chili, il tuo Ŕ un metro e 60 per 60 chili


    In realtÓ, basta poco per "rabbonire" il mio:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Intersect(Target, Me.Range("B1")) Is Nothing Then
        'gestisci tutte le celle purchÚ non facciano affari con B1 :-)
      Else
        Set Target = Intersect(Target, Me.Range("B1"))
        If Not Target Is Nothing Then
              Filter_menu Me.Range("D3:D10"), Target
        End If
      End If
    End Sub
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  29. #26
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    LocalitÓ
    ferrara
    EtÓ
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Guarda, non so se ho capito quello che vuoi dire, ma il tuo codice fa la stessa cosa, solo che il mio buttafuori Ŕ 2 metri e 10 per 150 chili, il tuo Ŕ un metro e 60 per 60 chili


    In realtÓ, basta poco per "rabbonire" il mio:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Intersect(Target, Me.Range("B1")) Is Nothing Then
        'gestisci tutte le celle purchÚ non facciano affari con B1 :-)
      Else
        Set Target = Intersect(Target, Me.Range("B1"))
        If Not Target Is Nothing Then
              Filter_menu Me.Range("D3:D10"), Target
        End If
      End If
    End Sub
    Bravo capo. ora lo preferisco anche se contorto.
    Hai capito ma non vuoi pagarmi da bere Maledetto

  30. #27

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio
    Hai capito ma non vuoi pagarmi da bere Maledetto
    Le ho giÓ spinate:


    la prima la bevo io per te, la seconda la bevo io per farti compagnia
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  31. I seguenti utenti hanno dato un "Like"


  32. #28
    L'avatar di Cuc¨^_^
    Clicca e Apri
    Data Registrazione
    Jun 2016
    LocalitÓ
    TrentoGallipoliTaranto
    EtÓ
    46
    Messaggi
    309
    Versione Office
    2010
    Likes ricevuti
    57
    Likes dati
    17

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    personalmente opto per gli operatori logici (io ho detto di andare cauto non di non usarli).


    PS e per me... niente birrozza???

  33. #29

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    LocalitÓ
    Verona Provincia
    EtÓ
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0

    Re: Gestire evento di una singola cella

    Citazione Originariamente Scritto da Cuc¨^_^ Visualizza Messaggio


    PS e per me... niente birrozza???
    Come no, eccone altre due:



    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  34. #30
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    LocalitÓ
    ferrara
    EtÓ
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Gestire evento di una singola cella

    brinda pure.. a due alla volta te la taglian la patente

Discussioni Simili

  1. [Risolto] Rilevare Evento SheetChange quando la cella con Orario nel foglio che si aggiorna via WEB
    Di ginofamilio nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 15/03/17, 17:32
  2. Rappresentare graficamente l'andamento di una singola cella
    Di giovannib nel forum Domande sui Grafici di Excel
    Risposte: 5
    Ultimo Messaggio: 20/12/16, 20:31
  3. bloccare singola cella excel
    Di bikem4 nel forum Domande su Excel in generale
    Risposte: 9
    Ultimo Messaggio: 07/12/16, 03:07
  4. [Risolto] Macro per togliere protezione a singola cella
    Di sgnappi nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 29/09/16, 11:45
  5. Risposte: 2
    Ultimo Messaggio: 27/03/16, 08:55

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •