Sviluppare funzionalita su Microsoft Office con VBA Risolvere errore run-time 13

LoginRegistrati
Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
  • Autore
    Articoli
  • #26711 Risposta

    Gabe182
      Private Sub Worksheet_Change(ByVal Target As Range)
      On Error GoTo ErrorHandler
      If Not Intersect(Target, Range("C1:AP1")) Is Nothing Then
              If WorksheetFunction.CountIf(Range("C1:AP1"), Target.Value) > 1 Then
              MsgBox "Si puo inserire solo un codice commessa per ogni foglio!"
              Target.ClearContents
          End If
      End If
      
      ErrorHandler:      Selection.ClearContents
      
      End Sub
      #26712 Risposta

      Gabe182

        Questa macro consente di evitare duplicati in un determinato range.
        Il problema è che se si copiano più celle anche esterne al range e si incollano parte l'avviso run-time error 13
        Per risolvere questo problema vorrei eliminare i file incollati e far comparire un messaggio.
        Il problema è che in caso di errore parte un loop e si blocca la macro

        #26714 Risposta

        GiuseppeMN
        Partecipante
          4 pts

          Buona giornata, @gabe182;
          sarebbe opportuno allegassi un File (senza Dati sensibili) con alcuni Record significativi già inseriti e chiarissi ciò che desideri ottenere.

          Giuseppe

          #26716 Risposta

          gabe182
          Partecipante

            Se invece di cambiare il singolo valore nel range provo ad incollare una selezione di celle mi da errore.

             

            Allegati:
            You must be logged in to view attached files.
            #26718 Risposta
            Luca73
            Luca73
            Partecipante
              28 pts

              Prova a modificare così

              Private Sub Worksheet_Change(ByVal Target As Range)
              On Error GoTo EH
              If Not Intersect(Target, Range("C1:I1")) Is Nothing Then
                      If WorksheetFunction.CountIf(Range("C1:I1"), Target.Value) > 1 Then
                      MsgBox "Non si possono inserire duplicati!"
                      Target.ClearContents
                  End If
              End If
              
              Exit Sub
              EH:     MsgBox "non puoi incollare celle fuori dal range!"
                      Application.EnableEvents = False
                      Selection.ClearContents
                      Application.EnableEvents = True
              End Sub
              
              #26774 Risposta

              gabe182
              Partecipante

                Si funziona! Grazie mille!

              LoginRegistrati
              Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
              Rispondi a: Risolvere errore run-time 13
              Gli allegati sono permessi solo ad utenti REGISTRATI
              Le tue informazioni:



              vecchio frac - 2750 risposte

              albatros54
              albatros54 - 1009 risposte

              patel
              patel - 908 risposte

              Marius44
              Marius44 - 786 risposte

              Luca73
              Luca73 - 675 risposte