Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Application.ScreenUpdating

607 views
Skip to first unread message

Roccia

unread,
Nov 14, 2009, 3:07:54 AM11/14/09
to
Ciao,

In una UserForm ho una CoboBox che carico con questo codice, c'è solo
un problema nel codice ho inserito Application.ScreenUpdating = False
per non cambiare foglio, invece lo cambia, perchè non funziona, dove
sbaglio?

Private Sub CarClienti()

Dim Riga As Long
Application.ScreenUpdating = False
Sheets("Clienti").Select
Set SH = Worksheets("Clienti")
With SH
Riga = .Range("A" & Rows.Count).End(xlUp).Row
Me.ComboBox02.RowSource = .Name & "!A2:A" & Riga
End With
Range(Cells(2, 1), Cells(Riga, 1)).Select
ActiveWorkbook.Names.Add Name:="eClienti",
RefersToR1C1:=Selection
Application.ScreenUpdating = True

Set SH = Nothing

End Sub

Ringrazio e Saluto
Roccia

Tiziano Marmiroli

unread,
Nov 14, 2009, 6:50:27 AM11/14/09
to
Il Sat, 14 Nov 2009 00:07:54 -0800 (PST), Roccia ha scritto:

>In una UserForm ho una CoboBox che carico con questo codice, c'� solo


>un problema nel codice ho inserito Application.ScreenUpdating = False

>per non cambiare foglio, invece lo cambia, perch� non funziona, dove
>sbaglio?

Non so se ho capito il problema.

ScreenUpdating = False ti permette di non mostrare le operazioni fatte
dalla macro

Quando ripristini con ScreenUpdating = True ti ritrovi l'esito delle
operazioni effettuate.

Se vuoi che alla fine della macro venga mostrato il foglio di partenza
devi usare qualcosa del genere:

sub prova
dim wshIniz as excel.worksheet
application.screenupdating=false
set wshIniz=activesheet

'tue operazioni

wshIniz.activate
application.screenupdating=true
end sub

Facci sapere se e come hai risolto, grazie.
--
Tiziano Marmiroli
Microsoft MVP - Office System
http://www.riolab.org

Roccia

unread,
Nov 14, 2009, 7:06:13 AM11/14/09
to
On 14 Nov, 12:50, Tiziano Marmiroli <t.marmir...@mvps.org> wrote:
> Il Sat, 14 Nov 2009 00:07:54 -0800 (PST), Roccia ha scritto:
>
> >In una UserForm ho una CoboBox che carico con questo codice, c'è solo

> >un problema nel codice ho inserito Application.ScreenUpdating = False
> >per non cambiare foglio, invece lo cambia, perchè non funziona, dove

> >sbaglio?
>
> Non so se ho capito il problema.
>
> ScreenUpdating = False ti permette di non mostrare le operazioni fatte
> dalla macro
>
> Quando ripristini con ScreenUpdating = True ti ritrovi l'esito delle
> operazioni effettuate.
>
> Se vuoi che alla fine della macro venga mostrato il foglio di partenza
> devi usare qualcosa del genere:
>
> sub prova
> dim wshIniz as excel.worksheet
> application.screenupdating=false
> set wshIniz=activesheet
>
> 'tue operazioni
>
> wshIniz.activate
> application.screenupdating=true
> end sub
>
> Facci sapere se e come hai risolto, grazie.
> --
> Tiziano Marmiroli
> Microsoft MVP - Office Systemhttp://www.riolab.org

Ciao Tiziano,

> Non so se ho capito il problema.
>
> ScreenUpdating = False ti permette di non mostrare le operazioni fatte
> dalla macro

e invece me le permette

Private Sub CarClienti()

con F8 provo la macro

Dim Riga As Long
Application.ScreenUpdating = False

Sheets("Clienti").Select <-------- qui il fogli cambia,
quando devrebbe ignorare il comando


Set SH = Worksheets("Clienti")

Ciao
Roccia

Bruno Campanini

unread,
Nov 14, 2009, 7:21:22 AM11/14/09
to
"Roccia" <roggian...@libero.it> wrote in message
news:4e740138-7525-468a...@f16g2000yqm.googlegroups.com...
> Ciao,
>
> In una UserForm ho una CoboBox che carico con questo codice, c'� solo

> un problema nel codice ho inserito Application.ScreenUpdating = False
> per non cambiare foglio, invece lo cambia, perch� non funziona, dove
> sbaglio?
>
> Private Sub CarClienti()
[...]

=================================
Private Sub CarClienti_Click()
Dim SR As Range
Set SR = [Clienti!A2] ' La prima cella contenente dati
If Not IsEmpty(SR(2, 1)) Then
Set SR = SR.Resize(SR.End(xlDown).Row - SR.Row + 1)
End If
ComboBox02.RowSource = Mid(SR.Name, 2)
End Sub
=================================

Bruno

Scossa

unread,
Nov 14, 2009, 5:42:38 PM11/14/09
to
On 14 Nov, 09:07, Roccia <roggiani.lu...@libero.it> wrote:

> un problema nel codice ho inserito Application.ScreenUpdating = False
> per non cambiare foglio,

Dove hai letto che Application.ScreenUpdating serve per "non cambiare
foglio"?

Serve per "non aggiornare il video" cioè per "non mostrare" a video le
modifiche eseguite dal codice sui fogli


Bye!
Scossa

Roccia

unread,
Nov 15, 2009, 5:30:10 AM11/15/09
to

Ciao Scossa,

Il mio problema è,
Apro il file FATTURE
Foglio1 con dei tasti per aprire delle UserForm
Aperta la UserFrom mentre inserico i dati e li registro non vorrei
vedere il passaggio da Foglio1 a Foglio2 e vice versa.
Application.ScreenUpdating = False l'ho messo per non verere lo
sfondo cambiare sbaglio?

Questa è la macro

Private Sub CarClienti()

Dim Riga As Long
Application.ScreenUpdating = False
Sheets("Clienti").Select
Set SH = Worksheets("Clienti")
With SH
Riga = .Range("A" & Rows.Count).End(xlUp).Row
Me.ComboBox02.RowSource = .Name & "!A2:A" & Riga
End With
Range(Cells(2, 1), Cells(Riga, 1)).Select
ActiveWorkbook.Names.Add Name:="eClienti",
RefersToR1C1:=Selection
Application.ScreenUpdating = True


Set SH = Nothing

Ciao
Roccia

End Sub


Roccia

unread,
Nov 15, 2009, 6:00:54 AM11/15/09
to
On 14 Nov, 13:21, "Bruno Campanini" <B...@gmail.com> wrote:
> "Roccia" <roggiani.lu...@libero.it> wrote in message
>
> news:4e740138-7525-468a...@f16g2000yqm.googlegroups.com...> Ciao,
>
> > In una UserForm ho una CoboBox che carico con questo codice, c'è solo

> > un problema nel codice ho inserito Application.ScreenUpdating = False
> > per non cambiare foglio, invece lo cambia, perchè non funziona, dove

> > sbaglio?
>
> > Private Sub CarClienti()
>
> [...]
>
> =================================
> Private Sub CarClienti_Click()
> Dim SR As Range
> Set SR = [Clienti!A2] ' La prima cella contenente dati
> If Not IsEmpty(SR(2, 1)) Then
>     Set SR = SR.Resize(SR.End(xlDown).Row - SR.Row + 1)
> End If
> ComboBox02.RowSource = Mid(SR.Name, 2)
> End Sub
> =================================
>
> Bruno

Ciao Bruno ,

Il codice che hai postato, non so come integrarlo col mio, me lo puoi
fare te per favore.

=================================
Private Sub CarClienti_Click()
Dim SR As Range
Set SR = [Clienti!A2] ' La prima cella contenente dati
If Not IsEmpty(SR(2, 1)) Then
Set SR = SR.Resize(SR.End(xlDown).Row - SR.Row + 1)
End If
ComboBox02.RowSource = Mid(SR.Name, 2)
End Sub
=================================

Private Sub CarClienti()

Dim Riga As Long

Application.ScreenUpdating = False

Sheets("Clienti").Select

Set SH = Worksheets("Clienti")

With SH
Riga = .Range("A" & Rows.Count).End(xlUp).Row
Me.ComboBox02.RowSource = .Name & "!A2:A" & Riga
End With


Range(Cells(2, 1), Cells(Riga, 1)).Select
ActiveWorkbook.Names.Add

Name:="eClienti",RefersToR1C1:=Selection

Application.ScreenUpdating = True


Set SH = Nothing


End Sub


Ciao
Roccia

Scossa

