Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Pulsante di collegamento Cella-Foglio

Ultimo Aggiornamento: 29/03/2018 19:07
Post: 5
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
07/03/2018 12:45

Buongiorno ragazzi!
Sono qui a chiedere il vostro aiuto dopo svariati tentativi invani!!

Ho creato un file Excel per il monitoraggio di progetti.

Il mio obiettivo è quello che, nel foglio "ELENCO", una volta selezionato dal menu a tendina il progetto di riferimento, cliccando sul pulsante APRI si apra direttamente il foglio che ho predisposto avente lo stesso nome del progetto.

Ho provato ad impostare la macro ma non ci sono riuscito, vista la mia scarsa conoscenza di VBA...
Spero di trovare qualcuno in grado di aiutarmi!

Grazie tante a tutti!!

Andrea.
Post: 3.237
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
07/03/2018 13:55

>>>si apra direttamente il foglio che ho predisposto
Diversi sono errati...NR28.2001.A01.E404,NR28.2001.A01.E406 pure NR28.3W01.A01 ecc ecc
Mouse destro sulla linguetta ELENCO/visualizza codice ed incolla sulla destra.
Ps. Prima metti a posto i nomi fogli NR28.3W01.A01>>>NR28.3W01.Anon-zero1
Appena usi la convalida, il codice esegue
vb
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E7")) Is Nothing Then
        Sheets(Range("E7").Value).Activate
    End If
End Sub
[Modificato da raffaele1953 07/03/2018 15:50]
Excel 2013
Post: 5
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
07/03/2018 17:12

Sei un grande!!
Ho sistemato i nomi e incollato il codice: Funziona alla grande!

Ne approfitto per chiedere un'altra cosa: per creare il menù a tendina ho semplicemente incollato nello stesso foglio "Elenco" l'elenco di progetti una volta aver applicato il filtro desiderato sul foglio "consuntivi".

E' possibile utilizzare una formula per generare automaticamente il menù a tendina senza dover copia/incollare ogni volta i singoli progetti?
(Nel caso dell'allegato l'elenco da generare è dato dalla Colonna C, righe [164-171])
Spero di essermi spiegato bene...

Grazie ancora!!
Post: 3.238
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
07/03/2018 23:53

Niente formule, solo VBA da mettere in un MODULO e gli abbini un bottone
vb
Sub Fogli()
Dim Ws As Worksheet, Fg As String, R As Long, Ur As Long
Fg = "ELENCO"
Ur = Sheets("Elenco").Range("J" & Rows.Count).End(xlUp).Row
    Sheets("Elenco").Range("J1:J" & Ur).ClearContents
    R = 4
    For Each Ws In ActiveWorkbook.Worksheets
        If Ws.Name <> Fg Then
            Sheets("Elenco").Range("J" & R) = Ws.Name
            R = R + 1
        End If
    Next Ws
End Sub
Excel 2013
Post: 6
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
08/03/2018 09:09

Perdonami Raffaele ma non ho molta dimestichezza con le VBA...
Ho provato a seguire le tue indicazioni ma non "succede nulla"
1. Ho inserito un bottone
2. da "Visualizza codice" ho creato un nuovo modulo e ho incollato all'interno il tuo codice
Excel non mi restituisce errori ma al click sul bottone non succede nulla!

Riesci ad aiutarmi?

Grazie infinite per la disponibilità!

Andrea.
Post: 3.239
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
08/03/2018 11:21

Ho sbagliato io, pensavo volevi la lista dei fogli attuali...Simile in Elenco nel range J5:J12

>>>l'elenco da generare è dato dalla Colonna C, righe [164-171])
Basta una formula, vai in elenco cella L1 e metti
=SE.ERRORE(INDICE(consuntivi!C$1:C$350;PICCOLO(SE(consuntivi!C$1:C$350<>"";RIF.RIGA(A$1:A$350));RIF.RIGA($A1)));"")
Premi CTRL+SHIFT+ENTER e dopo trascini la cella in basso
Excel 2013
Post: 8
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
08/03/2018 11:49

Ci ho provato, ma la formula mi restituisce soltanto uno 0...
Post: 3.241
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
08/03/2018 12:05

è una formula Matriciale, posizionati sulla cella e premi CTRL+SHIFT+INVIO
SHIFT è il tasto sopra CTRL. Hai 2010 e deve funzionare (NO in 2003)
[Modificato da raffaele1953 08/03/2018 12:06]
Excel 2013
Post: 9
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
08/03/2018 13:01

perfetto funziona!! Sei un grande!

[SM=x423047]

