Clik copia dati



  • Clik copia dati
    di BaroneRosso (utente non iscritto) data: 16/09/2013 19:21:58

    ho un problema che non riesco a risolvere, tengo a precisare che non sono esperto di VBA, cerco di seguire il codice e di adattarlo alle mie esigenze purtroppo non sempre ci riesco, allora devo chiedo aiuto a chi è più esperto di me, allego un file di esempio, ed espongo il problema.
    Il file allegato nel foglio Elenco prezzi nella 3 colonna cella B è attivo un filtro per cercare dei prodotti.
    Quello che dovrei fare è:
    Una volta cercato il prodotto, con un doppio clik sul prodotto scelto dovrei copiare l’intera riga dalla cella A alla Cella D ed il tutto deve essere incollato nel foglio Avanzamento lavori alla prima cella libera, dalla cella C alla Cella G.
    Ho cercato del codice su internet qualcosa ho trovato solo che non riesco a modificarlo, allego il codice che dovrei modificare spero che qualcuno può essermi di aiuto grazie

     
    'Clik su cella copia dati altro foglio
    
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim sh As Worksheet
        Dim lRiga As Long
        If Target.Column = 1 Then
            If Target.Value <> "" Then
                Set sh = ThisWorkbook.Worksheets("Convocati")
                lRiga = sh.Range("A" & Rows.Count).End(xlUp).Row + 1
                sh.Range("A" & lRiga).Value = Target.Value
            End If
        End If
        Set sh = Nothing
    End Sub
    



  • di HarryBosch data: 16/09/2013 19:50:46

    Vedi come ho aggiustato la routine che hai postato, in base ai riferimenti che hai indicato nella tua richiesta. Con i commenti dovrebbe essere abbastanza facile da capire.
    La ruotine va messa nel modulo del Foglio dove si deve verificare l'evento Doubleclick, quindi non in un modulo standard.

     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim sh As Worksheet, lRiga As Long
        
        'controllo se ho cliccato lungo le colonne A:D, altrimenti esco senza far nulla
        If Intersect(Target, Range("A:D")) Is Nothing Then Exit Sub
        
            'se la cella cliccata non è vuota
            If Target.Value <> "" Then
                'Foglio dove copiare i dati
                Set sh = Sheets("Avanzamento Lavori")
                'determino l'ultima riga di questo foglio, in base alla colonna C
                lRiga = sh.Range("C" & Rows.Count).End(xlUp).Row + 1
                'copio la riga cliccata dalla cella A a F
                'nella prima riga vuota del foglio sopra indicato a partire dalla colonna C
                Range("A" & Target.Row & ":F" & Target.Row).Copy sh.Range("C" & lRiga)
            End If
    End Sub



  • di BaroneRosso (utente non iscritto) data: 16/09/2013 21:45:58

    Grazie per l'aiuto HarryBosch , sembra che funziona