| | Post: 4 | Registrato il: 29/06/2008
| Città: ACQUAFONDATA | Età: 44 | Utente Junior | excel 2007 | | OFFLINE | |
|
24/01/2017 14:21 | |
salve a tutti
cerco aiuto su una cosa che vorrei fare.
ho un file excel composto da molti sheet ( all'incirca 60 ) con nomi che cambiano almeno una volta ogni due mesi.
in questi sheet dovrei trovare un valore, nel mio caso la cella con il valore (6), e in corrispondenza di quel valore copiare la cella a sinistra e riportare il nome del foglio dove si trova.
penso sia abbastanza complicato e io non so dove mettermi le mani ...
help meeee
grazie
paola |
|
| | Post: 2.631 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
24/01/2017 15:07 | |
Ciao Paola.
Per poterti meglio aiutare dovresti allegare un file di esempio (non è necessario con 60 fogli; ne basta qualcuno) con dati non sensibili e sulla base di questi spiegare quello che vuoi fare/ottenere.
Alfredo |
| | Post: 4 | Registrato il: 29/06/2008
| Città: ACQUAFONDATA | Età: 44 | Utente Junior | excel 2007 | | OFFLINE | |
|
24/01/2017 16:55 | |
allego un file di esempio ...
praticamente nello sheet 335XXXXX nella cella P115 ho come valore (6) ..... io vorrei trovare quel valore e riportarmi la cella alla sinistra ( in questo caso 48.00) e che mi mettesse il nome dello sheet dove lo trova .....
ovviamente io ho tantissimi sheet .....
se potete aiutarmi ve ne sarei grata.
grazie
|
| | Post: 48 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Junior | 2016 | | OFFLINE |
|
24/01/2017 17:30 | |
Ciao
nel tuo file di esempio non sapendo dove vuoi il dato estratto l'ho messo in S115 per trovare il valore della cella a sinistra di (6)
=INDIRETTO("r"&MATR.SOMMA.PRODOTTO(($A$1:$P$147="(6)")*RIF.RIGA(A1:P147))&"c"&MATR.SOMMA.PRODOTTO(($A$1:$P$147="(6)")*RIF.COLONNA(A1:P147))-1;FALSO)
per sapere il nome del foglio in S117
=DESTRA(CELLA("filename";A1);LUNGHEZZA(CELLA("filename";A1))-TROVA("]";CELLA("filename";A1))) |
| | Post: 2.637 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
24/01/2017 17:38 | |
Preciso solo che la seconda formula di Danilo (che saluto) funziona solo se il file è stato già salvato.
Alfredo |
| | Post: 5 | Registrato il: 29/06/2008
| Città: ACQUAFONDATA | Età: 44 | Utente Junior | excel 2007 | | OFFLINE | |
|
25/01/2017 09:13 | |
grazie mille ...
la formula per il nome del foglio mi restituisce errore
io ho excel in inlgese .... forse ho tradotto qualcosa male ?
=RIGHT(cel("filename";A1);LEN(cel("filename";A1))-FIND("]";cel("filename";A1)))
inoltre il mio problema è che questi dati me li deve riportare diciamo su uno sheet nuovo leggendo tutti gli sheet del file ( poiche' sono piu di 60 fogli .... quindi deve leggere tutti i 60 fogli e riportarmi solo i valori a sinistra di quel (6) e il nome del foglio dove li ha trovati )
grazie mille
Paola |
| | Post: 2.644 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
25/01/2017 10:33 | |
Paola la funzione CELLA in inglese è CELL non CEL.
Alfredo |
| | Post: 2.645 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
25/01/2017 11:04 | |
Ciao Paola
A meno di una mia svista non vedo (nei fogli del file che hai allegato) un valore "6".
Questo valore (nei singoli fogli) è unico o potrebbe ripetersi?
Potrebbe essere in tutto il foglio o in una colonna in particolare?
Prova a spiegare meglio magari riallegando il file ed inserendo a mano (su un nuovo foglio) il risultato che vuoi ottenere.
Alfredo |
| | Post: 6 | Registrato il: 29/06/2008
| Città: ACQUAFONDATA | Età: 44 | Utente Junior | excel 2007 | | OFFLINE | |
|
25/01/2017 11:51 | |
grazie!!
aggiungo un altro file sperando di essere piu' chiara ..
io penso che nel mio caso servi una macro ?
|
| | Post: 2.648 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
25/01/2017 12:32 | |
Ciao Paola
Ti allego il tuo file con la macro che vedi qui
vb Sub paola()
Dim i As Integer
Dim Rng As Range
Dim ur As Long
For i = 2 To ThisWorkbook.Sheets.Count
ur = Sheets("Sheet3").Cells(Rows.Count, 2).End(xlUp).Row
With Sheets(i).Range("P:P")
Set Rng = .Find(What:="(6)", _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Sheets("Sheet3").Cells(ur + 1, 2).Value = Rng.Offset(0, -1).Value
Sheets("Sheet3").Cells(ur + 1, 3).Value = Sheets(i).Name
End If
End With
Next i
End Sub
Per lanciarla ti ho messo un pulsante sullo Sheet3.
Prova e fai sapere.
Alfredo |
| | Post: 7 | Registrato il: 29/06/2008
| Città: ACQUAFONDATA | Età: 44 | Utente Junior | excel 2007 | | OFFLINE | |
|
25/01/2017 12:38 | |
FANTASTICOOOOOO
FUNZIONAAAA
GRAZIE
|
| | Post: 2.650 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
25/01/2017 12:45 | |
E secondo te lo avrei proposto se non avesse funzionato?
Alfredo |
|
|