Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Come avere da un scheda rieplogo, l'elenco di altre schede? Opzioni
clem
Inviato: Friday, November 06, 2020 11:02:18 AM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Ciao a tutti,

in un file excl, ci sono diverse schede esempio scheda 1 , scheda 2 .......10 ; su una scheda che chiamo riepilogo sono indicate tutte le schede da 1 a 10 .
Vorrei realizzare un comando sulla scheda riepilogo, in modo tale che se clicco per esempio sul nome XY mi devono apparire tutte le schede che fanno capo a quel nome.
Se a XY appartengono solo schede 2 , 5 e 6 cliccando su quel nome in qualche maniera devo sapere che le sue schede sono 2 , 5 e 6.

Ho provato con collegamento ipertestuale , funziona ma mi apre solo una scheda; mi basta anche solo un elenco di esse, non è necessario che me li apra : forse ad aprirle tutte non credo sia possibile.

Saluti.
Sponsor
Inviato: Friday, November 06, 2020 11:02:18 AM

 
maopapof
Inviato: Friday, November 06, 2020 7:54:12 PM

Rank: AiutAmico

Iscritto dal : 10/31/2004
Posts: 6,952
funzione ……………….. trova ( con l'esatta parola chiave )

lui49
Inviato: Friday, November 06, 2020 9:34:00 PM
Rank: AiutAmico

Iscritto dal : 5/4/2003
Posts: 2,542
Terra terra io aggiungerei un foglio, o una zona del foglio di riepilogo, dedicato alla ricerca con una macro che mi restituisca il foglio, e volendo anche altri elementi, in cui si trova il nome che cerco.
clem
Inviato: Monday, November 09, 2020 8:11:24 AM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Grazie per le risposte.

Maopapof: ho capito....e funziona...occorre entrare nelle opzioni della funzione.

Lui49, le macro non sono alla mia portata in quanto non ne sarei capace...chiedo piuttosto: è possibile creare un pulsante che riporti sul foglio la funzione trova senza ogni volta cercarla e impostare i parametri. Ma sicuramente questo implica conoscenze di VB e quindi è quello che propone lui49. Ma sinceramente non ho le competenze per realizzare qualcosa di simile...


Grazie!
lui49
Inviato: Tuesday, November 10, 2020 9:06:28 PM
Rank: AiutAmico

Iscritto dal : 5/4/2003
Posts: 2,542
Facciamo una prova. Usiamo un foglio aggiuntivo.
Aggiungi alla fine dei fogli di lavoro (clic destro sull’ultimo foglio-->inserisci-->foglio di lavoro) e
rinominalo in “Cerca”.
Tasti alt+f11 e si apre l’editor di visualbasic. Dal menu ‘inserisci’ scegli ‘modulo’.
Ti troverai sulla sinistra sotto VBAProject il ‘Modulo1’. Doppio clic sullo stesso e sulla parte di
destra incolla tutto questo codice:
Code:
Sub Trova()
Dim I As Byte, Z As Byte
Dim TextToFind As String, Area As String

Application.ScreenUpdating = False
    Area = "A1:Z1000"  '   Definisce l'area di ricerca
         Z = 0
   
    TextToFind = InputBox("Nome?")
    If TextToFind = "" Then End
   
    Sheets("Cerca").Select
    Cells.ClearContents
    Range("D3").Select
    Cells(1, 1) = "La ricerca di ''" & TextToFind & "'', ha dato i seguenti risultati:"
    Cells(2, 1) = "Rec"
   Cells(2, 2) = "Posizione"
    Cells(2, 3) = "Foglio"
    Cells(2, 4) = "Record"
    For I = 1 To Sheets.Count - 1
        Sheets(I).Select
        Range(Area).Interior.ColorIndex = xlNone
        With ActiveSheet.Range(Area)
            Set c = .Find(TextToFind, LookIn:=xlValues)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Do
                    c.Select
                    Z = Z + 1
                    Range("Cerca!A" & Z + 2) = Z
                    Range("Cerca!B" & Z + 2) = ActiveCell.Address
                    Range("Cerca!C" & Z + 2) = Sheets(I).Name
                    Range("Cerca!D" & Z + 2) = ActiveCell
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> firstAddress
            End If
        End With
    Next I
Application.ScreenUpdating = True
    Sheets("Cerca").Select
    Range("H1").Select
End Sub

Sub Cancella()
Sheets("Cerca").Select
Range("A1:Z1000").ClearContents ' cancella il contentuto del range
End Sub


Salva e chiudi l’editor. Torna al foglio Cerca.
Clic destro sulla barra di excel e scegli ‘Moduli’. Nella finestra che si apre seleziona ‘Pulsante’ e disegna un quadratino delle dimensioni che vuoi nella colonna H del foglio. Nella finestra che si apre assegna al pulsante la macro ‘Trova’ e conferma. Clic destro sul pulsante e rinominalo in ‘cerca’. Ripeti l’operazione, anche se non servirebbe, e assegna la macro ‘Cancella’ e rinomina il pulsante. Salva e chiudi.
Prova.

clem
Inviato: Sunday, November 15, 2020 8:44:23 AM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Ciao lui49 e innanzitutto grazie...
Ho provato la costruzione della macro, ma mi restituisce questo errore:
errore run-time "9" ;
sicuramente ho fallito in qualche passaggio:
1- per salvare e uscire dalla macro , ho chiuso la finestra dove ho incollato il codice e sono andato direttamente al folgio di ricerca. Non so se ho fatto bene...
2-i pulsanti da creare sul folcio crea sono due , uno cerca e l'alro chiudi, giusto?
3-dopo che ho creato il pulsante e aver assegnato la macro, clic con tasto destro per rinominare, ma non trovo nel menu che appare la funzione rinomina.
Fores sbgalio nel salvare e chiudure che sostanzialmente è una banalità....
lui49
Inviato: Sunday, November 15, 2020 11:20:18 AM
Rank: AiutAmico

Iscritto dal : 5/4/2003
Posts: 2,542
Hai rinominato il foglio aggiunto in "Cerca"?
1- Per salvare il codice visual clicca sull'icona a forma di dischetto sulla barra a sinistra e poi chiudi l'editor.
2- cerca e cancella (ho scritto che non servirebbe perchè ogni nuova ricerca cancella i risultati della precedente)
3- clic destro per avere l'editor del pulsante, poi selezioni il nome e lo rinomini.
clem
Inviato: Monday, November 16, 2020 6:39:54 PM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Solo un chiarimento....cliccando sul tasto cerca, nel foglio che ho rinominato Cerca, restituisce la finestra con la scritta Nome? all'interno devo digitare un nome presente all'interno delle schede che fanno parte del file excel indipendentemente dalla loro posizione all'interno del foglio di lavoro,giusto? Oppure devono essere inseriti in una cella particolare?
clem
Inviato: Monday, November 16, 2020 6:59:20 PM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Ho riprovato, appare la maschera che mi restituisce Nome? inseisco il nome ma da errore run-time 6 overflow.

Ho rinominato il tasto, tutto ok...mentre non trovo il dischetto che mi hai indicato per salvare la macro.
lui49
Inviato: Monday, November 16, 2020 8:05:40 PM
Rank: AiutAmico

Iscritto dal : 5/4/2003
Posts: 2,542
clem ha scritto:
Solo un chiarimento....cliccando sul tasto cerca, nel foglio che ho rinominato Cerca, restituisce la finestra con la scritta Nome? all'interno devo digitare un nome presente all'interno delle schede che fanno parte del file excel indipendentemente dalla loro posizione all'interno del foglio di lavoro,giusto? Oppure devono essere inseriti in una cella particolare?


Devi inserire il nome. Come risultato ti verrà mostrato in quali fogli e in quali record compare il nome inserito.

Il dischetto cui facevo riferimento è l'immaginetta del floppy disk. Oppure fai file-->salva.


Quanti fogli di lavoro hai? E quale range di celle occupano, di massima, i dati.
clem
Inviato: Tuesday, November 17, 2020 10:21:37 AM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Ci sono 50 fogli e i dati vanno dalla colonna A a L e righi da 1 a 50;

Quando appare il msg di errore (run-time 6) se clicco su fine , nel foglio di lavoro Cerca appaiono dati, apparentemente senza senso:

colonna Posizione $A$1
colonna Foglio Cerca
Record la ricerca di "anna" ha dato i seguenti risutati: (campo vuoto)


cosi fino al n.257

Forse sbaglio qualche passaggio...
lui49
Inviato: Tuesday, November 17, 2020 11:07:44 AM
Rank: AiutAmico

Iscritto dal : 5/4/2003
Posts: 2,542
Nel codice:

Dim I As Byte, Z As Byte

Sostituisci con:

Dim I As Integer, Z As Integer
clem
Inviato: Friday, November 20, 2020 1:17:32 PM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Sostituito la riga del codice...ma restituisce errore 1004:impossibile impostare proprietà colorIndex per la classe Interior

mi riporta poi su una scheda che non contiene il nome che avevo inserito nella fase di cerca.

Ad ogni modo lui49, ti ringrazio per la disponibilità!
lui49
Inviato: Friday, November 20, 2020 1:54:52 PM
Rank: AiutAmico

Iscritto dal : 5/4/2003
Posts: 2,542
Metti un apostrofo (') all'inizio della riga -->Range(Area).Interior.ColorIndex = xlNone

'Range(Area).Interior.ColorIndex = xlNone
clem
Inviato: Saturday, November 21, 2020 3:36:47 PM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Funziona, lui49!

Solo un particolare: ho digitato il nome anna (per esempio) e nella scheda "Cerca" sono apparse le scheda a lei collegate, ma dopo che sono apparse 999 righe con la seguente scritta, ovviamente dal n.1 al 999:

989 $D$990 Cerca La ricerca di ''anna'', ha dato i seguenti risultati:


poi alla 1000ma riga e 1001 sono apparse le schede collegate al nome in oggetto.
lui49
Inviato: Saturday, November 21, 2020 6:31:52 PM
Rank: AiutAmico

Iscritto dal : 5/4/2003
Posts: 2,542
Prova a sostituire tutto il codice con questo

Code:
Sub Trova()
Dim I As Integer, Z As Integer
Dim TextToFind As String, Area As String
Application.ScreenUpdating = False
    Area = "A1:Y1000"  '   Definisce l'area di ricerca
         Z = 0
    TextToFind = InputBox("Nome?")
    If TextToFind = "" Then End
    Sheets("Cerca").Select
    Cells.ClearContents
    Cells(1, 1) = "La ricerca di ''" & TextToFind & "'', ha dato i seguenti risultati:"
    Cells(2, 1) = "Rec"
   Cells(2, 2) = "Posizione"
    Cells(2, 3) = "Foglio"
    Cells(2, 4) = "Record"
    For I = 1 To Sheets.Count - 1
        Sheets(I).Select
        With ActiveSheet.Range(Area)
            Set c = .Find(TextToFind, LookIn:=xlValues)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Do
                    c.Select
                    Z = Z + 1
                    Range("Cerca!A" & Z + 2) = Z
                    Range("Cerca!B" & Z + 2) = ActiveCell.Address
                    Range("Cerca!C" & Z + 2) = Sheets(I).Name
                    Range("Cerca!D" & Z + 2) = ActiveCell
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> firstAddress
            End If
        End With
    Next I
Application.ScreenUpdating = True
    Sheets("Cerca").Select
    Range("H1").Select
End Sub

Sub Cancella()
'ActiveSheet.Protect DrawingObjects:=False, contents:=False, Scenarios:=False

Sheets("Cerca").Select
Range("A1:Y1000").ClearContents ' cancella il contentuto del range
    'ActiveSheet.Protect DrawingObjects:=True, contents:=True, Scenarios:=True

End Sub
clem
Inviato: Sunday, November 22, 2020 8:26:08 AM
Rank: AiutAmico

Iscritto dal : 4/27/2004
Posts: 83
Ho aperto la macro con F11 eliminato le iostruzioni presenti e ho incollato la nuiova e salvato il file. (non so se la procedura è corretta).
Ma non è cambiato nulla, i risultati vengono evidenziati dopo 999 righe...però funziona mi segnale le schede collegate al nome che cerco...
marius44
Inviato: Sunday, November 22, 2020 11:36:03 AM
Rank: Member

Iscritto dal : 9/7/2015
Posts: 17
Buona domenica a tutti
In un file nuovo ho lasciato 3 (per fare le prove) Fogli. Ho rinominato il primo "Cerca". Ho aperto l'Editor di VBA ed in un Modulo standard ho inserito le macro proposte.
Ho apportato questa modifica: invece della riga For I = 1 To Sheets.Count - 1
ho lasciato la stessa riga ma ho tolto il -1 (altrimenti non mi "leggeva" l'ultimo Foglio.

Confermo che la ricerca viene eseguita regolarmente ed i risultati vengono elencati nelle prime righe (quelle necessarie) del Foglio Cerca. Non c'è nulla dopo la riga 999
Ciao,
Mario
lui49
Inviato: Sunday, November 22, 2020 1:09:57 PM
Rank: AiutAmico

Iscritto dal : 5/4/2003
Posts: 2,542
Prova ad escludere l'istruzione
c.Select

con
'c.Select
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.