Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel - Estendere controllo da cella a area

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel - Estendere controllo da cella a area

Postdi Flash30005 » 23/10/08 08:20

Ciao Anthony,
tempo fa sul mio topic "Attivare cella di riferimento" mi hai consigliato un codice che permette di far attivare macro , istruzioni etc e il codice era questo:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$E$26" Then Exit Sub
'Istruzione in caso fosse modificata la cella E26
End Sub

Ora il mio problema è di estendere il controllo alla colonna "C" e più precisamente da C15 a Cxx come posso cambiare questa istruzione?
L'help riporta
Codice: Seleziona tutto
 mc.Address(ReferenceStyle:=xlR1C1, _
    RowAbsolute:=False,     _
    ColumnAbsolute:=False,  _
    RelativeTo:=Worksheets(1).Cells(3, 3))        ' R[-2]C[-2]
ma non so adattare il codice al mio range

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Sponsor
 

Re: Excel - Estendere controllo da cella a area

Postdi Flash30005 » 23/10/08 12:45

Ciao Anthony,
Spiego meglio il mio problema 1):
nella colonna C da C15 a Cxx si dovranno inserire dei numeri da 1 a xx, rappresenta un indice per alcuni fogli che vanno compilati. Ho creato già la macro che ogni volta che aggiungo uno o più numeri e premo un pulsante si crea il o i fogli corrispondenti (nome vincolato) al numero aggiunto (F_1, F_2 etc)
Ora volendo eliminare il pulsante ma attivare la macro automaticamente pensavo di utilizzare il controllo di quell'area in questa maniera:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$E$26" Then Exit Sub ' qui dovrei mettere l'area: Colonna da C15 a CXX
Call CreaFogli       ' macro funzionante, ora, con il pulsante
End Sub

Problema 2)
La macro oltre a creare i fogli, collega il numero aggiunto al relativo foglio F_x con collegamento ipertestuale (macro testata e funzionante) ora però volevo nascondere i fogli non utilizzati e "scoprire" solo quello richiamato dal numero, e per fare ciò pensavo di usare un codice tipo questo:
Codice: Seleziona tutto
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
NF = Val(   Cella Attiva )
    Sheets("F_" & NF).Visible = True
'facendo poi una routine for-next nasconderei gli altri fogli
End Sub

Cosa mi consigli?
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Estendere controllo da cella a area

Postdi Flash30005 » 23/10/08 14:01

Ciao Anthony
(ti aggiorno sui progressi fatti)
Il problema2 l'ho risolto così
Codice: Seleziona tutto
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
NF = Target.Range
    Sheets("F-" & NF).Visible = True
  FogliEs = Worksheets.Count - 2                      ' 2 sono i fogli esistenti per default: Foglio-indice e Foglio-Modello
    For I = 1 To FogliEs
NomeF = "F-" & I
If I = NF Then GoTo SaltaF
    Sheets(NomeF).Visible = False
SaltaF:
    Next
End Sub

Mi rimane da risolvere il problema1 controllo variazione area Col "C"
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Estendere controllo da cella a area

Postdi Flash30005 » 23/10/08 15:22

In attesa....
Avrei risolto così il problema1
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
NF = Worksheets.Count - 2 + 15
If Target.Address <> "$C$" & NF Then Exit Sub
Call CreaFogli
End Sub

Sembra funzionare ma temo che nell'utilizzo pratico possano venir fuori dei bug
Cosa ne pensi?
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Estendere controllo da cella a area

Postdi Anthony47 » 24/10/08 00:36

Oggi non ho potuto dare un' occhiata alle domande pendenti...
Per sondare il change in un range usa questo If:
Codice: Seleziona tutto
If Intersect(Target, Range("C15:Cnn")) Is Nothing Then Exit Sub      '<< Il vero Range


Per coprire/scoprire io farei
Codice: Seleziona tutto
For I=2 to FogliEs
If sheets(I).name= ("F-" & I ) then Sheets(I).visible=true Else Sheets(I).visible)false


Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Excel - Estendere controllo da cella a area":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti