Condividi:        

USERFORM ACTIVATE NON SCRIVE SUL WORKBOOK ATTIVO

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

USERFORM ACTIVATE NON SCRIVE SUL WORKBOOK ATTIVO

Postdi christianghz » 20/04/18 19:14

Ciao a tutti
vorrei capire qual è la procedura corretta per:

A) dichiarare in Public (?) il nome dell'ActiveWorkbook (o del Workbook che sto aprendo in quel momento con un ciclo For each), in modo che valga anche per tutte le macro richiamate poi nel ciclo.
B) Qual è la scrittura da usare dentro una macro richiamata nel ciclo per attivare il Workbook dichiarato sopra.

Ho provato varie cose ma quella che mi sembra più corretta è dichiarare "Cartella" in Public e poi impostando "Set Cartella = Activeworkbook" nel ciclo, ma mi dà errore "Necessario oggetto".
Grazie mille.


Se non è sufficiente spiego di seguito il problema:

ho un Megafile pieno di macro che mi dà un problema che non riesco a risolvere.
Non pubblico il codice per lunghezza e decenza.
Praticamente il file con le macro apre una serie di file (chiamiamoli da qui in poi MODULI) e su uno alla volta:

INIZIA a fare qualche decina di controlli;
Se trova cose che non vanno bene apre delle userform dove posso modificare dei dati nel Modulo che sto analizzando.
Se confermo le modifiche, riporta i dati della Userform nel Modulo e
FINITI i controlli chiude il Modulo e passa al successivo.

Succede però, a volte, che quando apro una userform poi la macro scrive sul MegaFile che contiene le macro.

Io sono certo di non richiamare il Megafile durante il controllo, e non capisco come mai succede, capita a spot e apparentemente random.
Vorrei quindi che prima che le userform inizino a riportare i dati si accertino che il file Attivo sia il Modulo e non il Megafile.

Grazie ancora.
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Sponsor
 

Re: USERFORM ACTIVATE NON SCRIVE SUL WORKBOOK ATTIVO

Postdi Anthony47 » 21/04/18 22:30

In un modulo standard del file che contiene la userform, in testa prima di qualsiasi Sub o Function, dichiara una variabile
Codice: Seleziona tutto
Public cWs As Worksheet

Poi, all'interno del codice attuale, subito dopo aver aperto un "Modulo" e aver selezionato il foglio che ti interessa esegui
Codice: Seleziona tutto
Set cWs = ActiveSheet


Mentre subito prima di chiudere un "Modulo" per aprire il successivo annulla il set
Codice: Seleziona tutto
Set cWs = Nothing


Poi all'interno delle macro che gestiscono la scrittura dei valori indirizza in modo esplicito il foglio del Modulo aperto; es
Codice: Seleziona tutto
cWs.Range("A2").Value = UserForm1.TextBox1.Value


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19223
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: USERFORM ACTIVATE NON SCRIVE SUL WORKBOOK ATTIVO

Postdi christianghz » 23/04/18 07:19

Grazie Anthony,
così mi richiamerebbe il Worksheet, ma richiama implicitamente anche il Workbook su cui si trova?
oppure se non sono sul workbook corretto mi dà errore perchè non trova il foglio? perchè se è così devo dichiarare anche il Workbook
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: USERFORM ACTIVATE NON SCRIVE SUL WORKBOOK ATTIVO

Postdi christianghz » 23/04/18 07:55

Mi autorispondo:
non serve perché cerca il foglio specifico di quel Workbook anche se sono in un altro Workbook.
christianghz
Utente Senior
 
Post: 114
Iscritto il: 03/02/14 17:58

Re: USERFORM ACTIVATE NON SCRIVE SUL WORKBOOK ATTIVO

Postdi Anthony47 » 23/04/18 15:02

Infatti un oggetto "WorkSheet" punta a uno specifico foglio; questo include quindi anche suo "padre", il WorkBook.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19223
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "USERFORM ACTIVATE NON SCRIVE SUL WORKBOOK ATTIVO":


Chi c’è in linea

Visitano il forum: Nessuno e 75 ospiti