Il problema adesso è "capire come funziona"!
Me la sto studiando un attimo ma non sembra così immediata, soprattutto perché non riesco a capire in che modo applica la selezione alla celle volute.
Mi spiego meglio: nel file con i dati sensibili la colonna R comprende i nomi dei progettisti, tra cui MARIO ROSSI. Il mio obiettivo è quello di utilizzare la formula che mi hai scritto in modo che mi restituisca nel foglio "elenco" tutti i progetti associati a MARIO ROSSI (esattamente come se applicassi un filtro Excel nel foglio "consuntivi").
Io nel frattempo ci smanetto un pò ma se riuscissi ad aiutarmi anche in questo caso te ne sarei grato.

Grazie ancora!

Andrea
Post: 3.243
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
08/03/2018 14:42

1) Se cerchi in colonna R sarebbe (uno in più, perchè in riga R200 c'è scritto...)
=SE.ERRORE(INDICE(consuntivi!R$1:R$350;PICCOLO(SE(consuntivi!R$1:R$350<>"";RIF.RIGA(A$1:A$350));RIF.RIGA($A1)));"")

2) Penso che non mi stai dicendo il Tuo "obbiettivo finale"
Intendo dire "celle differenti da vuote", oppure filtrate in base a differenti "OPZIONI"
Excel 2013
Post: 10
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
08/03/2018 15:26

Credo che non mi sono spiegato bene, sorry!!

Ho compilato le colonne del file con dei dati fittizi.
Il mio obiettivo è quello di visualizzare nel foglio "elenco" tutti i progetti (colonna C) che nel foglio "consuntivi" sono associati al progettista responsabile (Colonna R).
Ad esempio, nel file allegato: tutti i progetti associati a MARIO.

Ti allego il file.

Grazie veramente

Andrea
Post: 3.246
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
08/03/2018 16:34

Non sono bravo con le matriciali, penso che Tu desideri....
Differenti da vuote (colonna C), trovami "MARIO" in R
Ex in Elenco cella J1 =scrivi Mario, in colonna N avrai i risultati
vb
Option Compare Text
Sub Trova()
Application.EnableEvents = False
Dim X As Long, Ur As Long, R As Long
Ur = Sheets("consuntivi").Range("A" & Rows.Count).End(xlUp).Row ' fine riga consuntivi
R = 1
For X = 26 To Ur '25 = inizio riga consuntivi
    If Sheets("consuntivi").Cells(X, 3) <> "" And Sheets("consuntivi").Cells(X, 18) = Sheets("ELENCO").Cells(1, 10) Then
        Sheets("ELENCO").Cells(R, 14) = Sheets("consuntivi").Cells(X, 3)
        R = R + 1
    End If
Next X
Application.EnableEvents = True
End Sub
Excel 2013
Post: 11
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
14/03/2018 17:07

Grazie tante Raffaele!
Per quanto riguarda la macro suggerita ho provato ad inserirla ma devo capire bene il funzionamento perché restituisce dei dati ma con un criterio che non ho capito!

Nel frattempo ho pensato di apportare alcune modifiche al file e mi trovo di nuovo a richiedere il tuo/vostro aiuto!
[SM=x423047]

Vorrei ottenere, a partire da un valore di riga, la somma parziale di alcune colonne selezionando soltanto quelle posteriori alla data di OGGI().
Per spiegarmi meglio, nel file in allegato, per il progetto NT16.1R01.A02 vorrei ottenere la somma delle sole celle relative alle colonne da marzo a dicembre (da colonna H a Q). Per semplicità ho messo tutti i valori pari a 5. Il risultato dovrebbe restituire il valore 50.

Spero di essermi spiegato bene,
e come sempre grazie infinite a tutti per l'aiuto!

Andrea
Post: 3.252
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
14/03/2018 18:14

EDIT
>>>soltanto quelle posteriori alla data di OGGI()
Cambiare < con >
=SOMMA.SE(consuntivi!F25:Q25;">"&OGGI();INDIRETTO("consuntivi!F"&E13&":Q"&E13))
[Modificato da raffaele1953 15/03/2018 15:30]
Excel 2013
Post: 12
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
16/03/2018 12:46

SEI UN GRANDE!! [SM=x423070]

Grazie tante Raffaele!
Ho adattato con alcune variazioni la formula della "data" al mio foglio (su cui nel frattempo ho applicato alcune modifiche) e funziona bene!

Per quanto riguarda la macro invece ho provato a aggiungere, sempre al clic del tasto "Trova" oltre che il codice dei Progetti (Colonna C foglio "consuntivi") anche la Descrizione (Colonna D foglio "consuntivi") ma non ci sono riuscito.

Saresti così gentile da spiegarmi brevemente come posso fare?

