Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Rigenerazione automatica tabella?

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

Rigenerazione automatica tabella?

Postdi leo21583 » 13/12/11 16:38

Salve a tutti!

Ho un problema che credo sia estremamente semplice da risolvere per gli esperti.. Ho una macro che crea due colonne di numeri in funzione del valore nella cella A1. Il problema è che vorrei che le due colonne si aggiornassero automaticamente nel momento in cui cambio il valore della cella in A1. Qualcuno sa dirmi come modificare la macro?

Private Sub Diag()
d = 0.5
L = Cells(1, 2).Value
n = (L / d) + 1
For j = 1 To n
Cells(7 + j, 1).Value = j * d - d
Cells(7 + j, 2).Value = -Cells(5, 2) + Cells(4, 2) * Cells(7 + j, 1) - Cells(2, 2) * Cells(7 + j, 1) ^ 2 / 2
Next j
End Sub
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Sponsor
 

Re: Rigenerazione automatica tabella?

Postdi Flash30005 » 13/12/11 23:45

Togli il "Private" alla macro ma lascia solo
Sub Diag()

poi vai nel vba del foglio (dove cambi il valore della cella A1)
e inserisci questo codice
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Call Diag
End Sub

Al solo variare della cella A1 si attiverà la macro che ricrea la tabella casuale come da te programmata

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-

Re: Rigenerazione automatica tabella?

Postdi leo21583 » 14/12/11 00:17

Grazieeeeee! Funziona ma ci sono due problemi:

1) Non so come fare a far cancellare i numeri automaticamente; perchè se creo una tabella più corta mi restano i numeri nelle altre righe;
2) se cambio numero non mi cambia subito i valori in tabella ma devo andare di nuovo col mouse sulla casella ( che strano!).
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Re: Rigenerazione automatica tabella?

Postdi Flash30005 » 14/12/11 00:48

Per il punto 1)
inserisci questa riga nella tua macro

Codice: Seleziona tutto
Private Sub Diag()
Range("A2:B10000").ClearContents  '<<<< questa riga qui, aumenta il valore 10000 a più righe se ne hai bisogno
d = 0.5
L = Cells(1, 2).Value
n = (L / d) + 1
For j = 1 To n
Cells(7 + j, 1).Value = j * d - d
Cells(7 + j, 2).Value = -Cells(5, 2) + Cells(4, 2) * Cells(7 + j, 1) - Cells(2, 2) * Cells(7 + j, 1) ^ 2 / 2
Next j
End Sub


per il punto 2) correggi il codice da me postato (cancella il precedente)
con questo (è in worksheets_Change e non SelectionChange)
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Call Diag
End Sub


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-

Re: Rigenerazione automatica tabella?

Postdi leo21583 » 14/12/11 12:19

Allora, adesso funziona bene la macro ma è sorto un altro problema (te pareva..).. Ho gia una Private sub Worksheet_Change nello stesso foglio e se ne metto due si blocca tutto e posso chiudere solo da gestione attività. Poi ho provato a mettere le istruzioni insieme nella stessa Private Sub Worsheet_Change e a quel punto mi funziona solo la prima delle due mentre l'altra viene ignorata. Si può risolvere? Grazie mille!
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35

Re: Rigenerazione automatica tabella?

Postdi Flash30005 » 14/12/11 13:00

Non puoi inserire due "Private Sub Worksheet_Change"
Quindi i codici vanno inseriti nella stessa "routine" modificando così
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then goto Salta
Call Diag
Salta:

'Tuo codice
'...
'...


End Sub


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-

Re: Rigenerazione automatica tabella?

Postdi leo21583 » 14/12/11 13:15

Grazie davvero! Adesso funziona tutto :)
leo21583
Utente Junior
 
Post: 32
Iscritto il: 10/12/11 08:35


Torna a Applicazioni Office Windows


Topic correlati a "Rigenerazione automatica tabella?":


Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti