|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
Ciao sono un nuovo utente e ho bisogno del vostrio aiuto: ammettiamo che in foglio 1, lo abbia nominato anagrafica. cosi composto: cella A1 data di nascita, B1 nome e cognome, c1 n° tessera, poi mi sposto nel foglio 2, chiamato scheda cosi composto: a1data di nascita, b1 nome e cognome, c1 n° tessera... il file dovrebbe funzionare cosi: quando sono nel foglio 2 ( chiamata scheda ) sulla cella B2 quindi la colonna del nome e cognome, seleziono il nominativo che mi interessa tramite il menu a tendina che lo riprende in automatico dal foglio 1 ( anagrafica ), e in automatico nella cella A2 sempre del foglio 2, la data di nascita, e in C2 il numero di tessera... Per essere più chiaro possibile, faccio uno schema: FOGLIO 1 ( o ANAGRAFICA ):
A B C a1-data di nascita b1- cognome e nome c1 - numero tessera a2 -11/02/1990 b2 - Mario Rossi c2 - 33669
preciso che in cella B2 faccio il menu a tendina
Foglio 2 ( o scheda ) quando nel foglio 2 in cella b2 seleziono il nome che mi interessa sempre con il menu a tendina, in automatico nella cella A2 e in C2 mi devono apparire i dati che sono presenti nelle celle A2 e C2 del foglio 1
Foglio 2 quando seleziono il nome e cognome in b2
A B C A1 data di nascita B1 cognome e nome C1 numero tessera A2 B2 Mario rossi C2
Il risultato finale del foglio 2 deve essere questo
A B C A1 data nascita B1 cognome e nome C1 numero tessera A2 02/11/1990 B2 mario rossi C2 33669
se c'è qualcuno che mi può aiutare ?? lo ringrazio
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve la soluzione la trovi utilizzando la funzione INDICE() e CONFRONTA() esempio: Ipotizzando la tua tabella nel foglio anagrafica nel range A1:C10 assegnali come nome Tabella sempre nel foglio anagrafica assegna il nome "nomi" al range B1:B10 nel foglio 2 in cella B2 seleziona il nome in cella A2 inserisci questa formula: =INDICE(tabella;CONFRONTA(B2;nomi;0);1) in cella C2 inserisci questa: =INDICE(tabella;CONFRONTA(B2;nomi;0);3) saluti Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
a10n11 ha scritto:salve la soluzione la trovi utilizzando la funzione INDICE() e CONFRONTA()
esempio:
Ipotizzando la tua tabella nel foglio anagrafica nel range A1:C10 assegnali come nome Tabella
sempre nel foglio anagrafica assegna il nome "nomi" al range B1:B10
nel foglio 2 in cella B2 seleziona il nome in cella A2 inserisci questa formula: =INDICE(tabella;CONFRONTA(B2;nomi;0);1) in cella C2 inserisci questa: =INDICE(tabella;CONFRONTA(B2;nomi;0);3)
saluti Giap Grazie sei stato molto utile.. ho un altra domanda da farti, ovviamente se sai la risposta!! Adesso nel foglio 2 ( 0h Scheda) vorrei inserire un un pulsante, che premendolo mi rimanda al foglio 1, e sul foglio 1un pulsante che mi rimanda sul foglio 2... questo perchè, voglio nascondere le linquette in basso in fondo, perchè nn sono il solo che userà questo file.. Ti ringrazio in anticipo
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
freddo1 ha scritto: Grazie sei stato molto utile.. ho un altra domanda da farti, ovviamente se sai la risposta!! Adesso nel foglio 2 ( 0h Scheda) vorrei inserire un un pulsante, che premendolo mi rimanda al foglio 1, e sul foglio 1un pulsante che mi rimanda sul foglio 2... questo perchè, voglio nascondere le linquette in basso in fondo, perchè nn sono il solo che userà questo file.. Ti ringrazio in anticipo
Salve una soluzione è questa: Inserisci un Pulsante "CommandButton" in Office 2003 dalla Casella degli strumenti" che trovi nella barra degli strumenti "VisualBasic" icona che rappresnta una chiave e martello. in Office 2007 Scheda Sviluppo>Controlli>Inserisci disegna il pulsante sul foglio dopo averlo creato, clickDx sul pulsante>Visualizza codice nella pagina che si apre, troverai quanto segue: Private Sub CommandButton1_Click() End Sub tra le due righe inserisci questo: Sheets("Scheda").Select il risultato finale dovrà essere questo: Private Sub CommandButton1_Click() Sheets("Scheda").Select End Sub con Alt+F11 torni al foglio di excel Click sul Pulsante : Esci da modalità progettazione la stessa procedura sul foglio2 cambiando solo l'indicazione del foglio in questo modo Private Sub CommandButton1_Click() Sheets("Anagrafica").Select End Sub saluti Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
a10n11 ha scritto:freddo1 ha scritto: Grazie sei stato molto utile.. ho un altra domanda da farti, ovviamente se sai la risposta!! Adesso nel foglio 2 ( 0h Scheda) vorrei inserire un un pulsante, che premendolo mi rimanda al foglio 1, e sul foglio 1un pulsante che mi rimanda sul foglio 2... questo perchè, voglio nascondere le linquette in basso in fondo, perchè nn sono il solo che userà questo file.. Ti ringrazio in anticipo
Salve una soluzione è questa: Inserisci un Pulsante "CommandButton" in Office 2003 dalla Casella degli strumenti" che trovi nella barra degli strumenti "VisualBasic" icona che rappresnta una chiave e martello. in Office 2007 Scheda Sviluppo>Controlli>Inserisci disegna il pulsante sul foglio dopo averlo creato, clickDx sul pulsante>Visualizza codice nella pagina che si apre, troverai quanto segue: Private Sub CommandButton1_Click() End Sub tra le due righe inserisci questo: Sheets("Scheda").Select il risultato finale dovrà essere questo: Private Sub CommandButton1_Click() Sheets("Scheda").Select End Sub con Alt+F11 torni al foglio di excel Click sul Pulsante : Esci da modalità progettazione la stessa procedura sul foglio2 cambiando solo l'indicazione del foglio in questo modo Private Sub CommandButton1_Click() Sheets("Anagrafica").Select End Sub saluti Giap Ciao Giap.. Una domanda è possibile creare un pannello comandi tipo ACCESS in excel ??? se è possibile mi potresti dare un aiuto Grazie!! saluti Tiz.
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve cosa intendi per pannello comandi? in excel è possibile utilizzare le Userform. queste vanno gestite via codice Vba. Come si messo con la conoscenza di Visual basic? saluti Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
a10n11 ha scritto:salve cosa intendi per pannello comandi? in excel è possibile utilizzare le Userform. queste vanno gestite via codice Vba. Come si messo con la conoscenza di Visual basic? saluti Già I CODICI Vba... e chi si ricorda... ok dai non importa.... Grazie lo stesso Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
freddo1 ha scritto:a10n11 ha scritto:salve cosa intendi per pannello comandi? in excel è possibile utilizzare le Userform. queste vanno gestite via codice Vba. Come si messo con la conoscenza di Visual basic? saluti Già I CODICI Vba... e chi si ricorda... ok dai non importa.... Grazie lo stesso Giap Ciao Giap una domanda.. Allora se ho un file di excel, nascondo il foglio 2, e nel foglio 1 inserisco un pulsante per collegare il foglio 1 con il foglio 2... quando visualizzo il codice del pulsante digito il comando Sheets("FOGLIO2"). Select. ripasso in excel esco dalla modalita progettazione, clikko sul pulsante, e in automatico mi ritorna in Visual Basic, dicendomi questo errore: Errore di run-Time "1004" errore nel metodo Select per la classe Worksheet. La mia domanda è questa, mi da questo errore perchè ho nascosto il foglio2 e quindi non lo trova, e devo cambiare il comando???? se si quale comando devo utilizzare.. ?? oppure non posso nascondere il foglio se voglio inserire un pulsante di collegamento??? Grazie in anticipo Tiz.
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve se il foglio è nascosto, l'istruzione Select all'interno della macro produce necessariamente un errore. Bisogna che si dica alla macro di rendere visibile il foglio nascosto prima di selezionarlo. un esempio: il pulsante sul foglio1, controlla se il foglio2 è nascosto, in questo caso prima lo rende visibile, poi lo seleziona: Private Sub CommandButton1_Click() If Sheets("Foglio2").Visible = False Then Sheets("Foglio2").Visible = True End If Sheets("Foglio2").Select End Sub Il pulsante sul Foglio2, prima di passare al Foglio1, rende nuovamente non visibile il foglio2 prima di passare al Foglio1 Private Sub CommandButton1_Click() Sheets("Foglio2").Visible = False Sheets("Foglio1").Select End Sub saluti Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
a10n11 ha scritto:salve se il foglio è nascosto, l'istruzione Select all'interno della macro produce necessariamente un errore. Bisogna che si dica alla macro di rendere visibile il foglio nascosto prima di selezionarlo. un esempio:
il pulsante sul foglio1, controlla se il foglio2 è nascosto, in questo caso prima lo rende visibile, poi lo seleziona:
Private Sub CommandButton1_Click() If Sheets("Foglio2").Visible = False Then Sheets("Foglio2").Visible = True End If Sheets("Foglio2").Select End Sub
Il pulsante sul Foglio2, prima di passare al Foglio1, rende nuovamente non visibile il foglio2 prima di passare al Foglio1
Private Sub CommandButton1_Click() Sheets("Foglio2").Visible = False Sheets("Foglio1").Select End Sub
saluti Giap Salve Giap.. Mi serve ancora una volta il tuo aiuto, che fino ad ora è stato importantissimo.. Ho finito di fare la scheda famosa, con tempo e comodo, creato tutti i pulsanti con il tuo aiuto, adesso mi servirebbe creare due pulsanti per salvare la scheda, in automatico, il primo pulsante la salva in formato excel, e il secondo lo a salva in formato pdf grazie in anticipo Tiz
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve occorre sapere quale versione di office usi. saluti Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
a10n11 ha scritto:salve occorre sapere quale versione di office usi. saluti Giap Salve Giap Io uso Office 2007
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
freddo1 ha scritto: Salve Giap Io uso Office 2007
salve al pulsante per salvare, associa questa macro: Private Sub CommandButton1_Click() ActiveWorkbook.Save End Sub al pulsante per creare il Pdf del Foglio, associa questa macro: (NB. questa macro non funziona per le versione di office precedenti al 2007) La macro crea un Pdf con lo stesso nome del foglio nel disco D Private Sub CommandButton2_Click() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "D:\" & ActiveSheet.Name & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub NB. i nomi Commandbutton1 e commandbutton2 dipendono dal numero di pulsanti che hai nel foglio. saluti Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
a10n11 ha scritto:freddo1 ha scritto: Salve Giap Io uso Office 2007
salve al pulsante per salvare, associa questa macro: Private Sub CommandButton1_Click() ActiveWorkbook.Save End Sub al pulsante per creare il Pdf del Foglio, associa questa macro: (NB. questa macro non funziona per le versione di office precedenti al 2007) La macro crea un Pdf con lo stesso nome del foglio nel disco D Private Sub CommandButton2_Click() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "D:\" & ActiveSheet.Name & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub NB. i nomi Commandbutton1 e commandbutton2 dipendono dal numero di pulsanti che hai nel foglio. saluti Giap grazie
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
freddo1 ha scritto:a10n11 ha scritto:freddo1 ha scritto: Salve Giap Io uso Office 2007
salve al pulsante per salvare, associa questa macro: Private Sub CommandButton1_Click() ActiveWorkbook.Save End Sub al pulsante per creare il Pdf del Foglio, associa questa macro: (NB. questa macro non funziona per le versione di office precedenti al 2007) La macro crea un Pdf con lo stesso nome del foglio nel disco D Private Sub CommandButton2_Click() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "D:\" & ActiveSheet.Name & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub NB. i nomi Commandbutton1 e commandbutton2 dipendono dal numero di pulsanti che hai nel foglio. saluti Giap grazie Rieccomi a disturbarti, ormai sono a fine del mio foglio di lavoro in excel, mi mancano gli ultimi 2 pulsanti e ho finito il tutto... il primo pulsante mi serve per aprire internet, con la home di google,o altro motore di ricerca o sito internet, il secondo pulsante mi serve per aprire Outlook. grazie in anticipo Tiz
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve con questa apri la finestra di Outlook Sub Outlook() Dim oShell As Object Set oShell = CreateObject("WScript.Shell") oShell.Run "Outlook" End Sub con le due varianti che seguono apri la pagina di Google: Utilizzando Internet Explorer: Public Sub Google() Dim IEApp As Object Set IEApp = CreateObject("InternetExplorer.Application") IEApp.Navigate2 "http://www.google.it" Do DoEvents If IEApp.ReadyState = 4 Then Exit Do End If Loop IEApp.Visible = True End Sub Per utilizare il browser predefinito, molto più semplicemente come segue: Sub Google2() With ActiveWorkbook .FollowHyperlink ("http:\\www.google.it") End With End Sub saluti Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
a10n11 ha scritto:salve con questa apri la finestra di Outlook
Sub Outlook() Dim oShell As Object Set oShell = CreateObject("WScript.Shell") oShell.Run "Outlook" End Sub
con le due varianti che seguono apri la pagina di Google:
Utilizzando Internet Explorer:
Public Sub Google() Dim IEApp As Object Set IEApp = CreateObject("InternetExplorer.Application") IEApp.Navigate2 "http://www.google.it" Do DoEvents If IEApp.ReadyState = 4 Then Exit Do End If Loop IEApp.Visible = True End Sub
Per utilizare il browser predefinito, molto più semplicemente come segue:
Sub Google2() With ActiveWorkbook .FollowHyperlink ("http:\\www.google.it") End With End Sub
saluti Giap Ciao Giap Ho ancora bisogno del tuo aiuto cercherò di essere il più semplice possibile nella mia spiegazione: Tramite il tuo aiuto ho creato una distinta di gioco per una squadra di calcio.. da A13 ad A36 ci sono i numeri delle maglie che in volta in volta inserisco. da 1 a 18 oppure da 1 a S.N.= senza numero, da B13 a B36 data di nascita, da C13 a C36 nome e cognome, qui ho applicato un filtro, da C12 perche posso portare solo 19 giocatori al massimo... quindi tramite il filtro deseleziono i giocatori che nn porto, da D13 a D36 capitano e v.cap, da E13 a E36 il numero di matricola, da F13 a F36 documento, da G13 a G36 tipo di documento, da H13 a H36 espulsi e da I13 a I36 ammoniti. Ecco. Adesso quando nella colonna A partendo dalla riga 13, devo inserire 18 numeri al messimo 18 più S.N. Nella colonna C i nomi sono in ordine alfabetico.Esempio se in C15 ho il nome Calvani che è il portiere in A15 inserisco il numero 1, e in C13 ho Bozzi che è il n°2, in stampa mi viene prima il numero 2 che il numero1. Quando inserisco i numeri, che posso inserire 2,6,1,7,13, dipende dalla formazione.. ho bisogno che tutte le volte che inserisco un numero, questo vada in ordine, esempio io parto da A 13 e inserisco il n°3, in A14 il numero 2, quando seleziono A15 per mettere il nuovo numero, in A13 mi deve venire in automatico il N°2 e in A14 il n°3 e cosi via. Io ho trovato questa soluzione ma mi da sempre questi 2 errori: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) questo può essere il primo errore Worksheets("numerodel foglio").Range("A13:I36").Sort Key1:=Range("A13"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal (questo può essere il secondo errore) End Sub In tutti e due i casi diventa tutto evidenziato di giallo. La mia domanda è mi da errore, perchè tramite il filtro nascondo delle righe, e quindi questa formula nn và bene, quindi esiste un altra foruma??? grazie in anticipo Tiz
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
freddo1 ha scritto:
Io ho trovato questa soluzione ma mi da sempre questi 2 errori: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) questo può essere il primo errore Worksheets("numerodel foglio").Range("A13:I36").Sort Key1:=Range("A13"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal (questo può essere il secondo errore) End Sub In tutti e due i casi diventa tutto evidenziato di giallo. La mia domanda è mi da errore, perchè tramite il filtro nascondo delle righe, e quindi questa formula nn và bene, quindi esiste un altra foruma??? grazie in anticipo Tiz
Salve il codice che hai indicato, sfrutto l'evento change su tutta la cartella di lavoro, quindi la macro sarebbe eseguita ogni qualvolta si dovesse modificare una qualsiasi cella in un qualsiasi foglio della cartella. L'evento che devi utilizzare è l'evento Change del Foglio limitando l'esecuzione della macro solo alle celle nel range A13:A36- prova questa: (da copiare nel modulo del foglio in uso : click Dx sulla linguetta del foglio> Visualizza codice) Private Sub Worksheet_Change(ByVal Target As Range) Set Rng = Sheets("Foglio1").Range("A13:A36") Set Irng = Intersect(Target, Rng) If Not Irng Is Nothing Then Worksheets("Foglio1").Range("A13:I36").Sort Key1:=Range("A13"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End If Set Rng = Nothing Set Irng = Nothing End Sub saluti Giap
|
|
Rank: Member
Iscritto dal : 9/11/2012 Posts: 17
|
a10n11 ha scritto:freddo1 ha scritto:
Io ho trovato questa soluzione ma mi da sempre questi 2 errori: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) questo può essere il primo errore Worksheets("numerodel foglio").Range("A13:I36").Sort Key1:=Range("A13"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal (questo può essere il secondo errore) End Sub In tutti e due i casi diventa tutto evidenziato di giallo. La mia domanda è mi da errore, perchè tramite il filtro nascondo delle righe, e quindi questa formula nn và bene, quindi esiste un altra foruma??? grazie in anticipo Tiz
Salve il codice che hai indicato, sfrutto l'evento change su tutta la cartella di lavoro, quindi la macro sarebbe eseguita ogni qualvolta si dovesse modificare una qualsiasi cella in un qualsiasi foglio della cartella. L'evento che devi utilizzare è l'evento Change del Foglio limitando l'esecuzione della macro solo alle celle nel range A13:A36- prova questa: (da copiare nel modulo del foglio in uso : click Dx sulla linguetta del foglio> Visualizza codice) Private Sub Worksheet_Change(ByVal Target As Range) Set Rng = Sheets("Foglio1").Range("A13:A36") Set Irng = Intersect(Target, Rng) If Not Irng Is Nothing Then Worksheets("Foglio1").Range("A13:I36").Sort Key1:=Range("A13"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End If Set Rng = Nothing Set Irng = Nothing End Sub saluti Giap Set Rng = Sheets("Foglio1").Range("A13:A36") segnalato come errore, io lo schema l'ho sul foglio 2, ma anche se cambio il numero del foglio, il isultato nn cambia è sempre errore
|
|
Guest |