|
Rank: AiutAmico
Iscritto dal : 11/15/2012 Posts: 33
|
Salve. Sto cercardo di realizzare una specie di agenda elettronica. Vorrei fare in modo che che selezionando da un menu a tendina il mese e da un altro menu a tendina il Giorno mi vada direttamente al foglio relativo (Mese_Giorno) Con una macro cosigliata da Giap ho risolto parzialmente. Chi puo' Aiutarmi?????? Vorrei creare una macro tipo :
Se "Cella x" = mese e "Cella y"= Giorno allora vai al foglio "Mese_giorno"
Riporto la macro che mi ha suggerito Giap: a10n11 ha scritto: salve ipotizzando che la cella di convalida, sia nella cella B2 copia questa macro nel modulo del foglio in cui si trova la cella di convalida. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("b2").Address Then foglio = Range("B2").Value Sheets(foglio).Activate End If End Sub Pero' ho questo problemimo: Quando accendo al foglio selezionato (Es. Marzo) dal foglio precedente (Es. Gennaio) tutto Ok. Ma se dal foglio (Marzo) ritorno al Mese (Gennaio) mi visualizza il foglio corretto ma nel menu a tendina Risulta ancora (Marzo) Come posso risolverlo???? Grazie Anticipatamente.
saluti Giap
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve basterebbe riselezionare il mese dal menù a tendina.. se vuoi che l'aggiornamento del mese nella cella di covalida, assuma il nome del foglio cambia così: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("b2").Address Then foglio = Range("B2").Value Sheets(foglio).Activate With Sheets(foglio) .Range("b2").Value = foglio End With End If Application.EnableEvents = True End Sub saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 11/15/2012 Posts: 33
|
Grazie Ora va benissimo. Se invece vorrei modificare la mia ricerca inserendo anche il giorno (che si trova in un altra cella). Come nel post che ho reinserito??? Poi mi rendo conto che dovrei creare 365 Foglio uno per ogni giorno dell'anno.. Puo' aiutarmi???? Grazie. a10n11 ha scritto:salve basterebbe riselezionare il mese dal menù a tendina..
se vuoi che l'aggiornamento del mese nella cella di covalida, assuma il nome del foglio cambia così:
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("b2").Address Then foglio = Range("B2").Value Sheets(foglio).Activate With Sheets(foglio) .Range("b2").Value = foglio End With End If Application.EnableEvents = True End Sub
saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
musico78 ha scritto:Grazie Ora va benissimo. Se invece vorrei modificare la mia ricerca inserendo anche il giorno (che si trova in un altra cella). Come nel post che ho reinserito??? Poi mi rendo conto che dovrei creare 365 Foglio uno per ogni giorno dell'anno.. Puo' aiutarmi???? Grazie.
salve bisogna che spieghi meglio come è strutturata la tua cartella di lavoro. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 11/15/2012 Posts: 33
|
E' una specie di agenda. In verità devo finirla di costruire. 365 Fogli equivalenti ai giorni. Vorei, tramite menu a tendina poter selezionare il giorno ed il mese e lui automaticamente dovrebbe andare al foglio slezionato Una macro tipo : Se "Cella x" = mese e "Cella y"= Giorno allora vai al foglio "Mese_giorno" Grazie per l'attenzione e per l'aiuto.. a10n11 ha scritto:musico78 ha scritto:Grazie Ora va benissimo. Se invece vorrei modificare la mia ricerca inserendo anche il giorno (che si trova in un altra cella). Come nel post che ho reinserito??? Poi mi rendo conto che dovrei creare 365 Foglio uno per ogni giorno dell'anno.. Puo' aiutarmi???? Grazie.
salve bisogna che spieghi meglio come è strutturata la tua cartella di lavoro. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
Salve Ipotizzando che in cella B2 tu abbia l'elenco dei mesi in cella D2 il numero dei giorni che i nomi dei fogli siano simili a : gennaio_1 ecc. prova questa: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("D2").Address Then foglio = Range("B2").Value & "_" & Range("d2").Value Sheets(foglio).Activate End If Application.EnableEvents = True End Sub saluti Giap musico78 ha scritto:E' una specie di agenda. In verità devo finirla di costruire. 365 Fogli equivalenti ai giorni. Vorei, tramite menu a tendina poter selezionare il giorno ed il mese e lui automaticamente dovrebbe andare al foglio slezionato Una macro tipo :
Se "Cella x" = mese e "Cella y"= Giorno allora vai al foglio "Mese_giorno"
Grazie per l'attenzione e per l'aiuto..
|
|
Rank: AiutAmico
Iscritto dal : 11/15/2012 Posts: 33
|
La macro non va. Da errore al rigo Sheets(foglio).Activate Se le + più semplice posso inviarle privatamente il mio lavoro. Attendo una sua risposta. Grazie. a10n11 ha scritto:Salve Ipotizzando che in cella B2 tu abbia l'elenco dei mesi in cella D2 il numero dei giorni che i nomi dei fogli siano simili a : gennaio_1 ecc. prova questa: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("D2").Address Then foglio = Range("B2").Value & "_" & Range("d2").Value Sheets(foglio).Activate End If Application.EnableEvents = True End Sub saluti Giap musico78 ha scritto:E' una specie di agenda. In verità devo finirla di costruire. 365 Fogli equivalenti ai giorni. Vorei, tramite menu a tendina poter selezionare il giorno ed il mese e lui automaticamente dovrebbe andare al foglio slezionato Una macro tipo :
Se "Cella x" = mese e "Cella y"= Giorno allora vai al foglio "Mese_giorno"
Grazie per l'attenzione e per l'aiuto..
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve L'errore dice che non c'è corrispondenza tra il nome del foglio e i valori di cella B2 e D2 1) dimmi esattemente che nome hai dato ai fogli 2) dimmi che valore hai in B2 e che valore hai in D2 saluti Giap musico78 ha scritto:La macro non va. Da errore al rigo
Sheets(foglio).Activate
Se le + più semplice posso inviarle privatamente il mio lavoro.
Attendo una sua risposta. Grazie.
|
|
Rank: AiutAmico
Iscritto dal : 11/15/2012 Posts: 33
|
Ogni foglio lo rinomino : Gennaio_01; Gennaio_02 Etc B2 (Cella dei Mesi) ho fatto un "convalida dati" mettendo i nomi dei 12 mesi D2 (Cella dei Giorni)ho fatto un "convalida dati" mettendo i numeri dei 30 o 31 Giorni Grazie a10n11 ha scritto:salve L'errore dice che non c'è corrispondenza tra il nome del foglio e i valori di cella B2 e D2 1) dimmi esattemente che nome hai dato ai fogli 2) dimmi che valore hai in B2 e che valore hai in D2 saluti Giap musico78 ha scritto:La macro non va. Da errore al rigo
Sheets(foglio).Activate
Se le + più semplice posso inviarle privatamente il mio lavoro.
Attendo una sua risposta. Grazie.
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
Salve succede quello che dici, perchè il formato numerico dei giorni utilizzato esclude lo zero iniziale. cambia così Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("D2").Address Then foglio = Range("B2").Value & "_" & Format(Range("d2").Value, "00") Sheets(foglio).Activate End If Application.EnableEvents = True End Sub saluti Giap musico78 ha scritto:Ogni foglio lo rinomino : Gennaio_01; Gennaio_02 Etc
B2 (Cella dei Mesi) ho fatto un "convalida dati" mettendo i nomi dei 12 mesi D2 (Cella dei Giorni)ho fatto un "convalida dati" mettendo i numeri dei 30 o 31 Giorni
|
|
Rank: AiutAmico
Iscritto dal : 11/15/2012 Posts: 33
|
Questa macro funziona solo se avanzo di mese. Cioè Se dal 2 gennaio voglio tornare al 1 gennaio, va al foglio corretto ma nella Cella del Giorno Mi comapre ancora l'ultima selezione ossia 2 Gennaio. Poi vorrei fare in modo che gia selezionado solo il giorno salti al foglio "Mese_Giorno". Ad Esempio "30 Gennaio". Devo selezionare prima 30 e poi Gennaio. Vorrei fare in modo che se sto a Gennaio e seleziono "30" salti direttamnte al foglio Gennaio_30. Grazie per la pacienza. a10n11 ha scritto:Salve succede quello che dici, perchè il formato numerico dei giorni utilizzato esclude lo zero iniziale. cambia così Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("D2").Address Then foglio = Range("B2").Value & "_" & Format(Range("d2").Value, "00") Sheets(foglio).Activate End If Application.EnableEvents = True End Sub saluti Giap musico78 ha scritto:Ogni foglio lo rinomino : Gennaio_01; Gennaio_02 Etc
B2 (Cella dei Mesi) ho fatto un "convalida dati" mettendo i nomi dei 12 mesi D2 (Cella dei Giorni)ho fatto un "convalida dati" mettendo i numeri dei 30 o 31 Giorni
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve 1) la macro si attiva cambiando il valore della cella che contiene il giorno. Infatti il target è puntato sulla cella D2 se il mese che ti interessa è gia selezionato ti basta cambiare solo il giorno. 2)Non è che è tua intenzione creare 365 fogli ciascuno con la stessa macro ? in ogni foglio hai sempre le due celle di convalida? questa che segue è la modifica alla macro: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("D2").Address Then foglio = Range("B2").Value & "_" & Format(Range("d2").Value, "00") Sheets(foglio).Activate Sheets(foglio).Range("d2").Value = Right(foglio, 2) Application.EnableEvents = True End If End Sub saluti Giap musico78 ha scritto:Questa macro funziona solo se avanzo di mese. Cioè Se dal 2 gennaio voglio tornare al 1 gennaio, va al foglio corretto ma nella Cella del Giorno Mi comapre ancora l'ultima selezione ossia 2 Gennaio. Poi vorrei fare in modo che gia selezionado solo il giorno salti al foglio "Mese_Giorno". Ad Esempio "30 Gennaio". Devo selezionare prima 30 e poi Gennaio. Vorrei fare in modo che se sto a Gennaio e seleziono "30" salti direttamnte al foglio Gennaio_30.
|
|
Rank: AiutAmico
Iscritto dal : 11/15/2012 Posts: 33
|
La Macro Funziona... Grazie.... Per quanto riguarda i fogli. Si Avevo intezione di creare 365 fogli (Uno per ogni Giorno) ed iserire sempre la stessa macro... Potrebbe esserci un alternativa? a10n11 ha scritto:salve 1) la macro si attiva cambiando il valore della cella che contiene il giorno. Infatti il target è puntato sulla cella D2 se il mese che ti interessa è gia selezionato ti basta cambiare solo il giorno. 2)Non è che è tua intenzione creare 365 fogli ciascuno con la stessa macro ? in ogni foglio hai sempre le due celle di convalida? questa che segue è la modifica alla macro: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = Range("D2").Address Then foglio = Range("B2").Value & "_" & Format(Range("d2").Value, "00") Sheets(foglio).Activate Sheets(foglio).Range("d2").Value = Right(foglio, 2) Application.EnableEvents = True End If End Sub saluti Giap musico78 ha scritto:Questa macro funziona solo se avanzo di mese. Cioè Se dal 2 gennaio voglio tornare al 1 gennaio, va al foglio corretto ma nella Cella del Giorno Mi comapre ancora l'ultima selezione ossia 2 Gennaio. Poi vorrei fare in modo che gia selezionado solo il giorno salti al foglio "Mese_Giorno". Ad Esempio "30 Gennaio". Devo selezionare prima 30 e poi Gennaio. Vorrei fare in modo che se sto a Gennaio e seleziono "30" salti direttamnte al foglio Gennaio_30.
|
|
Guest |