Attivazione Funzione Incolla



  • Attivazione Funzione Incolla
    di Giovanni (utente non iscritto) data: 22/07/2013 15:54:17

    ciao a tutti
    premetto che il foglio non è protetto da password.
    situazione1= nessuna macro e il copia/incolla attivo
    situazione2= attivo macro (vedi codice VBA) e la funzione copia/incolla mi viene disabilitata automaticamente.
    Purtroppo per me, nella sitazione2 la funzione copia/incolla è fondamentale e non riesco a riattivarla (ovviamente con macro attiva!)
    sapreste risolvere il problema?
    grazie mille!
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cell As Object
    For Each cell In Range("A1:A20")
        If cell.Value = "A" Then
        cell.Font.ColorIndex = 1
        ElseIf cell.Value = "" Then
        cell.Font.ColorIndex = 3
        ElseIf cell.Value <> "A" Then
        MsgBox "paramentro non definito"
        ElseIf cell.Value <> "" Then
        MsgBox "paramentro non definito"
        End If
    Next
    End Sub



  • di mabolsie data: 22/07/2013 20:21:03

    Ciao Giovanni
    con "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" la macro è sempre attiva, infatti ogni volta che cambi cella la macro si ripete in automatico inibendoti i comandi manuali.
    per ovviare al problema dovresti assegnare alla macro un pulsante di lancio " commandbutton_click" così da decidere tu quando lanciarla, in questo modo i comandi manuali restano attivi .

    Ciao Max



  • di giovanni (utente non iscritto) data: 22/07/2013 23:27:49

    Grazie per la risposta Max!
    Purtroppo a me serve la macro sempre attiva in quanto la correzione deve essere immediata... a questo problema però, ho bisogno anche della funzine copia/incolla.
    Esiste un codice in grado di forzare la funzione copia/incolla con il comando "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" attivo?
    Cmq sono riuscito ad ovviare in parte al problema...ma non è del tutto soddisfacente in quanto il copia/incolla è una funzione usta spesso... i passaggi sono i seguenti:
    1) mi posiziono sul foglio e cella dove dovrò poi incollare
    2) riduco a icona
    3) apro il secondo file dove dovrò copiare il contenuto, quindi: seleziono e copio
    4) ridimensiono il 1° file precedentemente ridotto a icona, e senza spostare il cursore, tasto destro e poi incolla

    Grazie Grazie Grazie
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cell As Object
    For Each cell In Range("A1:A20")
        If cell.Value = "A" Then
        cell.Font.ColorIndex = 1
        ElseIf cell.Value = "" Then
        cell.Font.ColorIndex = 1
        ElseIf cell.Value <> "A" Then
        cell.Font.ColorIndex = 3
        MsgBox "    !!! BLOCCO !!!" & vbCrLf & "" & vbCrLf & "Eliminare gli eventuali errori", vbCritical, "Error Message"
        ElseIf cell.Value <> "" Then
        cell.Font.ColorIndex = 3
        MsgBox "    !!! BLOCCO !!!" & vbCrLf & "" & vbCrLf & "Eliminare gli eventuali errori", vbCritical, "Error Message"
        End If
    Next
    End Sub
    



  • di giovanni (utente non iscritto) data: 23/07/2013 14:23:09

    ho risolto sostituendo:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    (si attiva ogni volta che ci si sposta tra le celle)
    con
    Private Sub Worksheet_Change(ByVal Target As Range)
    (si attiva ogni volta che cambi un valore delle celle)

    Grazie a tutti e spero che questa discussione possa servire a qualcuno!



  • di mabolsie data: 24/07/2013 18:28:27

    Bravo !!!

    Ciao Max