| | Post: 101 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Junior | 2010 | | OFFLINE | |
|
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 |
|
| | Post: 3.668 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
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 |
| | Post: 101 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Junior | 2010 | | OFFLINE | |
|
30/01/2017 08:34 | |
Ciao Patel,
sono alla fine del progetto e ripartire da zero è pesante
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 |
| | Post: 3.669 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
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 |
| | Post: 102 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Junior | 2010 | | OFFLINE | |
|
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 |
| | Post: 3.674 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
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 |
| | Post: 103 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Junior | 2010 | | OFFLINE | |
|
30/01/2017 22:23 | |
[RISOLTO]
Ciao Patel,
funziona alla grande.
Grazie ancora per la tua disponibilità.
Alla prossima. BG66
Excel 2010 |
|
|