Condividi tramite

Come copiare solo i valori validi

Anonimo
2024-07-13T12:14:44+00:00

Ciao a tutti,

ho una difficoltà e non riesco a venirne a capo.

In un foglio di lavoro ha messo la seguente formula: =SE(foglio1!B6="";"";SE(foglio1!B6="a";"A";SE(foglio1!B6=0,5;"P")))

Questa stessa formula è inserita anche nelle celle vicine (ovviamente B6 diventa C6, C7 ecc)

Usando questa formula ottengo il seguente risultato ad esempio:

A A A A
P P P A A
A A A A
P P P P

Lo schema che vedete sopra devo incollarlo in un altro foglio di lavoro che alla fine di ogni riga ha una formula "conta.valori"

Il mio problema è che facendo incolla valori nel nuovo foglio la formula conta valori non conta solo le celle in cui vi è una lettera ma conta anche le celle vuote.

Ad esempio il totale di riga 1 dovrebbe essere 4 ed invece mi dà 8

Il totale di riga 2 dovrebbe essere 5 ed invece mi da 8

e così via

Premetto che il foglio sul quale incollo non posso modificarlo perchè è bloccato con password.

Cosa posso fare?

grazie in anticipo

Microsoft 365 e Office | Excel | Per la casa | MacOS

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2024-07-15T07:10:39+00:00

    Se, come mi sembra di comprendere, le celle dove incolli i valori non sono protette prova ad inserire nel modulo VBA del foglio dove incolli i valori questo codice.

    Seleziona la scheda del foglio, poi fai click destro con il mouse e scegli la voce "Visualizza codice ...":

    Immagine

    Si apre l'editor del VBA in corrispondenza del modulo del foglio:

    Immagine

    Incolli questo codice nella sezione a destra:

    Option Explicit 
    
    Private Sub Worksheet_Change(ByVal Target As Range) 
    
       Dim r As Range 
    
       On Error Resume Next 
    
       With Application 
    
          .Calculation = xlCalculationManual 
    
          .EnableEvents = False 
    
          .ScreenUpdating = False 
    
       End With 
    
       For Each r In Target 
    
          If r.Value = "" Then r.ClearContents 
    
       Next r 
    
       With Application 
    
          .ScreenUpdating = True
    
          .EnableEvents = True
    
          .Calculation = xlCalculationAutomatic 
    
       End With 
    
    End Sub 
    

    Nota che ho inserito l'istruzione "On Error Resume Next". Poiché non ho idea di come sia strutturato il foglio questa istruzione fa in modo che se dovesse esservi una qualche azione che dovesse comportare un errore VBA la procedura lo ignorerebbe e andrebbe avanti senza lanciare messaggi di errori VBA.

    In pratica questa procedura cancella il contenuto della cella il cui valore risulti essere "" (stringa nulla) ma che è un valore comunque riportato nella cella tramite copia/incolla di una cella che contiene una formula che restituisce, appunto, quel valore (e che viene letto come valore presente dalla formula "CONTA.VALORI).

    Edit: ho corretto a True le istruzioni finali delle ScreenUpdatin e EnableEvents che mi erano rimaste a False :-)

    La risposta è stata utile?

    0 commenti Nessun commento

15 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2024-07-13T13:20:06+00:00

    Se la formula devo metterla al posto di “conta.valori “ è un problema perché quella cella è bloccata con password, quindi io posso agire solo sui dati che incollo (per intenderci dove in foto vedi 3,50 io non posso cambiare la formula)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-07-13T13:10:41+00:00

    ciao

    metti la formula che ti ho messo sopra

    o il problema è cambiare la formula

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-07-13T13:00:42+00:00

    Ciao,

    Il mio problema è che uso “incolla valori” ma il risultato è quello che vedi in foto (cioè conta anche le celle vuote)

    Tra l’altro se seleziono una cella con la lettera nella barra della formula vedo la lettera, e se seleziono una cella vuota non vedo nulla.

    Se pero seleziono le celle vuote e premo canc il risultato cambia (ad esempio in una riga vuota 3,50 diventa 0)

    Sottolineo che il file dove incollo è bloccato con password quindi non posso modificare la cella dove vedi 3,50.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-07-13T12:30:48+00:00

    ciao

    devi usare,visto che la cella contiene una lettera

    =CONTA.SE(A1:H1;"?")

    oppure

    =CONTA.SE(A1:H1;"?*")

    che ti conta le celle con più lettere

    La risposta è stata utile?

    0 commenti Nessun commento