Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

Worksheet_BeforeDoubleClick > Copia range di cele

  • Messaggi
  • OFFLINE
    slaxrooth
    Post: 7
    Registrato il: 12/02/2018
    Città: MILANO
    Età: 44
    Utente Junior
    2016
    00 16/08/2019 14:03
    Ciao a tutti , Finite le ferie? 🤣 Io sono qui per porvi una domanda :
    Partendo da questo codice
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Application.ScreenUpdating = False
        Application.EnableEvents = False
            If Not Intersect(Target, Range("B9:b30")) Is Nothing Then
                Range("f9:g9").ClearContents
                Sheets(Target.Value).Range("b3").Copy Destination:=Range("f9")
                Sheets(Target.Value).Range("b4").Copy Destination:=Range("g9")
                
                'Cells(1, 4) = Target.Value ' In nome del Foglio attivo
             End If
                Application.CutCopyMode = False
                Cancel = True
                Application.EnableEvents = True
                Application.ScreenUpdating = True
                
    End Sub
    


    Vorrei che all mia pressione doppio click sul nome del Foglio che desidero (es: Lavoro2) nelle cele f10 e g10 ... e cosi via . Per quanto riguarda il Lavoro1, ci sono riuscito , ma non riesco a farlo con i altri . Qualcuno di voi mi puo dare una mano ? se non disturbo le vostre ferie .😍
    [Modificato da slaxrooth 16/08/2019 19:54]
  • OFFLINE
    dodo47
    Post: 2.337
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 16/08/2019 16:21
    Ciao
    non sono certo di aver capito, prova:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim riga As Long
        On Error GoTo errori
        Application.ScreenUpdating = False
        Application.EnableEvents = False
            If Not Intersect(Target, Range("B9:b30")) Is Nothing Then
                riga = Target.Row
                Range("f" & riga & ":g" & riga).ClearContents
                Sheets(Target.Value).Range("b3").Copy Destination:=Range("f" & riga)
                Sheets(Target.Value).Range("b4").Copy Destination:=Range("g" & riga)
                
                'Cells(1, 4) = Target.Value ' In nome del Foglio attivo
             End If
                Application.CutCopyMode = False
    errori:
            Cancel = True
            Application.EnableEvents = True
            Application.ScreenUpdating = True
                
    End Sub


    Saluti



    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    slaxrooth
    Post: 7
    Registrato il: 12/02/2018
    Città: MILANO
    Età: 44
    Utente Junior
    2016
    00 16/08/2019 20:00
    Che dire dodo47 , funziona alla grande , Sto cercando di capire la diferenza del tuo codice rispetto al mio , am mi sento un imbranato . Sinceramente ti ringrazio moltisimo
  • OFFLINE
    slaxrooth
    Post: 8
    Registrato il: 12/02/2018
    Città: MILANO
    Età: 44
    Utente Junior
    2016
    00 16/08/2019 20:05
    Ora ho capito bene , non so se ci sarrei arrivato da solo . Grazie di nuovo dodo47.
  • OFFLINE
    dodo47
    Post: 2.339
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 17/08/2019 12:16
    ciao
    grazie per il riscontro.

    una precisazione: ho aggiunto l'istruzione "On Error" in quanto se fai doppio click su un foglio inesistente o su una cella della col. B vuota, il codice andava in errore lasciando gli eventi e lo screen updating a false

    saluti



    Domenico
    Win 10 - Excel 2016