| | Post: 8 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
03/03/2017 14:30 | |
Salve,
Ho i mesi Gennaio; Febbraio; Marzo etc.
Vorrei che in T24, fosse restituito il nome dei mesi che hanno lo stesso UTILE.
Se per esempio Gennaio e Marzo hanno lo stesso UTILE (100 €), in T24 deve comparirmi:
Gennaio, Marzo
file in allegato!
[Modificato da Yeshua75 03/03/2017 14:33] |
|
| | Post: 2.573 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
03/03/2017 16:15 | |
Se anche Maggio e Luglio hanno lo stesso utile (250 €) ma, diverso dall'utile di Gennaio e Marzo (100 €), in T24 cosa deve comparire?
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 8 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
03/03/2017 17:27 | |
uhmm,
in questo caso
se è possibile una frase, per esempio:
"trovati mesi con lo stesso utile"
o sinceramente non saprei . . . tu che diresti di fare? |
| | Post: 2.574 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
03/03/2017 17:34 | |
Che ne dici di un Codice VBA?
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 9 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
03/03/2017 17:39 | |
Si potrebbe andare bene anche questo. . . Intendi un alert? |
| | Post: 2.575 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
03/03/2017 17:49 | |
Pensavo ad una stringa con l'elenco di tutti i mesi con Utile uguale: - Gennaio, Marzo (100 €) - Maggio, Luglio (250 €)
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 10 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
03/03/2017 18:01 | |
Potrebbe andare . . . |
| | Post: 2.576 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
03/03/2017 18:09 | |
Che conoscenze hai di VBA?
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 11 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
03/03/2017 18:12 | |
Scarse, come vedi nel foglio c'è già qualcosa in VBA però vado per tentativi |
| | Post: 2.577 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
03/03/2017 19:43 | |
Ok, ora sto uscendo; domani mattina vedo quello che riesco a fare.
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 2.580 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
04/03/2017 07:58 | |
Non credo sia la soluzione ottimale, ma, dopo le abbondanti libagioni durante la cena di ieri sera, è il massimo che riesco a proporre.
In Cella "E38":
=SE(E$19="";0;CONTA.SE($E$21:$P$21;E$21)-1)
da copiare nel Range "E38:P38"
Pulsante "Test", collegato al Codice VBA:
Option Explicit
Sub Utili()
Application.ScreenUpdating = False
Dim x As Byte, y As Byte, NUt As Byte
Dim Utl As String
Range(Cells(37, 5), Cells(37, 16)).ClearContents
For x = 5 To 16
If Cells(21, x) = 0 Then Cells(37, x) = 0
Next x
Cells(37, 5).Value = "X"
For x = 5 To 15
If Cells(37, x).Value = "" And Cells(21, x).Value <> "" Then Cells(37, x).Value = "X"
If Cells(21, x) = "" Or Cells(37, x) <> 0 Then
If Cells(37, x) <> "" And Cells(21, x) <> "" And Cells(38, x) <> 0 Then Utl = Utl & Cells(18, x).Value
End If
NUt = 0
For y = 6 To 16
If Cells(21, x) = Cells(21, y) And Cells(21, y) <> "" And Cells(37, y).Value = "" Then
Utl = Utl & ", " & Cells(18, y)
Cells(37, x).Value = 0
Cells(37, y).Value = 0
NUt = 1
End If
Next y
If NUt = 1 Then Utl = Utl & " (" & Cells(21, x) & " €) - "
Next x
Utl = Left(Utl, Len(Utl) - 3)
Cells(24, 20).Value = Utl
Range(Cells(37, 5), Cells(37, 16)).ClearContents
Application.ScreenUpdating = True
Cells(24, 20).Select
End Sub
Il risultato viene proposto in Cella "T24"
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 12 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
04/03/2017 13:53 | |
Ok. Ora provo, intanto grazie!
Uhmm, nonostante tu sia stato chiarissimo non riesco a farlo funzionare (causa mie scarse conoscenze).
Potresti inviarmi il file che hai modificato tu?
[Modificato da Yeshua75 04/03/2017 15:00] |
| | Post: 13 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
04/03/2017 16:13 | |
OK, ci sono riuscito . . .
il fatto è che se le celle dell'UTILE sono vuote per tutti i MESI o non ci sono almeno 2 celle con lo stesso UTILE spunta fuori l'errore descritto nelle immagini.
Se si può fare, sarebbe bello che:
1) premendo il pulsante "test" e le celle UTILE sono tutte vuote, spuntasse la frase (MsgBox): "Attenzione! Nessun Utile trovato."
2) premendo il pulsante "test" e gli UTILI sono tutti differenti, spuntasse la frase (MsgBox): "Non ci sono mesi con lo stesso Utile."
3) premendo il pulsante "test" e almeno 2 Mesi hanno lo stesso UTILE, compia l'operazione normalmente per come hai fatto tu.
|
| | Post: 2.581 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
04/03/2017 19:36 | |
Yeshua75; chiede:
1) premendo il pulsante "test" e le celle UTILE sono tutte vuote, spuntasse la frase (MsgBox): "Attenzione! Nessun Utile trovato."
Option Explicit
Sub Utili()
Application.ScreenUpdating = False
Dim x As Byte, y As Byte, NUt As Byte
Dim Utl As String
If Application.WorksheetFunction.Max(Range("E19:P20")) = 0 Then
MsgBox "Nessun utile." & Chr(10) & " La prossima volta, prima di premere il pulsante " _
& Chr(34) & "Test" & Chr(34) & "," & Chr(10) & "controlla che ci sia almeno un Utile congruente."
End
End If
Yeshua75; chiede:
2) premendo il pulsante "test" e gli UTILI sono tutti differenti, spuntasse la frase (MsgBox): "Non ci sono mesi con lo stesso Utile."
Option Explicit
Sub Utili()
Application.ScreenUpdating = False
On Error GoTo 10
.
.
.
Range(Cells(37, 5), Cells(37, 16)).ClearContents
Application.ScreenUpdating = True
End
10:
Range(Cells(37, 5), Cells(37, 16)).ClearContents
MsgBox "Non ci sono mesi con lo stesso Utile."
Application.ScreenUpdating = True
End Sub
Non chiedermi di inviarti il File con il quale ho eseguito i Test; ci sono Celle unite.
Le Celle unite creano più problemi che benefici.
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 15 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
05/03/2017 08:39 | |
scusami, ma non riesco a capire dove mettere la 2a parte di codice. La prima la ho messa nella parte evidenziata e funziona . . . |
| | Post: 2.582 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
05/03/2017 12:39 | |
Yeshua75; chiede:
scusami, ma non riesco a capire dove mettere la 2a parte di codice.
Dove ho indicato, On Error GoTo intercetta eventali errori; i punti di sospensione rappresentano le istruzioni intermedie del Codice VBA.
Il Codice VBA completo potrebbe essere una cosa di questo tipo:
Option Explicit
Sub Utili()
Application.ScreenUpdating = False
On Error GoTo 10
Dim x As Byte, y As Byte, NUt As Byte
Dim Utl As String
If Application.WorksheetFunction.Max(Range("E19:P20")) = 0 Then
MsgBox "Nessun utile." & Chr(10) & " La prossima volta, prima di premere il pulsante " _
& Chr(34) & "Test" & Chr(34) & "," & Chr(10) & "controlla che ci sia almeno un Utile congruente."
End
End If
Range(Cells(37, 5), Cells(37, 16)).ClearContents
For x = 5 To 16
If Cells(21, x) = 0 Then Cells(37, x) = 0
Next x
Cells(37, 5).Value = "X"
For x = 5 To 15
If Cells(37, x).Value = "" And Cells(21, x).Value <> "" Then Cells(37, x).Value = "X"
If Cells(21, x) = "" Or Cells(37, x) <> 0 Then
If Cells(37, x) <> "" And Cells(21, x) <> "" And Cells(38, x) <> 0 Then Utl = Utl & Cells(18, x).Value
End If
NUt = 0
For y = 6 To 16
If Cells(21, x) = Cells(21, y) And Cells(21, y) <> "" And Cells(37, y).Value = "" Then
Utl = Utl & ", " & Cells(18, y)
Cells(37, x).Value = 0
Cells(37, y).Value = 0
NUt = 1
End If
Next y
If NUt = 1 Then Utl = Utl & " (" & Cells(21, x) & " €) - "
Next x
Utl = Left(Utl, Len(Utl) - 3)
Cells(24, 20).Value = Utl
Range(Cells(37, 5), Cells(37, 16)).ClearContents
Application.ScreenUpdating = True
Cells(24, 20).Select
End
10:
Range(Cells(37, 5), Cells(37, 16)).ClearContents
MsgBox "Non ci sono mesi con lo stesso Utile."
Application.ScreenUpdating = True
Cells(24, 20).Select
End Sub
Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 16 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
05/03/2017 13:21 | |
Grazieeeee!!!!!
Sei stato fantastico.
|
| | Post: 17 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
05/03/2017 14:22 | |
rieccomi ,
con l'ultimo codice che mi hai dato funziona tutto benissimo ma appena metto la protezione al foglio ad eccezione delle celle sbloccate, spunta l'errore in figura ed il pulsante test non va.
Si può fare qualcosa? [Modificato da Yeshua75 05/03/2017 15:57] |
| | Post: 19 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
05/03/2017 16:29 | |
Niente, non va.
Appena metto la protezione al foglio spunta l'errore di cui sopra . . .
ho provato anche a registrare la macro. |
| | Post: 2.583 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
06/03/2017 07:38 | |
Leggo solo ora. Yeshua75; scrive:
Niente, non va.
Appena metto la protezione al foglio spunta l'errore di cui sopra . . .
ho provato anche a registrare la macro.
Non mi pare si fosse parlato di Foglio di lavoro protetto, nel qual caso avrei inserito all'inizio del Codice VBA: ActiveSheet.Unprotect Password:= tua password e, alla fine: ActiveSheet.Protect Password:= tua password
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 21 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
06/03/2017 15:12 | |
Premetto che il mio scopo è quello di proteggere il foglio per evitare che accidentalmente vengano cancellate formule e modificati scenari.
Detto questo, perdona la mia ignoranza, questo è il codice che mi hai dato.
In quale punti devo inserire le 2 stringhe?
E quando le inserisco devo farlo con foglio Protetto o no?
p.s.: volevo incollarti il codice ma non ho ancora capito sull'editor come fare quando ti rispondo . . .
[Modificato da Yeshua75 06/03/2017 15:18] |
| | Post: 22 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
06/03/2017 17:20 | |
Ho provato a mettere il codice all'inizio e alla fine con la mia password ma mi dà sempre errore |
| | Post: 23 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
06/03/2017 19:33 | |
ActiveSheet.Unprotect Password:= "tua password"
ho risolto, non sapevo che dovevo mettere la mia password tra le "" virgolette.
Ora però mi leva la protezione al foglio quando premo il pulsante "test" e non la rimette più.
Non so come mettere le 2 stringhe in modo tale che quando premo test tolga la password per non andare in errore e dopo aver fatto il calcolo la rimetta per evitare che le celle restino sbloccate.
[Modificato da Yeshua75 06/03/2017 20:41] |
| | Post: 25 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
07/03/2017 14:16 | |
Siiii,
ci sono riuscito, mettendo le stringhe nei punti evidenziati.
Grazie per il tuo aiuto, senza di te non ci sarei riuscito!!
|
| | Post: 26 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
07/03/2017 14:49 | |
. . . solo una ultima cosa se è possibile.
se ci sono due mesi con utile negativo come in figura e metto solo il dato "OUT", premendo il pulsante "TEST" nel mio caso "CALCOLA" i mesi trovati in "T24" non sono corretti.
Si può fare qualcosa?
|
| | Post: 2.585 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
07/03/2017 18:52 | |
Potresti provare a modificare la Formula in Cella "E38", in questo modo: =SE(E(E$19="";E$20="");0;CONTA.SE($E$21:$P$21;E$21)-1) da copiare nel Range "E38:P38" Però, perdonami, ma credo che Forum non sia la piattaforma più adeguata per richieste che continuano a cambiare. A mio modesto parere, Forum può fornirti delle indicazioni di base, non una soluzione "chiavi in mano", per questo esistono ottime Software House che, a costi contenuti, possono offrire una soluzione adeguata con modifiche in corso d'opera. Con amicizia, Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 27 | Registrato il: 02/03/2017
| Città: TRAPANI | Età: 49 | Utente Junior | Microsoft 365 | | OFFLINE | |
|
07/03/2017 23:04 | |
Sì hai ragione.
Ma sono cose l'una legata all'altra e che cambiano di conseguenza.
Viene spontaneo chiedere aiuto a persone preparate e disponibili come te.
Io con l'età che mi ritrovo e col tempo che trovo cerco di fare del mio meglio ma non è semplice per me.
E poi come si dice:
Ubi maior minor cessat.
Il forum tecnicamente è sicuramente quello che dici tu ma è anche condivisione ed aiutare gli altri, come appunto hai fatto tu con me.
Grazie ancora.
Con amicizia, Salvo!
|
| | Post: 2.586 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
09/03/2017 06:48 | |
Buona giornata, Salvo; riesco a leggere solo ora. Le Tue sono Considerazioni molto giuste. Alla prossima. Buon Lavoro e buona serata. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
|
|