Eliminare riga scelta da userform

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
BG66
00domenica 29 gennaio 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
patel45
00lunedì 30 gennaio 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



BG66
00lunedì 30 gennaio 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.

patel45
00lunedì 30 gennaio 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")
BG66
00lunedì 30 gennaio 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
patel45
00lunedì 30 gennaio 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
    ...........
BG66
00lunedì 30 gennaio 2017 22:23
[RISOLTO]
Ciao Patel,
funziona alla grande.

Grazie ancora per la tua disponibilità.

Alla prossima.
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 06:42.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com