Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Copia valore con segno opposto se

Ultimo Aggiornamento: 02/10/2023 17:04
Post: 82
Registrato il: 12/03/2014
Città: MODENA
Età: 54
Utente Junior
2019
OFFLINE
28/09/2023 18:28

Ciao a tutti,
Ho un foglio che è il risultato di un'estrazione di un ERP quindi popolato solo da valori e mancante delle relative formule.
Avrei 2 problemi:

1) Se nella colonna F sono presenti valori xxxxx o yyyyy dovrei prendere il valore nella colonna H, copiarlo con segno opposto nella colonna G, e portare a 0 il valore nella colonna H

2) Facendo questa operazione anche i valori presenti nelle colonne I J K perdono di significato. Per questo vorrei sostituire tali valori con le relative formule che mi porterebbero poi ad avere i dati corretti. Nel foglio risultato desiderato ho messo le formule con delle note di spiegazione.

Ho provato a spiegarmi nel modo più chiaro possibile, ma mi rendo conto che potrebbe essere non molto chiaro.
Allego un'esempio con relativo foglio di quello che vorrei ottenere.
Grazie a tutti in anticipo

Lurik
Excel 365
Post: 3.093
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Master
365
OFFLINE
28/09/2023 18:41

ciao
ma lo vuoi su un'altro foglio o sulla stessa tabella
se nella stessa tabella ci vuole il vba
altrimenti si può fare con formule
Post: 7.362
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
29/09/2023 08:59

Ciao, con le formule non saprei farlo, ma basta questa macro

Sub Formule()
Dim r, r1, c, x, y, k

r1 = Cells(Rows.Count, 7).End(xlUp).Row
Range("I2:I" & r1).FormulaR1C1 = "=RC[-1]-RC[-2]"
Range("J2:J" & r1).FormulaR1C1 = "=IF(RC[-4]=""Totali"",RC[-1]/RC[-2],"""")"
k = 2: c = 11
For x = 2 To r1
  If Cells(x, 6) = Cells(1, 16) Or Cells(x, 6) = Cells(2, 16) Then 'da modificare nel caso
    Cells(x, 7) = Cells(x, 8) * -1
    Cells(x, 8) = 0
  End If
  If Cells(x, 6) = "Totali" Then
    For y = k To x
      Cells(y, c).FormulaR1C1 = "=RC[-4]/R" & x & "C8"
    Next y
    k = y
  End If
Next x
End Sub


Ho inserito i valori xxxx-yyyyy nelle celle P1-P2, potrebbe darsi che il valore da controllare cambi cosi non bisogna modificare la macro nel caso cambiano.

in effetti la macro rispristina tutte le formule nelle celle, non fa altro
mette anche a 0zero il valore della colonna H e mette il valore negativo nella colonna precedente.
clicca sulla ballerina

vedi se va bene

Ciao By Sal (8-D
[Modificato da by sal 29/09/2023 09:02]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 82
Registrato il: 12/03/2014
Città: MODENA
Età: 54
Utente Junior
2019
OFFLINE
29/09/2023 09:29

Grazie Salvatore!
una certezza!!!!
Carino anche il tuo gif animato!!!! :-)

Ma il buon Giuseppe?!??
Che fine a fatto?

Ciao grazie ancora Lurik!
Excel 365
Post: 1.146
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Veteran
Excel2019
OFFLINE
29/09/2023 11:02

Salve a tutti

@by sal
Ciao Salvatore
Mi dici perchè la ballerina "non si muove"? Dovrebbe essere una .gif animata (come è stato detto).
Forse perchè la mia versione di Excel (2010) è oramai obsoleta?

Ciao,
Mario
Post: 7.363
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
29/09/2023 11:26

Ciao Mario, non lo so probabile la versione



questo il movimento

ma mi ricordo che anche con la versione 10 caricavo delle gif funzionanti per gli auguri di Natale

ti allego la gif prova a caricarla sul foglio



e vedi se funziona

Ciao Salvatore (8-D

se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 83
Registrato il: 12/03/2014
Città: MODENA
Età: 54
Utente Junior
2019
OFFLINE
29/09/2023 14:41

Ciao Sal
non mi è chiara questa parte del codice

Cells(y, c).FormulaR1C1 = "=RC[-4]/R" & x & "C8"

in particolare & x & "C8"
???
Sono molto ignorante in vba :-)
Excel 365
Post: 7.364
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
29/09/2023 17:00

Ciao, la formula nella colonna K ha un riferimento assoluto alla colonna F se contiene la stringa "Totali" che non è fissa cioè i totali a volte sono 6 righe ed a volte di più o di meno.

per cui devo prima trovare la stringa "Totali" e poi creare la formula con il RIFERIMENTO ASSOLUTO a quella riga, ed ecco il ciclo For..Next di "x" che trova "Totali" il secondo ciclo For..Next di "y" crea la formula facendo diventare la cella RIFERIMENTO ASSOLUTO con "in particolare & x & "C8".

se fai caso la formula dopo ogni "Totali" cambia in K2 trovi la formula "=G2/$H$7" che tradotta in vba diventa "=RC[-4]/R7C8" cioè "cella meno 4 colonne/H7 assoluto" dove x = 7 nella formula "RC[-4]/R" & x & "C8"

nella cella K8 la formula cambia perche deve far riferimento al prossimo "Totali" in "H15" e diventa "=G8/$H$15" ecco perche il secondo ciclo For..Next la formula non deve più partire da G2 ma dalla Riga appena sotto "Totali" precedente, che nel caso è 8 che assegno con la variabile "k", ti commento il codice vba

If Cells(x, 6) = "Totali" Then 'una volta che trovo Totali x è la riga dove si trova Totali
    For y = k To x ' cicla le celle da k ad x -- k è la cella di partenza oppure la cella appena dopo la riga "Totali"
      Cells(y, c).FormulaR1C1 = "=RC[-4]/R" & x & "C8" 'scrivo la formula mantenendo la x valore assoluto
    Next y
    k = y 'riassegno a k la riga dopo "Totali" in quanto finito il ciclo y è uguale ad x+1
  End If


spero di averti chiarito la tua perplessità ed aver spiegato bene il procedimento

Ciao By Sal (8-D
[Modificato da by sal 29/09/2023 17:12]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 84
Registrato il: 12/03/2014
Città: MODENA
Età: 54
Utente Junior
2019
OFFLINE
29/09/2023 17:41

Ciao Sal,
si ti sei spiegato perfettamente grazie mille!

mi sono accorto però di un errore, o meglio di una cosa che non avevo pensato/ previsto.
Cambiando i valori nelle colonne G e H nel caso di corrispondenza dei valori P1 e P2, le differenze nella colonna I sono corrette in quanto sostituite da una formula, ma i subtotali in colonna G e H perdono di significato.

Grazie ancora
Lurik

Excel 365
Post: 7.365
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
30/09/2023 07:44

Ciao Lurik, per la verità non ci ho pensato nemmeno io, perche non avevo considerato l'inserimento della cifra negativa riportando a 0zero l'altro valore.

eccoti la macro modificata, sostituiscila con quella precedente, dove ho inserito le formule per i subtotali.

Sub Formule()
Dim r, r1, c, x, y, k

r1 = Cells(Rows.Count, 7).End(xlUp).Row
Range("I2:I" & r1).FormulaR1C1 = "=RC[-1]-RC[-2]"
Range("J2:J" & r1).FormulaR1C1 = "=IF(RC[-4]=""Totali"",RC[-1]/RC[-2],"""")"
k = 2: c = 11
For x = 2 To r1
  If Cells(x, 6) = Cells(1, 16) Or Cells(x, 6) = Cells(2, 16) Then
    Cells(x, 7) = Cells(x, 8) * -1
    Cells(x, 8) = 0
  End If
  If Cells(x, 6) = "Totali" Then
    For y = k To x
      Cells(y, c).FormulaR1C1 = "=RC[-4]/R" & x & "C8"
    Next y
    'formule per il SubTotale
    Cells(x, 7).FormulaR1C1 = "=SUM(R[-" & x - k & "]C:R[-1]C)"
    Cells(x, 8).FormulaR1C1 = "=SUM(R[-" & x - k & "]C:R[-1]C)"
    k = y
  End If
