Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

[Excel 2007] - MACRO: Significato di 2 istruzioni Opzioni
aetio
Inviato: Tuesday, October 26, 2010 9:06:23 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
Che strano... questa volta non chiedo una macro ahahahahah
Bando alle ciance... ho un paio di quesiti da porre:
spesso m'imbatto in questa istruzione
Application.CutCopyMode = False
e anche in questa (evidenziata in rosso), annegata in altre istruzioni
Sheets("Sigma").Select
ActiveWindow.Panes(2).Activate
ActiveCell.Select
ActiveWindow.Panes(1).Activate
ActiveCell.Offset(3, 0).Range("A1").Select
ActiveCell.Range("A1:CC19").Select
Selection.Clear
ActiveCell.Offset(18, 0).Range("A1").Select

ho provato a cercarne il significato e in che contesto specifico si usano, quali altre istruzioni sostituiscono o migliorano etc. ma non ho trovato nulla di sufficientemente esplicativo....
Grazie assai e buona giornata
eZio

EDIT:
Oggi sono "in vena" di Sapere... proprio come i bambini curiosi... :)))
già che ho aperto la discussione vorrei capire perché nonostante abbia premesso in ogni macro (anche a quella che fa girare tutta la serie) l'istruzione
Application.ScreenUpdating = False
e chiuso con l'istruzione
Application.ScreenUpdating = True
le operazioni svolte si vedono lo stesso scorrere in monitor....

Grazie ancora... e per oggi basta ahahaha


Sponsor
Inviato: Tuesday, October 26, 2010 9:06:23 AM

 
a10n11
Inviato: Tuesday, October 26, 2010 12:56:57 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
Salve
CutCopyMode
Annulla la modalità Taglia/copia
Es.se usi l'istruzione Range("a1").copy
la modalità copia rimane attiva fino all'interruzione con
Application.CutCopyMode=False

L'oggetto Pane, rappresenta un riquadro della finestra attiva.
Es. se dividi il foglio attivo Menù Finestra Dividi, i riquadri che ti vengono mostrati sono gli oggetti Pane.

In ogni caso il codice che hai postato è un mostro.. usi con troppo poca parsimonia l'istruzione select.
invece di scrivere
ActiveCell.Range("A1:CC19").Select
Selection.Clear

è meno dispendioso in termini di utilizzo di risorse scrivere
ActiveCell.Range("A1:CC19").Clear

Per Application.screenupdating bisogna vedere il contesto (repetita juvant) in cui è scritta l'istruzione.

saluti
Giap





aetio
Inviato: Tuesday, October 26, 2010 2:26:57 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
Grazie per gli approfondimenti.
Sono d'accordo con te sul mostro... è il registratore che ha istruito quel passaggio...
Un poco alla volta, Grazie al tuo insostituibile aiuto, sistemerò tutte le storpiature... Ora il mio principale obiettivo è che le macro lavorino correttamente restituendo i risultati giusti [lavoro è lavoro...ha dei tempi impietosi !! :D], nel contempo passo dopo passo le sistemerò com'è di dovere.... :D
Per quanto riguarda l' Application.screenupdating la struttura delle macro è quella solita... Sto provando a farle girare separatamente per vederne il comportamento... Ma da cosa può dipendere, in linea generale?
Grazie assai e buon pomeriggio,
eZio


EDIT:
In linea di massima:
C'è una macro che fa da regista, che come compito unico deve far girare in sequenza 3 macro di cui
la 3^ macro contiene, oltre alle proprie istruzioni, il comando di far girare in sequenza (non ravvicinata, ma a distanza di qualche riga di istruzioni intermedie preparatorie)
2 macro che terminato il loro lavoro tornano in sua routine; il tutto termina con cella attiva nella riga precedente a quella di partenza del ciclo generale... in Foglio 1, stessa colonna, pronta per ripetere eventualmente tutto il ciclo...
Le macro annegate hanno una loro ragione d'esistere: sono macro che di volta in volta modifichiamo a seconda del tipo di dato che ci serve ricavare da queste benedette tabelle [benedette nel vero senso della parola! come faremmo se non ci fossero loro, le macro, i Creatori di macro??!!!???... riferimenti puramente caUsali... :))) ]
Trattasi comunque di lavori eseguiti su una sola riga, che non coinvolgono porzioni estese dei fogli di lavoro e tutto sommato trattasi di lavoro assai leggero per il potente processore del mio pc..........





aetio
Inviato: Wednesday, October 27, 2010 6:24:13 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
a10n11 ha scritto:
Per Application.screenupdating bisogna vedere il contesto (repetita juvant) in cui è scritta l'istruzione.

Anche quando non spieghi.... "spieghi"!! :)))
Spero solo di essere giudicato un allievo all'altezza della situazione............
Ho risolto semplicemente "guardando il contesto in cui ho inserito le istruzioni" ;)))
Nella mia Matrëška di macro ogni componente aveva all'inizio e alla fine l' Application.screenupdating. Risultato: pasticciaccio all'italiana ahahah
è bastato ripulirle tutte e mettere l'istruzione solo alla macro regista e tutto è filato liscio.
Grazie infinite e buona giornata,
eZio
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.