Condividi:        

Excel2003: riferimento perso dopo elimiazione righe

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel2003: riferimento perso dopo elimiazione righe

Postdi karug64 » 27/11/11 13:37

Salve a tutti.
Nel mio foglio("menu") nella cella U18 c'e' questa formula =Dossier!A2

Il foglio("Dossier") viene alimentato da una routine. Non appena la cella A2 assume un valore, ovviamente, sul foglio("menu") viene riporato quel valore.

Dopo aver alimentato il foglio("Dossier") lancio un'altra routine (riporata di seguito) che provvede a cancellare le righe doppie

Codice: Seleziona tutto
Sub elimina_doppi()
Application.ScreenUpdating = True
Set currentCell = Worksheets("Dossier").Range("B2")
Do While Not IsEmpty(currentCell)
Set nextCell = currentCell.Offset(1, 0)
If nextCell.Value = currentCell.Value Then
currentCell.EntireRow.Delete
End If
Set currentCell = nextCell
Loop
Set cur = Worksheets("Dossier").Range("B2")
End Sub


Appena esco da questa routine, (nonostante la cella A2 del foglio(Dossier") contenga un valore, perdo il riferimento sul foglio("Menu") che diventa =Dossier!#RIF

Non capisco il perche' e non so risolvere.
Potete aiutarmi ?
Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: Excel2003: riferimento perso dopo elimiazione righe

Postdi Anthony47 » 27/11/11 21:47

Forse la tua macro cancella le righe iniziali di Dossier?
Se vuoi forzare la formula a rimanere su A2, potresti usare la notazione
Codice: Seleziona tutto
=indiretto("Dossier!A2")


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19233
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel2003: riferimento perso dopo elimiazione righe

Postdi ricky53 » 28/11/11 00:06

Ciao,
confermo quanto scritto da Anthony.

Il caso si verifica se la "B2" e la "C2" sono uguali ---->> viene cancellata la riga "2" con il risultato che conosci ("#RIF").

Io ti consiglio di utilizzare questo codice
Codice: Seleziona tutto
Sub Elimina_Doppi()
    Dim Ws1 As Worksheet, I As Long, RR As Long
    Set Ws1 = Sheets("Dossier")
    RR = Ws1.Range("B" & Rows.Count).End(xlUp).Row
    For I = RR To 2 Step -1
        If Ws1.Cells(I, 2) = Ws1.Cells(I - 1, 2) Then
            Ws1.Rows(I).EntireRow.Delete
        End If
    Next I
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4568
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel2003: riferimento perso dopo elimiazione righe

Postdi ricky53 » 28/11/11 00:24

Ciao,
per non vedere lo sfarfallio dello schermo puoi aggiungere " Application.ScreenUpdating = False" all'inizio e ripristinare alla fine. Il codice sarà
Codice: Seleziona tutto
Sub Elimina_Doppi()
    Application.ScreenUpdating = False
    Dim Ws1 As Worksheet, I As Long, RR As Long
    Set Ws1 = Sheets("Dossier")
    RR = Ws1.Range("B" & Rows.Count).End(xlUp).Row
    For I = RR To 2 Step -1
        If Ws1.Cells(I, 2) = Ws1.Cells(I - 1, 2) Then
            Ws1.Rows(I).EntireRow.Delete
        End If
    Next I
    Application.ScreenUpdating = True
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4568
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Excel2003: riferimento perso dopo elimiazione righe":


Chi c’è in linea

Visitano il forum: Nessuno e 32 ospiti