Next x
End Sub


nella formula " & x - k & " serve a calcolare quante righe sommare
ho dovuto modificare sia la colonna G che la colonna H in quanto sono 2 totali di colonne differenti, non far caso che le formule sono uguali vengono applicate su colonne diverse, quindi cambiano l'indirizzo, questo è il bello delle formule "R1C1" possono essere applicate senza far caso alle lettere delle colonne, in quanto vengono considerate in numeri.

Ciao By Sal (8-D


[Modificato da by sal 30/09/2023 07:51]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 1.147
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Veteran
Excel2019
OFFLINE
02/10/2023 15:27

Ciao

@by sal
Salvatore, non m'ero dimenticato ma è stato più laborioso del previsto.
Per avere un'immagine animata in un Foglio Excel VERSIONE2010 occorre inserire un Controllo ActiveX Web Browser (da Sviluppo -> Inserisci controlli -> controlli ActiveX e clicchi su Altri controlli - Chiave e martello incrociati); nella finestra che si apre cerca Microsoft Web Brouser e, tornando sul foglio, disegna una finestra.
A questo punto occorre anche qualche riga di codice VBA. Nel Modulo del Foglio dove ci starà l'immagine inserire questo codice
Option Explicit

Private Sub Worksheet_Activate()

With WebBrowser1
  .Width = 200
  .Height = 150
  .Navigate "C:\Users\Xxxx\Downloads\balla.GIF"    'da modificare secondo le proprie esigenze: percorso completo + nome immagine con suffisso
  '.ScrollBars = 0 'fmScrollBarsNone
End With
End Sub
Quindi bisogna spostarsi su un altro Foglio. Quando ritorni su tuo Foglio vedrai l'immagine animata.
Nel codice ho lasciato 'ultima riga commentata perchè non riesco ad eliminare le barre di scorrimento (all'inizio me ne sono apparse due - verticale e orizzontale ma poi ne è rimasta una sola verticale).

So che sono OT e chiedo scusa ma volevo dare il mio contributo a coloro che hanno una vecchia versione di Excel.
Ciao,
Mario
Post: 7.367
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
02/10/2023 16:12

Ciao Mario, io ho una cartella con le immagini e faccio solamente Inserisci immagine con un comando Excel, dovresti averlo anche tu, vedi l'immagine, ho una barra personalizzata con tutti i comandi che mi servono più spesso, uso il comando che vedi per importare immagini o Gif sul foglio.



dovresti trovarlo nei comandi del menu "Personalizza barra di accesso rapido"

Ciao Salvatore (8-D

[Modificato da by sal 02/10/2023 16:17]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 1.148
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Veteran
Excel2019
OFFLINE
02/10/2023 17:04

Ciao
Ho sempre fatto come da te consigliato ma le immagini rimangono "statiche".
Tutti i siti che ho visitato danno per scontato che per inserire in un Foglio di Excel 2010 un'immagine animata occorre Web Browser e VBA, come ho detto prima.

Ciao,
Mario
Vota: 15MediaObject5,00213 2
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 11:54. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com