Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

errore su Office 2010 e non su Office 2007 e 2013

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

errore su Office 2010 e non su Office 2007 e 2013

Postdi christianghz » 28/09/17 16:19

Ciao a tutti ho questo codice che riporta le spedizioni da un foglio a un altro che funziona ovunque eccetto su un pc.
il codice è contenuto in un file del server ed è il seguente:

Codice: Seleziona tutto
Sub Riporta_Viaggio()
'
'porta i numeri viaggio e num spedizione in foglio cons pianificate
'
Dim LastA As Long, Last1 As Long, SummaSh As String, Cnt As Long, Rispo
Dim dayWkb As String, yNext As Long
'
SummaSh = "Cons Pianificate"           '<<< Il foglio del file Annuale su cui fare la somma
'
Application.ScreenUpdating = False
    Sheets("Foglio2").Select
   
dayWkb = ActiveWorkbook.Name
Sheets(2).Activate
Cnt = Application.WorksheetFunction.CountIf(ThisWorkbook.Sheets(SummaSh).Range("A:A"), Range("A2").Value)
If Cnt > 0 Then 'controlla se il codice è già presente in A:A
    Rispo = MsgBox("Il numero di Viaggio è già presente in Cons Pianificate " & _
    vbCrLf & "Vuoi sostituire i dati presenti (Si /No)?", vbYesNo)
    If Rispo <> vbYes Then Exit Sub
End If
If Cnt > 0 Then 'se il codice è già presente in A:A elimina le righe che lo contengono
    Do
        myMatch = Application.Match(Range("A2").Value, ThisWorkbook.Sheets(SummaSh).Range("A:A"), 0)
        If Not IsError(myMatch) Then
            ThisWorkbook.Sheets(SummaSh).Cells(myMatch, "A").EntireRow.Delete
        Else
            Exit Do
        End If
    Loop
End If
LastA = Cells(Rows.Count, 1).End(xlUp).Row
Last1 = Cells(1, Columns.Count).End(xlToLeft).Column



yNext = ThisWorkbook.Sheets(SummaSh).Cells(65000, 1).End(xlUp).Row + 1
Range("A2").Resize(LastA - 1, Last1).Copy ThisWorkbook.Sheets(SummaSh).Cells(yNext, 1)

Windows("ELENCO CONSEGNE.xls").Activate         'elimina righe vuote in cons pianificate
    Sheets("Cons Pianificate").Select
    Range("A1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$B$31").AutoFilter Field:=1, Criteria1:="="
    Rows("2:1000").Select
    Selection.Delete Shift:=xlUp
    Selection.AutoFilter
    Application.ScreenUpdating = True
    Range("A2").Select
'
End Sub

e l'errore me lo dà verso la fine a questa riga:
Range("A2").Resize(LastA - 1, Last1).Copy ThisWorkbook.Sheets(SummaSh).Cells(yNext, 1)

Errore di runt ime 1004 definito dall'applicazione o dall'oggetto


questo codice funziona perfettamente su un PC con Office 2013 e su una altro con Office 2010, mi dà errore su un unico PC che sempre Office 2010 ma non en vengo a capo.

spero riusciate ad aiutarmi

Grazie sin d'ora
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Sponsor
 

Re: errore su Office 2010 e non su Office 2007 e 2013

Postdi Anthony47 » 29/09/17 14:13

Subito prima dell'istruzione che va in errore inserisci per prova queste:
Codice: Seleziona tutto
On Error Resume Next
Debug.Print 1, LastA, Last1
Debug.Print 2, yNext
Debug.Print 3, ThisWorkbook.Sheets(SummaSh).Name
Debug.Print 4, ThisWorkbook.Sheets(SummaSh).Cells(yNext, 1).Address
Debug.Print 5, ThisWorkbook.Sheets(SummaSh).Visible
Debug.Print 6, ThisWorkbook.Sheets(SummaSh).ProtectContents
On Error GoTo 0

Poi quando ottiene quell'errore vai in Debug e controlla che la riga in errore sia quella che hai detto; premi Contr-g per aprire la finestra "Immediata". Copia quello che leggi nella finestra e incollalo nel prosimo messaggio, magari ci dice qualcosa di utile.

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

Re: errore su Office 2010 e non su Office 2007 e 2013

Postdi christianghz » 30/09/17 11:06

Grazie mille,
ho provato e confermo che l'errore è su quella riga lì.

l'immediata restituisce il seguente errore

Codice: Seleziona tutto
 1             1             1
 2             96
 3            Cons Pianificate
 4            $A$96
 5            -1
 6            Falso
 1             1             1
 2             96
 3            Cons Pianificate
 4            $A$96
 5            -1
 6            Falso


$A$96 è la prima cella vuota del foglio di destino.

sugli altri PC confermo che funziona.
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: errore su Office 2010 e non su Office 2007 e 2013

Postdi Anthony47 » 30/09/17 19:37

Da quel log si deduce che LastA=1, quindi va in errore la parte Range("A2").Resize(LastA - 1, Last1), perche' LastA-1 fa 0, e un range non puo' essere ridimensionato su 0 righe.

In pratica in quel momento il foglio selezionato non contiene dati ma la sola intestazione.

Mi viene il dubbio che su questo pc il file su cui si lavora sia diverso da quello degli altri Pc; ad esempio, la sequenza dei fogli e' la stessa? (il foglio n° 2 e' lo stesso sui vari Pc?).

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


Torna a Applicazioni Office Windows


Topic correlati a "errore su Office 2010 e non su Office 2007 e 2013":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti