| | Post: 3 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
15/03/2017 16:47 | |
Ciao a tutti.
Avrei bisogno di un aiuto. Premetto non so se questo sia fattibile ma ci provo.
Dovrei creare un elenco in una pagina con nella prima colonna dei valori di testo (es. A-B-C) e nella seconda colonna dei valori numerici positivi e negativi (es. 1-2-3 o -1;-2;-3).
Nella seconda pagina vorrei che si creasse un elenco raggruppando i valori numerici legati ad ogni lettera.
Ad esempio se nel foglio 1 inserisco
A 1
B 5
A 2
B -5
A -3
Vorrei che nel secondo foglio uscisse questo
1
2
-3
e poi
5
-5
Vi allego il file così è più chiaro.
Ringraziandovi fin da ora vi auguro una meravigliosa giornata! |
|
| | Post: 1.116 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
15/03/2017 17:00 | |
Ciao
da quel che sembra dall'allegato vorresti 2 colonne per ogni lettera (stringa), una per i valori negativi ed una per quelli positivi, ed è un po' diverso da quanto hai esposto nel tuo post.
Ciò premesso, i numeri, per esempio positivi, devono essere crescenti? Lo stesso vale per i negativi?
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 3 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
15/03/2017 17:04 | |
dodo47, 15/03/2017 17.00:
Ciao
da quel che sembra dall'allegato vorresti 2 colonne per ogni lettera (stringa), una per i valori negativi ed una per quelli positivi, ed è un po' diverso da quanto hai esposto nel tuo post.
Ciò premesso, i numeri, per esempio positivi, devono essere crescenti? Lo stesso vale per i negativi?
saluti
Ciao, ti ringrazio per la risposta.
Se è possibile si due colonne sennò anche solo una riportando tutti i valori (negativi e/o positivi) in colonna.
i numeri devono essere inseriti con l'ordine con cui sono stati inseriti nel primo foglio.
Non so se sono stata chiara. |
| | Post: 1.117 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
15/03/2017 17:40 | |
Ciao
perché non copi i dati dal foglio1 al foglio2 e su questo fai un ordina per colonna A ?
saluti Domenico
Win 10 - Excel 2016 |
| | Post: 4 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
15/03/2017 21:50 | |
dodo47, 15/03/2017 17.40:
Ciao
perché non copi i dati dal foglio1 al foglio2 e su questo fai un ordina per colonna A ?
saluti
Quello che vorrei è appunto che i dati si copino in automatico man mano che nel foglio 1 vengono inseriti però non so se questo con Excel sia possibile |
| | Post: 1.118 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
17/03/2017 09:36 | |
Ciao
si, è fattibile, ma se correggi nel foglio1 una lettera/numero già riportata nel foglio2, ti verrebbe aggiunta comunque.
Mi spiego meglio:
- nel foglio1 inserisci B...10 e nel foglio2 ti ritrovi B...10
- ora se correggi il B...10 di foglio1 con B...9, nel foglio2 ti ritrovi entrambi: B...10 e B...9
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 5 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
17/03/2017 09:53 | |
dodo47, 17/03/2017 09.36:
Ciao
si, è fattibile, ma se correggi nel foglio1 una lettera/numero già riportata nel foglio2, ti verrebbe aggiunta comunque.
Mi spiego meglio:
- nel foglio1 inserisci B...10 e nel foglio2 ti ritrovi B...10
- ora se correggi il B...10 di foglio1 con B...9, nel foglio2 ti ritrovi entrambi: B...10 e B...9
saluti
Mi sta bene questo ma se io continuo ad aggiungere valori?
Cioè B...10 poi metto B...12 etc nella seconda pagina cosa trovo?
E come si fa questa operazione?
Perchè io nel foglio di esempio ho indicato ciò che vorrei vedere in fine, non ho messo nessuna formula.
Saluti |
| | Post: 1.119 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
17/03/2017 11:49 | |
Ciao
lo puoi fare utilizzando l'evento change del foglio.
Questa la macro inserita nel foglio1:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, LastCell As Range
If Not Intersect(Target, Range("A:B")) Is Nothing Then
Set Sh = Worksheets("Foglio2")
If Target.Count > 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Cells(Target.Row, 1) <> "" And Cells(Target.Row, 2) <> "" Then
lettera = Cells(Target.Row, 1)
numero = Cells(Target.Row, 2)
With Sh.Range("1:1")
Set C = .Find(lettera, LookIn:=xlValues, lookat:=xlWhole)
If Not C Is Nothing Then
If numero < 0 Then colonna = C.Column + 1 Else colonna = C.Column
Set LastCell = Sh.Cells(.Rows.Count, colonna).End(xlDown)
ur = LastCell.Row + 1
Sh.Cells(ur, colonna) = numero
End If
End With
End If
End If
End Sub
NB: i valori vengono riportati solo dopo che sono stati inseriti entrambi in col A e B del foglio1.
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 6 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
17/03/2017 12:22 | |
dodo47, 17/03/2017 11.49:
Ciao
lo puoi fare utilizzando l'evento change del foglio.
Questa la macro inserita nel foglio1:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, LastCell As Range
If Not Intersect(Target, Range("A:B")) Is Nothing Then
Set Sh = Worksheets("Foglio2")
If Target.Count > 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Cells(Target.Row, 1) <> "" And Cells(Target.Row, 2) <> "" Then
lettera = Cells(Target.Row, 1)
numero = Cells(Target.Row, 2)
With Sh.Range("1:1")
Set C = .Find(lettera, LookIn:=xlValues, lookat:=xlWhole)
If Not C Is Nothing Then
If numero < 0 Then colonna = C.Column + 1 Else colonna = C.Column
Set LastCell = Sh.Cells(.Rows.Count, colonna).End(xlDown)
ur = LastCell.Row + 1
Sh.Cells(ur, colonna) = numero
End If
End With
End If
End If
End Sub
NB: i valori vengono riportati solo dopo che sono stati inseriti entrambi in col A e B del foglio1.
saluti
E' proprio quello che volevo. Ora provo a vedere se riesco ad applicarlo al mio file ufficiale.
Eventualmente, dato che sei così gentile, ti disturbo nuovamente!
Per il momento ti ringrazio!
|
| | Post: 7 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
17/03/2017 12:29 | |
dodo47, 17/03/2017 11.49:
Ciao
lo puoi fare utilizzando l'evento change del foglio.
Questa la macro inserita nel foglio1:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sh As Worksheet, LastCell As Range
If Not Intersect(Target, Range("A:B")) Is Nothing Then
Set Sh = Worksheets("Foglio2")
If Target.Count > 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Cells(Target.Row, 1) <> "" And Cells(Target.Row, 2) <> "" Then
lettera = Cells(Target.Row, 1)
numero = Cells(Target.Row, 2)
With Sh.Range("1:1")
Set C = .Find(lettera, LookIn:=xlValues, lookat:=xlWhole)
If Not C Is Nothing Then
If numero < 0 Then colonna = C.Column + 1 Else colonna = C.Column
Set LastCell = Sh.Cells(.Rows.Count, colonna).End(xlDown)
ur = LastCell.Row + 1
Sh.Cells(ur, colonna) = numero
End If
End With
End If
End If
End Sub
NB: i valori vengono riportati solo dopo che sono stati inseriti entrambi in col A e B del foglio1.
saluti
Ciao purtroppo sono un po' imbranata nel campo.
Se ti allegassi il file da cui devo partire riusciresti ad inserirmi la macro?
Ti ringrazio infinitamente! |
| | Post: 1.120 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
17/03/2017 13:22 | |
Ciao
come vuoi...ma spero non ci siano dati sensibili
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 2.954 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
17/03/2017 14:55 | |
Ciao Domenico
Mi permetto di rispondere ad Arianna così, dicendole come procedere, in futuro non avrà più bisogno di chiedere come fare.
Arianna supponendo che il tuo file originale sia strutturalmente uguale a quello che hai postato fai così:
1) Apri l'editor di VBA con Alt+F11
2) In alto a sinistra trovi la finestra progetto
3) Fai doppio clic su Foglio1
4) Nella finestra in alto a destra copia ed incolla il codice di Domenico
5) Torna al foglio e salva. [Modificato da alfrimpa 17/03/2017 14:55]
Alfredo |
| | Post: 8 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
17/03/2017 16:48 | |
Ciao Alfredo,
purtroppo pensavo fosse più facile tutto ciò.
Con le macro non sono per niente ferrata.
Sei stato chiarissimo con la spiegazione però nel caso dovessi inserire altri campi al posto di A e B (esempio:123 - 345) oppure aggiungere a A e B altre lettere tipo C o D come faccio?
Siete sempre così cordiali!
Grazie mille ancora!
|
| | Post: 9 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
17/03/2017 17:00 | |
dodo47, 17/03/2017 13.22:
Ciao
come vuoi...ma spero non ci siano dati sensibili
saluti
Ciao!
Ecco il file però nel caso dovessi cambiare o aggiungere i codici di "riferimento" come faccio?
Pensavo fosse tutto molto più semplice
Grazie mille ancora per il grandissimo aiuto! |
| | Post: 1.124 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
17/03/2017 17:32 | |
Ciao
magari la prossima volta sottoponi l'esempio reale, così evitiamo tutti di perdere tempo.
Il foglio totali viene alimentato una volta che in conteggi hai inserito i valori in C e D.
Con la stessa struttura, in conteggi puoi aggiungere quello che vuoi, basta che in totali, riga 3 riporti il cer con sotto caricato/scaricato.
I totali del foglio totali li devi mettere in alto, così come li vedi, altrimenti non si riesce a rilevare la prima riga libera sulla quale scrivere.
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 10 | Registrato il: 08/03/2017
| Città: LECCO | Età: 31 | Utente Junior | 2013 | | OFFLINE | |
|
20/03/2017 10:38 | |
dodo47, 17/03/2017 17.32:
Ciao
magari la prossima volta sottoponi l'esempio reale, così evitiamo tutti di perdere tempo.
Il foglio totali viene alimentato una volta che in conteggi hai inserito i valori in C e D.
Con la stessa struttura, in conteggi puoi aggiungere quello che vuoi, basta che in totali, riga 3 riporti il cer con sotto caricato/scaricato.
I totali del foglio totali li devi mettere in alto, così come li vedi, altrimenti non si riesce a rilevare la prima riga libera sulla quale scrivere.
saluti
Pensavo che il quesito era risolvibile con una formula che avrei potuto poi adattare al mio foglio per quello ho messo un esempio fittizio.
Vi ringrazio tanto! Siete stati davvero gentili e mi avete aiutato moltissimo!
Buona giornata!!
|
|
|