unread,
Nov 15, 2009, 7:31:50 AM11/15/09
to
On 15 Nov, 11:30, Roccia <roggiani.lu...@libero.it> wrote:
> Apro il file FATTURE
> Foglio1 con dei tasti per aprire delle UserForm
> Aperta la UserFrom mentre inserico i dati e li registro non vorrei
> vedere il passaggio da Foglio1 a Foglio2 e vice versa.
> Application.ScreenUpdating = False   l'ho messo per non verere lo
> sfondo cambiare sbaglio?
>
> Questa è la macro
>
> Private Sub CarClienti()
>
>     Dim Riga As Long
>         Application.ScreenUpdating = False
>         Sheets("Clienti").Select
>     Set SH = Worksheets("Clienti")
>     With SH
>         Riga = .Range("A" & Rows.Count).End(xlUp).Row
>         Me.ComboBox02.RowSource = .Name & "!A2:A" & Riga
>     End With
>        Range(Cells(2, 1), Cells(Riga, 1)).Select
>        ActiveWorkbook.Names.Add Name:="eClienti",
> RefersToR1C1:=Selection
>         Application.ScreenUpdating = True
>
>     Set SH = Nothing
>
> End Sub

Scusa ma non ho capito bene: parli di foglio1 e folgio2 ma nel codice
vedo solo un worksheets("clienti")....

More info please :-)

Bye!
Scossa

Bruno Campanini

unread,
Nov 15, 2009, 8:53:45 AM11/15/09
to
"Roccia" <roggian...@libero.it> wrote in message
news:065aab0b-0207-4455...@k4g2000yqb.googlegroups.com...


> Il codice che hai postato, non so come integrarlo col mio, me lo puoi
> fare te per favore.
>
> =================================
> Private Sub CarClienti_Click()
> Dim SR As Range
> Set SR = [Clienti!A2] ' La prima cella contenente dati
> If Not IsEmpty(SR(2, 1)) Then
> Set SR = SR.Resize(SR.End(xlDown).Row - SR.Row + 1)
> End If
> ComboBox02.RowSource = Mid(SR.Name, 2)
> End Sub
> =================================

Cos�:

Private Sub CarClienti()


Dim SR As Range
Set SR = [Clienti!A2] ' La prima cella contenente dati
If Not IsEmpty(SR(2, 1)) Then
Set SR = SR.Resize(SR.End(xlDown).Row - SR.Row + 1)
End If
ComboBox02.RowSource = Mid(SR.Name, 2)
End Sub

Tutto il resto � inutile.

Bruno

Roccia

unread,
Nov 16, 2009, 2:24:32 AM11/16/09
to
On 15 Nov, 14:53, "Bruno Campanini" <B...@gmail.com> wrote:
> "Roccia" <roggiani.lu...@libero.it> wrote in message

>
> news:065aab0b-0207-4455...@k4g2000yqb.googlegroups.com...
>
> > Il codice che hai postato, non so come integrarlo col mio, me lo puoi
> > fare te per favore.
>
> > =================================
> > Private Sub CarClienti_Click()
> > Dim SR As Range
> > Set SR = [Clienti!A2] ' La prima cella contenente dati
> > If Not IsEmpty(SR(2, 1)) Then
> >    Set SR = SR.Resize(SR.End(xlDown).Row - SR.Row + 1)
> > End If
> > ComboBox02.RowSource = Mid(SR.Name, 2)
> > End Sub
> > =================================
>
> Così:

>
> Private Sub CarClienti()
>      Dim SR As Range
>      Set SR = [Clienti!A2] ' La prima cella contenente dati
>      If Not IsEmpty(SR(2, 1)) Then
>             Set SR = SR.Resize(SR.End(xlDown).Row - SR.Row + 1)
>      End If
>      ComboBox02.RowSource = Mid(SR.Name, 2)
> End Sub
>
> Tutto il resto è inutile.
>
> Bruno

Ciao Bruno,

Tu dici Tutto il resto è inutile, ma a mè da Errore di run-time
'1004': Errore definito dall'applicazione o dall'oggeto.

perchè manca questo pezzo di codice

Range(Cells(2, 1), Cells(Riga, 1)).Select
ActiveWorkbook.Names.Add
Name:="eClienti",RefersToR1C1:=Selection

Ciao
Roccia

Roccia

unread,
Nov 16, 2009, 2:47:35 AM11/16/09
to
> Scossa- Nascondi testo citato
>
> - Mostra testo citato -

Ciao Scossa,

> Scusa ma non ho capito bene: parli di foglio1 e folgio2 ma nel codice
> vedo solo un worksheets("clienti")....

Foglio1 = worksheets Prima Nota
Foglio2 = worksheets Clienti
Foglio3 = worksheets Fornitori
Foglio4 = worksheets Fatture
Foglio5 = worksheets Listino

Scrivendo Foglio1 pensavo di rendere il codice più comprensibile,
scusa se non ho specificato il nome di ogni foglio.

Ciao
Roccia

