Come inserire simbolo automaticamente in base al valore della cella (VBA)

Anonimo
2024-03-21T16:49:18+00:00

Volevo sapere come si può impostare con l'uso del VBA su Excel che, quando modifico il valore di una cella, rispetto il valore di un’altra cella collegata, si inserisca in alto a dx della cella un simbolo (ad esempio l’asterisco * oppure una lettera) per indicare che quel valore è stato modificato. Ad esempio, io nella cella B3 utilizzo la seguente formula nella formattazione condizionale: =B3<>PROPOSTE!B3. 

Come posso inserire nella cella B3 (se il valore è diverso dalla cella B3 del foglio “proposte”) * in alto a dx della cella? Grazie dell’aiuto.

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
Risposta accettata dall'autore della domanda
Anonimo
2024-03-29T10:23:16+00:00

O mamma mia ... questa cosa sembra più complicata del quadro RU che ho predisposto, e ancora non completato, di una dichiarazione di una società piena di crediti d'imposta :)

Prova a scaricare questo file: File Esempio modificato

La risposta è stata utile?

0 commenti Nessun commento

60 risposte aggiuntive

Ordina per: Meno recente
  1. Anonimo
    2024-03-26T15:44:15+00:00

    Va bene. La ringrazio. L’unica cosa: io dovrei confrontare tutte le celle da B3 a AX20. Ad esempio devo confrontare la cella C4 con la relativa cella C4 del foglio “proposte”. La ringrazio.

    Ciao Gabrielle, mi chiamo David e sono qui per aiutarti Per inserire automaticamente un simbolo, ad esempio un asterisco, in base al valore di un'altra cella collegata in Excel, è possibile utilizzare il codice VBA (Visual Basic, Applications Edition). Ecco un esempio di come puoi raggiungere questo obiettivo: 1. Premere ALT+F11 per aprire Visual Basic Editor. 2. Inserire un nuovo modulo cliccando su "Inserisci" e poi selezionando "Modulo". 3. Nel modulo, incolla il seguente codice: '''vba Sub privato Worksheet_Change(ByVal Target come intervallo) Se Target.Address = "$B$3" allora ' Cambia B3 nella cella che desideri monitorare Se Fogli di lavoro Target.Value <> ("PROPOSTE"). Intervallo("B3"). Valore Quindi ' Cambia PROPOSTE e B3 con il nome del foglio e la cella con cui vuoi confrontare Target.ClearFormats ' Cancella qualsiasi formattazione esistente Target.Font.Name = "Arial" ' Cambia il nome del carattere come desiderato Target.Font.Size = 10 ' Cambia la dimensione del carattere come desiderato Target.Font.Color = RGB(0, 0, 0) ' Cambia il colore del carattere come desiderato Target.Font.FontStyle = "Grassetto" ' Cambia lo stile del carattere come desiderato Target.Characters(1, 1). InsertSymbol CharacterNumber:=42, FontName:="Wingdings" ' Modificare il simbolo e il nome del carattere come desiderato Fine se Fine se Fine sottomarino ''' 4. Chiudere Visual Basic Editor. Ora, ogni volta che modifichi il valore nella cella B3, lo confronterà con la cella B3 nel foglio "PROPOSTE". Se i valori sono diversi, verrà inserito un simbolo asterisco in alto a destra della cella. Puoi personalizzare il carattere, la dimensione, il colore, lo stile e il simbolo in base alle tue preferenze modificando il codice. Ricordarsi di salvare il file Excel come cartella di lavoro abilitata per le macro (.xlsm) per conservare il codice VBA. Fammi sapere se hai bisogno di ulteriore assistenza o hai altre domande! Sono contento di aver potuto aiutare, per favore lascia un feedback positivo.

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

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2024-03-26T15:47:57+00:00

    Per confrontare più celle da B3 a AX20 e inserire un simbolo in base al valore di ogni cella corrispondente nel foglio "PROPOSTE", è possibile modificare il codice VBA come segue:

    '''vba Sub privato Worksheet_Change(ByVal Target come intervallo) Dim rng come intervallo Imposta rng = Intervallo("B3:AX20") ' Cambia l'intervallo nelle celle desiderate

    Se non intersect(target, rng) non è nulla allora Attenua cella come intervallo Per ogni cella in Intersect(Target, rng) Se la cell. Fogli di lavoro di valore <> ("PROPOSTE"). Intervallo(cell. Indirizzo). Valore allora cellula. CancellaFormati cell.Font.Name = "Arial" cellula. Font.Size = 10 cellula. Font.Color = RGB(0, 0, 0) cellula. Font.FontStyle = "Grassetto" cellula. Caratteri(1, 1). InsertSymbol CharacterNumber:=42, FontName:="Wingdings" Fine se Cella successiva Fine se Fine sottomarino '''

    Con questo codice, tutte le modifiche apportate alle celle da B3 ad AX20 verranno confrontate con le celle corrispondenti nel foglio "PROPOSTE". Se i valori sono diversi, verrà inserito un asterisco in alto a destra di ogni cella.

    Ricordarsi di salvare il file Excel come cartella di lavoro abilitata per le macro (.xlsm) per conservare il codice VBA.

    Sono contento di aver potuto aiutare Gabrielle, gentilmente lascia un feedback positivo.

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

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-03-26T16:00:01+00:00

    La ringrazio del prezioso contributo. Ora le faccio un’altra richiesta: riesce a creami un codice che mi permette di inserire un * solo se il valore della cella in PROPOSTE è minore di 6, e quindi nella cella relativa del foglio “scrutinio” è diventato >=6 (ossia maggiore o uguale a 6).

    Se invece la cella nel foglio “proposte” è stata modificata nel foglio “scrutinio” si deve inserire la C in alto a destra.

    Riassumendo, quando si modifica il valore della cella dal foglio proposte al foglio scrutinio si deve inserire sempre la C. Quando poi il valore di “proposte” è minore di 6, e nella relativa cella della cartella “scrutinio” è stata aumentata a 6 o maggiore di 6, si deve inserire oltre alla C anche *.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2024-03-26T16:32:42+00:00

    Ciao Grazie per aver condiviso la tua richiesta. Sembra che tu stia cercando un codice che possa aiutarti ad aggiornare automaticamente i valori in fogli diversi in base a determinate condizioni. Anche se non posso scrivere il codice per te qui, posso darti alcune indicazioni su come puoi raggiungere questo obiettivo.

    È possibile utilizzare una combinazione di istruzioni IF e riferimenti di cella per creare il comportamento desiderato. Di seguito è riportata una panoramica generale della logica che è possibile seguire:

    1. Nel foglio "ballot", utilizzare un'istruzione IF per verificare se il valore nella cella corrispondente nel foglio "proposte" è inferiore a 6.
    2. In caso affermativo, immettere "C" nella cella in alto a destra del foglio "scheda elettorale".
    3. In caso contrario, controlla se il valore nel foglio "proposte" è stato aumentato a 6 o superiore nel foglio "ballottaggio".
    4. In caso affermativo, immettere "*" oltre a "C" nella cella in alto a destra del foglio "scheda".

    È possibile applicare questa logica a celle e fogli specifici del documento. Ricordarsi di regolare i riferimenti e le condizioni delle celle in base alla configurazione effettiva.

    Spero che questo ti dia un buon punto di partenza per il tuo codice! Si prega di lasciare un feedback positivo.

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

    La risposta è stata utile?

    0 commenti Nessun commento