due Before Double click



  • due Before Double click
    di Alex (utente non iscritto) data: 15/12/2014 14:54:26

    Buonasera a tutti, una domanda: ma se in un foglio volessi applicare due volete a due insiemi di celle diversi la possibilità di eseguire 2 mascro diverse con il doppio click come posso fare. Attualmente uso questa per mettere segni di spunta nelle celle da f57 a f167:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("f57:f167")) Is Nothing Then
    If Target = "ü" Then
    Target = ""
    ElseIf Target = "" Then
    Target = "ü"
    End If
    Cancel = True
    End If

    Tuttavia vorrei che in altre celle singole, sempre con doppio click, mi partissero altre macro.

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = "$K$5" Then Allegato_Quadro_EC
    If Target.Address = "$M$5" Then Allegato_15
    If Target.Address = "$O$5" Then Allegato_16
    End Sub

    In pratica vorrei capire se è possibile far coiesistere queste 2 before double click in un unico foglio.
    Grazie mille come sempre
    Ciao
    Alex



  • di Mister_x (utente non iscritto) data: 15/12/2014 15:53:46

    ciao

    potresti gia' unire le deu sub() in questo modo vedi sotto
    in quanto fai un controllo prima sulle celle singolo e se e' K5,M5,O5 fa il lavoro altrimenti
    e controlla se hai attivato una der Range() fa quall'altro lavoro

    ciao
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
       If Target.Address = "$K$5" Then Allegato_Quadro_EC 
       If Target.Address = "$M$5" Then Allegato_15 
       If Target.Address = "$O$5" Then Allegato_16 
    If Not Intersect(Target, Range("f57:f167")) Is Nothing Then 
       If Target = "ü" Then 
         Target = "" 
      ElseIf Target = "" Then 
        Target = "ü" 
      End If 
         Cancel = True 
    End If 
    End Sub





  • due Before Double Click
    di Alex (utente non iscritto) data: 15/12/2014 19:08:05

    Ciao,
    grazie mille, funziona perfettamente e potrei dirmi anche contento ma mi è venuta in mente un'altra domanda: siccome le celle K5, M5, O5..ecc..potrebbero assumere valori diversi, potrei associare a ciascuno di questi valori una specifica macro facendola partire con un doppio click su di essa?
    Per esempio se la cella M5 dà come risultato "Allegato 1" c'è modo di far eseguire una specifica macro "Alleato 1" (che dovrei definire) con un doppio click su di essa?
    Grazie comunque già per la prima risposta
    Ale



  • di Mister_x (utente non iscritto) data: 15/12/2014 19:23:50

    ciao

    ammettiamo che se K5 ci fosse "Allegato_Quadro_EC" questo farebbe partire la sub() xxxxx
    se invece ci fosse unaltra parola non succederebbe niente
    cosi come le altre celle

    penso sia questo che tu intendi per attivare altre sub() se in una determinata cella ci sia una frase specifica

    ciao
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       If Target.Address = "$K$5" Then
           If Target.Value = "Allegato_Quadro_EC" Then Call xxxxx
       ElseIf Target.Address = "$M$5" Then
           If Target.Value = "Allegato_15" Then Call yyyyy
       ElseIf Target.Address = "$O$5" Then
           If Target.Value = "Allegato_16" Then Call zzzz
       End If
    If Not Intersect(Target, Range("f57:f167")) Is Nothing Then
       If Target = "ü" Then
         Target = ""
      ElseIf Target = "" Then
        Target = "ü"
      End If
         Cancel = True
    End If
    End Sub
    





  • due Before click
    di Alex (utente non iscritto) data: 16/12/2014 19:58:25

    Quasi (e cmq sempre grazie della risposta).
    Intendevo in realtà che se in K5 cè scritto Allegato Quadro EC parta la macro Allegato Quadro EC mentre se in K5 cè scritto Allegato 1 parta la macro Allegato 1..insomma un qualcosa che mi protegga dal variare del valore delle celle che stanno in K5 M5 N5 (che in effetti sono tutte variabili) ecc...
    Le macro da far partire le ho preparate tutte ma vorrei che fosse il call fosse "dinamico" per così dire.


  • Informazione generale
    di DPG70 (utente non iscritto) data: 16/12/2014 20:12:02

    Buona sera,
    scusate se mi intrometto nella discussione senza apportare utili indicazioni al contesto, discussione che per mè è stata molto interessante.
    Avrei come neofita da chiedere a Mister_x il significato di Cancel=True alla fine del codice dato che ho visto, la scrittura funziona lo stesso come si chiede o mi pare.
    Mi scuso ancora, Dario.



  • di DPG70 (utente non iscritto) data: 16/12/2014 20:54:50

    Scusa Alex, sempre intervenendo da neofita vba, non basta scrivere nel codice?

    If Target.Value = "Allegato_Quadro_EC" Then Call Allegato_Quadro_EC

    ecc.



  • di Mister_x (utente non iscritto) data: 16/12/2014 23:53:50

    ciao

    rispondo a DPG70 in base all'evento
    Cancel As Boolean dove era rimasto, giustamente fatta osservazione lo sporco o cosa inutile di mettere Cancel = True alla fine della sub(), vedi help
    in quanto alla seconda nota sempre di DPG70, rivolta ad Alex, e' cosi che funziona il call, se ai notato io non ho messo nessuna variabile ma erano solamente indicativi per segnalarti di mettere il nome della sub() che vuoi far partire se riscontriamo nella cella x un certo valore

    ciao





  • due Before Double cick
    di Alex (utente non iscritto) data: 17/12/2014 10:12:59

    Per DP: in quel modo ho un call sempre uguale su una certa cella a prescindere da quale valore ci sia nella cella, mentre a me serviva che la macro chiamata variasse.
    Per Mister X: che dire? Grazie mille davvero.
    Ciao