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
>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
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
=================================
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
> 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
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
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
Scusa ma non ho capito bene: parli di foglio1 e folgio2 ma nel codice
vedo solo un worksheets("clienti")....
More info please :-)
Bye!
Scossa
> 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
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
Domanda.
Cosa devi fare?
Grazie.
--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/officeit/threads
> 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
Condivido in pieno questa affermazione.
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
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
Nell'esempio che hai nel file,
prima lo trovi, poi lo modifichi.