Foglio di appartenenza



  • Foglio di appartenenza
    di Giovanni50 (utente non iscritto) data: 23/03/2014 10:43:26

    Ciao a tutti.
    Come al solito risolto un problema se ne apre un altro.
    Nel mio programma ho un Range fatto così :
    Dim ElencoCelle As Range
    Set ElencoCelle = Worksheets(1).Range("A1:A110")

    Dall'oggetto ElencoCelle e' possibile conoscerne il foglio di
    appartenenza e quindi avere una variabile, in
    questo caso, con valore 1 appunto foglio1?



  • di Vecchio Frac data: 23/03/2014 11:09:39

    Esiste la proprietà Parent.
     
    ElencoCelle.Parent.Name      'restituisce il nome del foglio






  • di lepat (utente non iscritto) data: 23/03/2014 11:09:52

    non capisco, sei tu che hai definito ElencoCelle come un range del foglio 1, perché vuoi sapere il foglio di appartenenza ?



  • di Vecchio Frac data: 23/03/2014 11:12:14

    Scusa forse non sono stato esaustivo :)
    Per quasi ogni oggetto esiste la proprietà Parent, che indica il "genitore" o il "contenitore superiore" dell'oggetto.
    In questo caso il contenitore di un range è il foglio su cui risiede.
     
    Dim f as String
    f = ElencoCelle.Parent.Name      'restituisce il nome del foglio, nel tuo caso "foglio1"
    msgbox f
    
    Dim f as Worksheet
    f = ElencoCelle.Parent              'restituisce un oggetto foglio
    msgbox f.Name
    






  • di Vecchio Frac data: 23/03/2014 11:13:21

    @lepat
    Presumo che lui non conosca a priori il nome del foglio, che l'utente può cambiare e quindi ne ha impostato un riferimento al primo foglio del file (Worksheet(1) appunto).
    Con il metodo Parent può conoscere il nome attribuito al foglio.





  • di Giovanni50 (utente non iscritto) data: 23/03/2014 11:34:26

    Bisogna sempre dirla per intero.
    In realtà sto facendo delle simulazioni
    per sapere come devo impostare il programma definitivo.
    ElencoCelle sarà " nome sub (ByVal ElencoCelle As Range )
    A questo punto mi interessa il membro di appartenenza
    Del mio oggetto.
    Come al solito siete stati pazienti ed eccezionalmente rapidi.