| | Post: 93 | Registrato il: 06/07/2016
| Città: BOLZANO | Età: 31 | Utente Junior | 2010 | | OFFLINE | |
|
10/07/2018 09:27 | |
ciao a tutti
avrei tanto bisogno del vostro aiuto….
Nella cella D5 del foglio 1 é presente una convalida dati con elencati i nomi di differenti gruppi di range presenti in vari colonne del figlio 2 (che nel file definitivo saranno oltre 300…) mi servirebbe una macro che al cambio del nome contenuto nel menú a tendina della cella D5 vada a riprendere i dati sottostanti delle 3 colonne ( dalla riga 7 alla riga 30 ) contenuti nel gruppo con lo stesso nome presente nel foglio 2 e li copi nel foglio 1 come da esempio
ringrazio con tutto il cuore per ogni aiuto
Marilena
|
|
| | Post: 3.594 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
10/07/2018 11:27 | |
Una volta posizionato sul Foglio1, premi ALT+F11 ed incolla sulla destra.
vb Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D5")) Is Nothing Then
Dim Cg As Object, c As Long
Set Cg = Sheets("Foglio2").Rows("5:5").Find(Range("D5").Value, LookIn:=xlValues, LookAt:=xlWhole)
If Cg Is Nothing Then
MsgBox "nessuna corrispondenza"
Else
Application.EnableEvents = False
c = Cg.Column
Sheets("Foglio2").Range(Sheets("Foglio2").Cells(7, c - 1), Sheets("Foglio2").Cells(30, c + 1)).Copy
Range("C7").PasteSpecial
Application.EnableEvents = True
End If
End If
Set Cg = Nothing
End Sub
Sarebbe meglio invece con:
In C7 =SE(INDIRETTO(INDIRIZZO(RIF.RIGA();(CONFRONTA($D$5;Foglio2!$5:$5;0)-1);;;"Foglio2"))="";"";INDIRETTO(INDIRIZZO(RIF.RIGA();(CONFRONTA($D$5;Foglio2!$5:$5;0)-1);;;"Foglio2")))
In D7 =SE(INDIRETTO(INDIRIZZO(RIF.RIGA();(CONFRONTA($D$5;Foglio2!$5:$5;0));;;"Foglio2"))="";"";INDIRETTO(INDIRIZZO(RIF.RIGA();(CONFRONTA($D$5;Foglio2!$5:$5;0));;;"Foglio2")))
In E7 =SE(INDIRETTO(INDIRIZZO(RIF.RIGA();(CONFRONTA($D$5;Foglio2!$5:$5;0)+1);;;"Foglio2"))="";"";INDIRETTO(INDIRIZZO(RIF.RIGA();(CONFRONTA($D$5;Foglio2!$5:$5;0)+1);;;"Foglio2")))
E trascini giù [Modificato da raffaele1953 10/07/2018 11:53] Excel 2013 |
| | Post: 93 | Registrato il: 06/07/2016
| Città: BOLZANO | Età: 31 | Utente Junior | 2010 | | OFFLINE | |
|
10/07/2018 13:18 | |
GRAZIEEEEEEEE :-)))))))))))))))
|
| | Post: 94 | Registrato il: 06/07/2016
| Città: BOLZANO | Età: 31 | Utente Junior | 2010 | | OFFLINE | |
|
10/07/2018 16:56 | |
CIAO :-) se mi è permesso avrei ancora una domandina
ho provato a lanciare direttamente la macro dal risultato di una formula al posto della scelta diretta dal menù convalida ma non funziona nel caso che non fosse fattibile , sarebbe possibile lanciarla con un pulsante dopo che la formula ha inserito la destinazione da cercare ?
grazie mille
saluti
Marilena |
| | Post: 3.597 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
10/07/2018 17:08 | |
Tramite tasto, formula in D5
vb Option Compare Text
Sub Cerca()
Dim Cg As Object, c As Long
Set Cg = Sheets("Foglio2").Rows("5:5").Find(Range("D5").Value, LookIn:=xlValues, LookAt:=xlWhole)
If Cg Is Nothing Then
MsgBox "nessuna corrispondenza"
Else
c = Cg.Column
Sheets("Foglio2").Range(Sheets("Foglio2").Cells(7, c - 1), Sheets("Foglio2").Cells(30, c + 1)).Copy
Sheets("Foglio1").Range("C7").PasteSpecial
End If
Set Cg = Nothing
End Sub Excel 2013 |
| | Post: 95 | Registrato il: 06/07/2016
| Città: BOLZANO | Età: 31 | Utente Junior | 2010 | | OFFLINE | |
|
10/07/2018 18:38 | |
GRAZIE RAFFAELE .......GENTILISSIMO :-)
saluti
Marilena
|
|
|