| | 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 |
|
|