Excel :: Lazzaro
Pubblicato da Alexsandra su Febbraio 1, 2008
Questa sezione è riservata a Lazzaro prego gli altri utenti di postare quì consigli, suggerimenti esempi ma non altre problematiche…. Grazie ••• Ritorna alla pagina precedente •••
Questo è il quesito posto:
Ho creato un modello di fatturazione in excel alla ho aggiunto sullo stesso foglio dei pulsanti con dei codici vba per automizzare un pò le procedure. I codici funzionano.
In seguito ho avuto l’esigenza di spostare i suddetti pulsanti in un altro foglio della stessa cartella e qui le cose non hanno iniziato a funzionare. Ti faccio un esempio più specifico questo è il codice del pulsante salva:Private Sub CommandButton1_Click()
Range(”G36″).Select
Selection.Copy
Range(”Z1″).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range(”a6″).Select
Dim Riga
With Sheets(”riepilogo”)
Riga = 1
While .Cells(Riga, 1) “”
Riga = Riga + 1
Wend
End With
Application.CutCopyMode = False
a = Cells(10, 3)
b = Cells(1, 12)
b = a
Cells(10, 3) = a
Cells(1, 12) = b
Sheets(1).Copy **************** ->
Dim X As String
X = “Fattura N°” & Range(”C10″).Value
ActiveWorkbook.SaveAs Filename:=”C:\Documents and Settings\utente\Desktop\Fatture2008\Fatture2008\” & X & “.xls”, FileFormat:= _
xlNormal, Password:=””, WriteResPassword:=””, ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWindow.Close
End sub
Il mio problema sta nel fatto che non riesco a far funzionare il codice del pulsante che è posizionato nel “Foglio1″ ma che deve eseguire delle operazioni nel “Foglio2″. Ho gia provato con i comandi sheets.select e Worksheets(”fogliox”).Activate
ma mi viene fuori errori del tipo ‘Errore nel metodo activate per la classe range Ti sarei grato se potresti darmi un aiuto o delle coordinate dove potermi informare a riguardo



Alexsandra detto
nel punto che ti ho contrassegnato con gli asterischi prova a modificarlo così
Application.ScreenUpdating = False
ActiveSheet.Copy Before:=Sheets(1)
e alla fine prima di End Sub inserisci
Application.ScreenUpdating = True
Vedo che lo esporti in un percorso, io potrei proporti un altro metodo, sulla falsariga di quello che hai fatto tu, comunque vedi con quella modifica se ti rimanda l’errore.
Se non risolvi ti posto il codice
ciao
Alexsandra detto
quando crei il pulsante sul foglio, devi usare il menu moduli, e quando crei il pulsante ti appare la maschera per associare le macro presenti nel tuo file.
Devi associare il pulsante alla macro, io ho provato il tuo codice e funziona senza errori.non capisco quando dici
**se creo un pulsante e ci scrivo lo stesso codice mi da un “errore nel metodo della classe range” ** dove lo scrivi il codice?
per farla girare devi fare come ti ho spiegato sopra, associ il pulsante alla macro
Alexsandra detto
prova questo codice
non devi usare una Private Sub, se vuoi lanciare la macro devi associarla al pulsante e per fare questa operazione la devi vedere, il discorso cambia se fai una userform, in cui inserisci un controllo commandbutton e allora si puoi usare il private, ma sei all’interno di una userform.
al tempo stesso devi lanciare la userform con il comando show.
in grassetto erano gli errori, ora associando la macro modificata funziona
Attenzione : a questa riga While .Cells(Riga, 1) “” non prende i caratteri (diverso) da stringa vuota (””) per problemi di formattazione del blog
lazzaro detto
Grazie inanzitutto per la celere risposta
Il problema non è nel codice ma nella posizione del stesso
Cioè se registro una macro e questo codice lo scrivo nei moduli:
(Questo è un altro esempio)
Sub prova()
Worksheets(”foglio2″).Activate
a = Cells(10, 3)
b = Cells(2, 16)
a = b + 1
b = a
Cells(10, 3) = a
Cells(2, 16) = b
Dim data As Date
data = Now
Range(”C11″).Select
ActiveCell.Value = data
End Sub
e in seguito lancio la macro manualmente va tutto bene.
Mentre se creo un pulsante e ci scrivo lo stesso codice mi da un “errore nel metodo della classe range” evidenziando la riga “Range(”C11″).select
Lazzaro detto
Grazie alexsandra per le tue risposte e per la tua pazienza. Credo di aver trovato quello che cercavo nel tuo post n°69.
Adesso ci lavoro un pò e vediamo che succede.
Grazie di nuovo per la disponibilità se dovessi avere problemi di farò sapere.Sei veramente in gamba
Lazzaro
Alexsandra detto
Grazie Lazzaro, quando hai bisogno
son quì
ciao
Lazzaro detto
Ciao Alexsandra ti vorrei chiedere come si puo inserire tramite una macro un testo in una determinata cella di un foglio di lavoro.
Per essere più precisi tramite un command button Vorrei inserire il testo “Pippo” nella cella “A2″
Alexsandra detto
leggi quì http://alexsandra.wordpress.com/2007/04/07/programmazione-vba-lezione-1/
Lazzaro detto
Pardon mi sto un pò rinco……..
Grazie.
Alexsandra detto
No problem, leggiti il link che ti ho segnalato, se ti trovi in difficoltà fai un fischio