Excel Forum Per condividere esperienze su Microsoft Excel

Eliminare riga scelta da userform

  • Messaggi
  • OFFLINE
    BG66
    Post: 101
    Registrato il: 13/12/2015
    Città: MILANO
    Età: 58
    Utente Junior
    2010
    00 29/01/2017 22:02
    Ciao a tutti,
    nel foglio "DB" usando il pulsante "definisci rotolo" mi posiziono sulla riga che voglio trasferire e causalizzo il motivo ( Recuperato o Rottamato) e poi con "scarica dati" lo copio nel foglio "rotoli definiti" ma in realtà vorrei che dopo il trasferimento la riga fosse cancellata del foglio mittente (ossia DB).
    Teoricamente basterebbe
    Rows(ActiveCell.Row).Delete

    Ma non è proprio cosi.Mi aiutate?

    Grazie in anticipo.
    https://www.dropbox.com/s/w3hahacpyfu3eka/Rot_segregatiV3CB_forum.xls?dl=0
    [Modificato da BG66 30/01/2017 22:22]
    BG66
    Excel 2010
  • OFFLINE
    patel45
    Post: 3.668
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 30/01/2017 08:16
    hai fatto un uso massiccio di activecell, cosaa da evitare nel modo più assoluto proprio perché capitano questi inconvenienti, specialmente quando si lavora su due fogli. Ti consiglio di rivedere tutta la procedura.
    una soluzione rapida la puoi ottenere così:
    nel modulo1
    Option Explicit
    Public rigasel As Long
    Sub ShowDBForm()
        DBForm.Show
    End Sub

    poi
    Private Sub Precedente_Click()
        Cells(ActiveCell.Row - 1, 1).Select
        rigasel = ActiveCell.Row
            Setting
    End Sub
    
    Private Sub Successivo_Click()
        Cells(ActiveCell.Row + 1, 1).Select
        rigasel = ActiveCell.Row
            Setting
    End Sub

    Private Sub ExitExpenses_Click()
     ........
        End With
        Sheets(1).Rows(rigasel).Delete
        MsgBox "Trasferimento effettuato"
        DefForm.Hide
        
    End Sub



    [Modificato da patel45 30/01/2017 08:30]

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    BG66
    Post: 101
    Registrato il: 13/12/2015
    Città: MILANO
    Età: 58
    Utente Junior
    2010
    00 30/01/2017 08:34
    Ciao Patel,
    sono alla fine del progetto e ripartire da zero è pesante [SM=x423059]
    A tuo avviso, si riesce a trovare una soluzione?
    L'utilizzo di active cells era funzionale a separarare le due fasi ( carico e scarico) con responsabili diversi.

    EDIT Sorry hai anticipato la mia richiesta di Help. Provo quanto indicatomi, è posto riscontro...a dopo.
    Grazie in anticipo.

    [Modificato da BG66 30/01/2017 08:37]
    BG66
    Excel 2010
  • OFFLINE
    patel45
    Post: 3.669
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 30/01/2017 09:17
    nel tuo caso basta usare activecell una sola volta e poi fare riferimento a rigasel.
    Comunque ricordati per il futuro di limitare activecell e activesheet al minimo indispensabile e fare riferimento sempre a sheets("nome")

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    BG66
    Post: 102
    Registrato il: 13/12/2015
    Città: MILANO
    Età: 58
    Utente Junior
    2010
    00 30/01/2017 18:36
    Ciao Patel,
    la mia preparazione specifica non mi permette di comprendere in pieno il tuo consiglio del post precedente.
    Se hai voglia e tempo, mi puoi scrivere lo script a modo tuo?
    Mi aiuterebbe moltissimo poterlo studiare.

    Grazie in anticipo
    [Modificato da BG66 30/01/2017 18:37]
    BG66
    Excel 2010
  • OFFLINE
    patel45
    Post: 3.674
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 30/01/2017 20:44
    Private Sub Setting()
    '   Settaggi
    Dim NRc As Long
    
        NRc = Range("B" & Rows.Count).End(xlUp).Row + 1
        If rigasel < 7 Then Cells(7, 2).Select
        If rigasel > NRc Then rigasel = NRc
        Riga.Value = rigasel
        DataIns.Value = Cells(rigasel, 2).Value
        ...........

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    BG66
    Post: 103
    Registrato il: 13/12/2015
    Città: MILANO
    Età: 58
    Utente Junior
    2010
    00 30/01/2017 22:23
    [RISOLTO]
    Ciao Patel,
    funziona alla grande.

    Grazie ancora per la tua disponibilità.

    Alla prossima.
    BG66
    Excel 2010