Mauro Gamberini

unread,
Nov 16, 2009, 4:07:44 AM11/16/09
to
<cut>

Domanda.
Cosa devi fare?
Grazie.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/officeit/threads

Bruno Campanini

unread,
Nov 16, 2009, 4:37:08 AM11/16/09
to
"Roccia" <roggian...@libero.it> wrote in message
news:3c440414-1f02-4b38...@k4g2000yqb.googlegroups.com...

> Tu dici Tutto il resto � inutile, ma a m� da Errore di run-time


> '1004': Errore definito dall'applicazione o dall'oggeto.
>

> perch� manca questo pezzo di codice


>
> Range(Cells(2, 1), Cells(Riga, 1)).Select
> ActiveWorkbook.Names.Add
> Name:="eClienti",RefersToR1C1:=Selection
>
> Ciao
> Roccia

Ti assicuro che la seguente, collocata OnClick di un Button
in una User Form, funziona regolarmente.
Se poi vuoi usarla in altro contesto dovrai opportunamente
adattarla.

La programmazione per "selezioni" la considero una cosa
aberrante: puoi fare tutto o quasi senza dovervi ricorrere.

======================================


Private Sub CarClienti_Click()
Dim SR As Range
Set SR = [Clienti!A2] ' La prima cella contenente dati
If Not IsEmpty(SR(2, 1)) Then
Set SR = SR.Resize(SR.End(xlDown).Row - SR.Row + 1)
End If
ComboBox02.RowSource = Mid(SR.Name, 2)
End Sub

======================================

Bruno

Mauro Gamberini

unread,
Nov 16, 2009, 4:59:46 AM11/16/09
to
> La programmazione per "selezioni" la considero una cosa
> aberrante: puoi fare tutto o quasi senza dovervi ricorrere.
>

Condivido in pieno questa affermazione.

Roccia

unread,
Nov 16, 2009, 8:17:38 AM11/16/09
to
On 16 Nov, 10:07, "Mauro Gamberini"

Ciao Mauro,

> Domanda.
> Cosa devi fare?
> Grazie.

Un data base,
creare Un UserForm con una ComboBox e una decina (più o meno) di
TexBox
per poter inserire dei dati, poterli richiamare (in un secondo tempo)
e modificare,
tutto qua,

Ciao
Roccia

Mauro Gamberini

unread,
Nov 16, 2009, 8:32:24 AM11/16/09
to
Un data base,
creare Un UserForm con una ComboBox e una decina (pi� o meno) di

TexBox
per poter inserire dei dati, poterli richiamare (in un secondo tempo)
e modificare,
tutto qua,
Se vai qui:

http:\\blog.maurogsc.eu\

e vai alla pagina:

Excel - VBA. Modulo(7)

trovi un semplice esempio.

(prima o poi lo porto nel sito)

Mauro Gamberini

unread,
Nov 16, 2009, 8:38:05 AM11/16/09
to

Roccia

unread,
Nov 16, 2009, 9:06:03 AM11/16/09
to
On 16 Nov, 14:32, "Mauro Gamberini"

<maurogscRIMUOV...@RIMUOVEREaliceposta.it> wrote:
> Un data base,
> creare Un UserForm con una ComboBox e una decina (più o meno) di

> TexBox
> per poter inserire dei dati, poterli richiamare (in un secondo tempo)
> e modificare,
> tutto qua,
> Se vai qui:
>
> http:\\blog.maurogsc.eu\
>
> e vai alla pagina:
>
> Excel - VBA. Modulo(7)
>
> trovi un semplice esempio.
>
> (prima o poi lo porto nel sito)
>
> --
> ---------------------------

Ciao Mauro,

Ho scaricato Modulo_1, ma non riesco a capire qual'è il codice che mi
permette di modificare i dati richiamati, il mio problema è questo.
un nuovo prodotto lo inserisco e lo registro, fin qui tutto bene,
quando lo modifico e lo registro me lo aggiunge all'ultima riga, non
me lo corregge.

Ciao
Roccia

Mauro Gamberini

unread,
Nov 16, 2009, 9:27:14 AM11/16/09
to
Ho scaricato Modulo_1, ma non riesco a capire qual'� il codice che mi
permette di modificare i dati richiamati, il mio problema � questo.

un nuovo prodotto lo inserisco e lo registro, fin qui tutto bene,
quando lo modifico e lo registro me lo aggiunge all'ultima riga, non
me lo corregge.
*******************************************

Nell'esempio che hai nel file,
prima lo trovi, poi lo modifichi.

0 new messages