Grazie tante ancora!!

Andrea
Post: 3.260
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
17/03/2018 13:31

>>>anche la Descrizione (Colonna D.....?
Solo "quella"?. Allora metti in "Elenco" J2=TORINO
Sarebbe la città? Pertanto desideri il "Progetto"+"Citta"
If Sheets("consuntivi").Cells(X, 3) <> "" And Sheets("consuntivi").Cells(X, 4) = Sheets("ELENCO").Cells(2, 10) Then

Se desideri "Progetto"+"Citta"+"Nome", sarebbe
If Sheets("consuntivi").Cells(X, 3) <> "" And Sheets("consuntivi").Cells(X, 4) = Sheets("ELENCO").Cells(2, 10) And Sheets("consuntivi").Cells(X, 18) = Sheets("ELENCO").Cells(1, 10) Then
Credo sia giusto...
Excel 2013
Post: 13
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
21/03/2018 17:36

Raffaele, come sempre GRAZIE GRAZIE e ancora GRAZIE!!
Sono tornato oggi a Roma e ho provato ad applicare le modifiche suggerite ma senza grandi risultati... [SM=x423027]
Non riesco a capire dove "incollare" esattamente il codice in aggiunta che mi hai fornito.
Ho provato, inoltre, anche a spostare la posizione dell'elenco, dalla colonna L alla colonna G ma anche qui non sono riuscito!

Saresti così gentile da allegarmi il file con queste piccole modifiche?

Ti ringrazio davvero molto,
Andrea.
Post: 3.272
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
21/03/2018 20:14

Pensavo che volevi fare la ricerca "Progetto"+"Citta"
Mi sembra di capire che fai ancora la ricerca per NOME
Excel 2013
Post: 15
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
22/03/2018 09:24

Semplicemente Grazie! [SM=x423028]
Post: 18
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
27/03/2018 13:44

Eccomi di nuovo a chiedere aiuto! [SM=x423038]
Dovrei fare la stessa cosa ma con il file di "input" ora all'esterno e non più come foglio!

L'obiettivo è quello di aggiornare in automatico la lista dei progetti nel foglio "Elenco" presente nel file "MONITORAGGIO" con i dati presenti nel foglio "PS02" del file "URA PE".

Cerco di spiegarmi meglio con un esempio: dal file "MONITORAGGIO", nel foglio Elenco, digitando il nome "RAFFAELE" al clic del pulsante "Trova" dovrebbe alimentarsi l'elenco delle commesse (Colonna "C" del file "URA PE) con la descrizione (Colonna "D" del file "URA PE").

(Manualmente otterrei la stessa cosa facendo un filtro su Raffaele nella colonna Z del file "URA PE" ed un copia/incolla del risultato del filtro nel file "MONITORAGGIO".

Allego entrambi i file.

Purtroppo l'unica soluzione è una macro e non ho dimestichezza!

Grazie infinite per l'aiuto!
Spero nel tuo/vostro aiuto!!
[SM=x423047]
Post: 3.286
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
27/03/2018 18:23

In riga 561, c'èra una formula che produceva un'errore
MONITORAGGIO COMMESSE deve essere .xlsm
I due files devono essere nella stessa directory

Ho messo tre celle colorate, se le lasci vuote, esegue quanto hai scritto
Se scrivi le tre celle (directory, files e foglio), esegue il tutto da diverse directory
Excel 2013
Post: 19
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
28/03/2018 10:52

Buongiorno Raffaele!
Intanto, come sempre, GRAZIE INFINITE!

Però qualcosa mi sfugge...quando mi dici "Ho messo tre celle colorate, se le lasci vuote, esegue quanto hai scritto" in realtà non funziona e non riesco a generare la lista a partire dal nome.

Per utilizzare le tre righe colorate invece, devo compilarle con i tre dati e poi?

Diciamo che stavolta non ho capito molto bene ecco!
Ma sicuramente sono io che mi perdo qualcosa...
[SM=x423024]
Post: 3.289
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
28/03/2018 11:15

Mi sono dimenticato il bottone, vai sul foglio Elenco, in alto premi Sviluppo/Inserisci/Bottone (1° in alto sinistra)
Sul foglio col mouse disegna un quadrato ed assoccia la macro COPIA.
Con la cella gialla vuota, il VBA cerca nella stessa directory il files=URA PE.xls con il foglio PS02 ed esegue

Qualora fosse che Tu debba usare un'altro files, metti nella cella gialla un'altro Percorso giusto, il VBA andrà a cercarci il files della cella arancione + il foglio della cella verde ed esegue (naturalmente la struttura dei files deve essere similare)
Excel 2013
Post: 20
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
28/03/2018 12:24

TU
SEI
UN
GRANDE!
[SM=x423070]

Veramente GRAZIE!

Soltanto due cose:
1) Ho riportato la macro nel file "ufficiale" con i dati e funziona ma include nella lista anche le commesse non assegnate (con valore #N/D su colonna Z). Come posso fare per escluderle dalla lista?

2)Vorrei che al tasto del clic la lista venisse creata nella colonna G4:GX (con X che dipende dal numero di commesse). Dove devo modificare il codice?

Grazie, grazie e ancora grazie!

Andrea

Post: 3.290
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
28/03/2018 13:51

Dovrebbe essere
vb
Option Explicit
Option Compare Text
Sub copia()
Dim Wb As Workbook, Ws1 As Worksheet, Ws2 As Worksheet
Dim Percorso As String, nomeFile As String, Fg As String, Ur As Long, X As Long, R As Long
Percorso = ThisWorkbook.Path
Set Ws1 = ThisWorkbook.Worksheets("Elenco") ' nome del foglio MONITORAGGIO COMMESSE
Application.ScreenUpdating = True
Ur = Ws1.Range("G" & Rows.Count).End(xlUp).Row
If Ur > 4 Then Ws1.Range("G4:H" & Ur).ClearContents ' cancello eventuali scritte in colonna C
If Ws1.Cells(15, 5) = "" Then ' se le celle colorate sono vuote
    Percorso = Percorso & "\" & "URA PE.xls"
    Workbooks.Open (Percorso)
    Set Wb = Workbooks("URA PE.xls")
    Set Ws2 = Wb.Worksheets("PS02")
Else
    Percorso = Ws1.Cells(15, 5) & "\" & Ws1.Cells(16, 5)
    Workbooks.Open (Percorso)
    nomeFile = Ws1.Cells(16, 5)
    Set Wb = Workbooks(nomeFile)
    Fg = Ws1.Cells(17, 5)
    Set Ws2 = Wb.Worksheets(Fg)
End If
Ur = Ws2.Range("C" & Rows.Count).End(xlUp).Row ' conto le celle
R = 4
For X = 26 To Ur
    If Not IsError(Ws2.Cells(X, 26).Value) Then
    If Ws2.Cells(X, 26).Value = Ws1.Cells(6, 5).Value Then 'se uguale a nome in e6
        Ws1.Cells(R, 7) = Ws2.Cells(X, 3) ' copia la cella della  colonna C
        Ws1.Cells(R, 8) = Ws2.Cells(X, 4) ' se non serve eliminala
        R = R + 1
    End If
    End If
Next X
Wb.Close (Percorso)
Application.ScreenUpdating = True
Set Wb = Nothing
Set Ws1 = Nothing
Set Ws2 = Nothing
MsgBox "Fatto"
End Sub
Excel 2013
Post: 21
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
28/03/2018 14:38

Grandeeeee! FUNZIONA!

un consiglio, secondo te per diventare "autonomo" con le VBA e poter fare cose del genere da dove posso iniziare? (libri? tutorial web?)

Grazie,

Andrea
Post: 23
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
29/03/2018 11:37

Raffaele,
un'ultima cosa e poi giuro ho finito!! [SM=x423038]

Nell'importare le commesse, al clic del tasto, vorrei escludere negli elenchi tutte quelle che iniziano con "TY".
E' possibile apportare questa modifica al codice?

Grazie come sempre per il prezioso aiuto,

Andrea.
Post: 3.293
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
29/03/2018 12:22

If Not IsError(Ws2.Cells(X, 26).Value) Then
Da sostituire con questa
If Not IsError(Ws2.Cells(X, 26).Value) And Left(Ws2.Cells(X, 3), 2) <> "TY" Then
Excel 2013
Post: 24
Registrato il: 26/02/2018
Città: ROMA
Età: 32
Utente Junior
Excel 2010
OFFLINE
29/03/2018 16:30

Grazie!
Forse puoi aiutarmi anche su questo:
Come avrai capito, alcun dati presente in una tabella che ho inserito nel file principale vado a leggerli da altri due fogli Excel separati ma presenti all'interno della stessa cartella.
I dati provenienti da uno di questi purtroppo però vengono visualizzati nel principale soltanto se il file da cui provengono è aperto, mentre atri dati provenienti dal secondo file vengono visualizzati nel principale anche quando il secondo file non è aperto.

Sapresti indicarmi come potrei risolvere?

Grazie come sempre!

A.
Post: 3.296
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
29/03/2018 19:07

>>>Forse puoi aiutarmi anche su questo:
Non ho capito un cavolo di nulla
Excel 2013
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 00:03. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com