Scelta foglio di lavoro



  • Scelta foglio di lavoro
    di Navarro17 (utente non iscritto) data: 26/12/2012 21:25:34

    Salve, sono nuovo di questo forum e chiedo il vostro aiuto per risolvere il seguente problema:
    Ho un file in cui vi sono una serie di fogli denominati da A1 a A15 in più ho il foglio denominato "inserimento", qui inserisco (nel range di celle che và da b1 a l15) una serie di dati che devo trasferire (tramite macro) in uno dei fogli A1/A15, la scelta del foglio interessato avviene nella casella a1 del foglio "inserimento". Potreste suggerirmi il codice per poter eseguire questa scelta?
    Grazie
    P.s.: ho la versione Excel per Mac.



  • di Vecchio Frac data: 27/12/2012 14:03:42

    Ti posto un codice che fa quello che chiedi.
    Lod evi incolalre nell'area codice dle foglio "inserimento" così funzona solo per quel foglio.
    Scrivi in A1 di quel foglio un nome di foglio valido e i dati da B1 a L15 verranno riportati nel foglio che hai indicato, altrimenti viene mostrato un messaggio di errore.
    Poichè non hai specificato dove vada effettuata la copia, questa viene riportata a partire da B1 del foglio di destinazione.
    Questa non è l'unica soluzione (ad esempio si può scegliere un nome di foglio da un elenco oppure mediante un userform).
     
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sh As Worksheet
        If Target.Cells.Count > 1 Then Exit Sub
        If Intersect(Target, [A1]) Is Nothing Or Trim(Target) = "" Then Exit Sub
        
        For Each sh In Worksheets
            If LCase(sh.Name) = LCase([A1]) Then
                Application.EnableEvents = False
                [B1:L15].Copy Sheets([A1].Value).[B1]
                Application.EnableEvents = True
                MsgBox "La copia è avvenuta correttamente.", vbInformation, "Ok!"
                [A1].Select
                Exit Sub
            End If
        Next
    
        MsgBox "Il foglio indicato in A1 " & Chr(34) & [A1] & Chr(34) & " non esiste!", vbCritical, "Attenzione"
        [A1].Select
    End Sub






  • di Vecchio Frac data: 27/12/2012 14:04:55

    Bisognerebbe sempre rileggere prima di postare :)

    cit. " Lod evi incolalre nell'area codice dle foglio "inserimento" così funzona solo per quel foglio. "
    ---> Lo devi incollare nell'area codice del foglio "inserimento" così funziona solo per quel foglio.

    Il codice proposto non ha errori (almeno quello) ^_^





  • di Navarro17 (utente non iscritto) data: 03/01/2013 00:29:59

    Innanzitutto Buon Anno a tutti! Grazie il codice funziona perfettamente.
    Potresti perfezionare il codice in modo tale che la copia sia posizionata nella prima riga vuota del foglio di destinazione?
    Saluti



  • di Vecchio Frac data: 03/01/2013 07:26:42

    Devi fare solo questa modifica:
    [B1:L15].Copy Sheets([A1].Value).Cells(Sheets([A1].Value).Columns(1).Cells.Count, 2).End(xlUp).Offset(1)
    per copiare nel foglio di destinazione in coda a dati esistenti.