Condividi tramite

macro controllo somma

Anonimo
2023-02-15T16:37:20+00:00

Buonasera,

ho un file in excel così composto:

cella A1 = un numero (esempio 100)

cella a3 = 30

cella a4 = 70

cella 18 = somma delle celle a3+a4

Vorrei creare una macro che mi controlli se a1=a18 nel caso "vero" mi camcelli il contenuto di a18 e mi salvi il file

Nel caso di "falso" mi indichi nella cella b1 un messaggio di errore

E' possibile?

Grazie a chi mi aiuterà

Pietro

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

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

7 risposte

Ordina per: Più utili
  1. Anonimo
    2023-02-17T12:05:48+00:00

    Prova il codice VBA qui sotto

    Sub CheckAndDelete() Se intervallo("B1"). Valore = Intervallo("B18"). Valore e intervallo("D1"). Valore = Intervallo("D18"). Valore quindi Intervallo("B18"). ClearContents 'Elimina il contenuto della cella B18 Oppure puoi usare Range("D18"). ClearContents per eliminare invece la cella D18 ThisWorkbook.Save » Salva il file Altro Intervallo("B18"). Interior.ColorIndex = 3' Evidenzia la cella B18 in rosso Fine Se Fine sub

    Questo codice controlla se la cella B1 è uguale a B18 e D1 è uguale a D18. Se sono uguali, elimina il contenuto della cella B18 o D18 (è possibile scegliere quale eliminare commentando/decommentando la riga appropriata) e salva il file. Se non sono uguali, evidenzia la cella B18 in rosso.

    Cordiali saluti Shakiru ·

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-02-17T11:22:17+00:00

    Ci sono riuscito (più o meno..) e per questo chiedo "aiuto"

    Ho capito come fare la somma delle celle con queste istruzioni

    Set zona = Range([b5], [b17].End(xlDown))

        [b18] = WorksheetFunction.Sum(zona)

        Set zona = Range([d5], [d17].End(xlDown))

        [d18] = WorksheetFunction.Sum(zona)

    ORA devo solo capire (ma non riesco) come far dire che se la cella B1 è uguale a B18 (e D1 uguale a D18) deve cancellare B18 o D18 e salvare il file mentre in caso contrario evidenziare messaggio di errore

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-02-17T09:36:49+00:00

    Certo, prova il codice VBA qui sotto che controlla se la cella B1 è uguale alla somma delle celle B5: B16 e la cella D1 è uguale alla somma delle celle D5: D16. Se le condizioni sono soddisfatte, la macro salva il file. In caso contrario, la macro scrive "ERROR" nella cella B17 o D17 di conseguenza:

    Sub CheckAndSave() Declare variables Dim bSum As Double Dim dSum come doppio Dim ws come foglio di lavoro Dim bRange As Intervallo Intervallo Dim dRange As

    Set worksheet object Set ws = Worksheets("Sheet1") ' Replace "Sheet1" with your worksheet name

    Set range objects Impostare bRange = ws. Intervallo("B1:B16") Imposta dRange = ws. Intervallo("D1:D16")

    Compute sums bSum = Application.WorksheetFunction.Sum(bRange) dSum = Application.WorksheetFunction.Sum(dRange)

    Check if B1 and D1 are equal to the sums Se ws. Intervallo("B1"). Valore = bSum e ws. Intervallo("D1"). Valore = dSum Allora Save the file ThisWorkbook.Save Altro Write "ERROR" in cell B17 or D17 accordingly Se ws. Intervallo("B1"). Valore <> bSum allora Ws. Intervallo("B17"). Valore = "ERRORE" Fine Se Se ws. Intervallo("D1"). Valore <> dSum then Ws. Intervallo("D17"). Valore = "ERRORE" Fine Se Fine Se Fine sub

    Nota: Assicurarsi di sostituire "Foglio1" con il nome effettivo del foglio di lavoro e, se necessario, modificare i riferimenti di cella.

    Cordiali saluti Shakiru ·

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-02-17T08:52:39+00:00

    Buongiorno, innanzitutto grazie per la risposta ma..non ho capito molto. Mi spiego meglio.. Quello che ho allegato sotto è il tabellino di una partita di basket. La macro che vorrei scrivere dovrebbe controllare che la cella B1 sia uguale alla somma delle celle B5:B16 e che la cella D1 sia uguale alla somma delle celle D5:D16. In caso positivo (che corrisponda cioè..) la macro dovrebbe salvare il file. In caso negativo che mi indichi "ERRORE" nella cella B17 nel primo caso o nella cella D17 nel secondo.. Spero di essere stato chiaro e...GRAZIE per la comprensione

    Pietro

    ACQUA SAN BERNARDO 55 Apu Old Wild West Udine 74
    Arbitri : Gianluca Gagliardi - Daniele Valleriani - Antonio Bartolomeo
    Marco Cusin 0 Alessandro Cappelletti 25
    Stefan Nikolic 2 Michele Antonutti 7
    Matteo Da Ros 10 Marco Giuri 0
    Trevon Allen 8 Brandon Walters 4
    Zack Bryant 12 Francesco Pellegrino 6
    Lorenzo Bucarelli 9 Nazzareno Italiano 0
    Jordan Bayehe 3 Ethan Esposito 7
    Ilia Boev 0 Alessandro Cappelletti 8
    Giovanni Severini 2 Federico Mussini 9
    Francesco Stefanelli 9 Marco Pieri 0
    Michele Ebeling 8
    Riccardo Azzano 0
    All. Marco Sodini All. Matteo Boniciolli

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2023-02-15T17:29:56+00:00

    Ciao Pietro1959!

    Potrebbe essere necessario utilizzare le funzioni macro di seguito, si prega di seguire questi passaggi indicati di seguito:

    Aprire il file di Excel con cui si desidera utilizzare la macro. Premere ALT+F11 per aprire Visual Basic Editor. In Visual Basic Editor passare a "Inserisci" > "Modulo" per creare un nuovo modulo. Copia e incolla il codice sottostante nel nuovo modulo.

    Sub CheckSum() «Controllare se A1 è uguale alla somma di A3 e A4 Se intervallo("A1"). Valore = Intervallo("A3"). Valore + Intervallo("A4"). Valore quindi «Cancellare il contenuto di A18 Intervallo("A18"). ClearContents 'Salva il file Metodo ActiveWorkbook.Save Altro 'Visualizza un messaggio di errore in B1 Intervallo("B1"). Valore = "Errore: A1 non è uguale alla somma di A3 e A4" Fine Se Fine sub

    Test: fare clic sul pulsante Esegui o Chiudere Visual Basic Editor. Tornare al foglio di Excel e premere ALT+F8 per aprire la finestra di dialogo della macro. Selezionare la macro "CheckSum" e fare clic sul pulsante "Esegui" per eseguire la macro.

    La macro controllerà se A1 è uguale alla somma di A3 e A4. In tal caso, cancellerà il contenuto di A18 e salverà il file. In caso contrario, verrà visualizzato un messaggio di errore in B1. Si noti che la macro presuppone che i valori A1, A3 e A4 siano numeri. In caso contrario, potrebbe essere necessario aggiungere codice aggiuntivo per gestire questo problema.

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento