Condividi:        

codice vba in owerflow (errore 6)

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

codice vba in owerflow (errore 6)

Postdi karug64 » 08/11/17 23:27

Salve a tutti.
Tempo fa mi avete suggerito l'utilizzo di questa routine

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 6 And Target.Count = 1 Then
Application.EnableEvents = False
    If UCase(Target.Value) = "I" Then
        If Target.Offset(0, -1) <> "" Then
            If Left(Target.Offset(0, -1), 5) = "NOTA INTERNA: " Then
            Else
                Target.Offset(0, -1) = "NOTA INTERNA: " & Replace(Target.Offset(0, -1), "NOTA ESTERNA: ", "", , , vbTextCompare)
            End If
        Else
            MsgBox "Nessuna nota inserita. Inutile avvalorare il ''Tipo di nota''", vbCritical + vbOKOnly, "Errore"
        End If
    ElseIf UCase(Target.Value) = "E" Then
        If Target.Offset(0, -1) <> "" Then
            If Left(Target.Offset(0, -1), 6) = "NOTA ESTERNA" Then
           
            Else
                Target.Offset(0, -1) = "NOTA ESTERNA: " & Replace(Target.Offset(0, -1), "NOTA INTERNA: ", "", , , vbTextCompare)
            End If
        Else
            MsgBox "Nessuna nota inserita. Inutile avvalorare il ''Tipo di nota''", vbCritical + vbOKOnly, "Errore"
        End If
    ElseIf Len(Trim(Target.Value)) = 0 Then
        If Len(Trim(Target.Offset(0, -1))) <> 0 Then
            If MsgBox("Non avvalorando il tipo di nota, verrà cancellata quella già inserita. Continuare ?", vbQuestion + vbYesNo, "Attenzione") = vbYes Then
                Target.Offset(0, -1) = ""
            End If
         End If
    ElseIf UCase(Target.Value) <> "E" And UCase(Target.Value) <> "I" Then
            MsgBox "La scelta del tipo di nota inserita è errata. Inserire 'I' o 'E'. ", vbCritical + vbOKOnly, "Errore"
            Target.Select
    End If
Application.EnableEvents = True
End If
End Sub


che funziona perfettamente.

Ho però un problema. Il foglio in cui opera è composto da circa 20.000 righe.
Ho la necessità, talvolta, di cancellarlo del tutto per poi riscriverlo (da codice vba)

Quando lo seleziono tutto (angolo sinistro) e poi premo il tasto CANC (sia con una macro che da tastiera), viene cancellato il contenuto del foglio, ma poi mi da errore 6 "owerflow" alla prima riga della routine
Codice: Seleziona tutto
If Target.Column = 6 And Target.Count = 1 Then


Come posso ovviare a questo problema ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: codice vba in owerflow (errore 6)

Postdi cromagno » 09/11/17 00:44

Ciao,
il problema dell'overflow lo puoi by-passare utilizzando "CountLarge".

Giusto per info:
The CountLarge property is functionally the same as the Count property, except that the Count property will generate an overflow error if the specified range has more than 2,147,483,647 cells (one less than 2048 columns). The CountLarge property, however, can handle ranges up to the maximum size for a worksheet, which is 17,179,869,184 cells.


Qundi puoi aggiungere all'inizio un controllo che riesca a contare le celle di tutto il foglio:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.CountLarge = Cells.CountLarge Then Exit Sub
    If Target.Column = 6 And Target.Count = 1 Then
    Application.EnableEvents = False
.............RESTO DEL CODICE..............


o puoi usare direttamente la proprietà "CountLarge" al posto di "Count".

Ciao
Tore
Windows 10 + Office 2013 64bit(ita)
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Avatar utente
cromagno
Utente Junior
 
Post: 66
Iscritto il: 08/10/16 16:33
Località: Sardegna

Re: codice vba in owerflow (errore 6)

Postdi karug64 » 09/11/17 01:02

Grazie. Risolto
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: codice vba in owerflow (errore 6)

Postdi patel » 09/11/17 16:17

grazie Cromagno, non mi era mai capitato, ma può essere utile
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03


Torna a Applicazioni Office Windows


Topic correlati a "codice vba in owerflow (errore 6)":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti