PDA

Visualizza versione completa : Macro Excel


TiTTi
13-09-2004, 08.46.45
Ciao! Sto cercando di scrivere una macro che mi realizzi la trasposizione di un gruppo di celle. Siccome la funzione già c'è (incolla speciale --> trasponi), ho pensato di usare il registratore di macro e poi modificare a piacere. Questo è il risultato:

Sub Macro1()

' *** PARTE ORIGINALE INSERITA DAL REG. DI MACRO ***
' Range("B3:E4").Select -> seleziona sorgente
' Selection.Copy -> copia sorgente
' Range("B6").Select -> seleziona inizio destinazione


' *** Questa l'ho inserita io... ***
ActiveCell.Select

' ruota e incolla
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

End Sub

Premetto che nelle mie intenzioni, prima di usare la macro è necessario selezionare e copiare il gruppo di celle da trasporre, e quindi selezionare il vertice superiore sinistro della zona di destinazione.
Però non funziona, mi da errore nel metodo PasteSpecial della classe Range.

PERCHE'???

xman
13-09-2004, 20.49.37
Mah...a me funziona se prima seleziono l'intervallo di celle, faccio copia e seleziono una cella dove incollare.

Ciao.

TiTTi
14-09-2004, 00.50.55
Originariamente inviato da xman
Mah...a me funziona se prima seleziono l'intervallo di celle, faccio copia e seleziono una cella dove incollare.

Ciao.

Che versione usi?

xman
14-09-2004, 02.05.33
Office xp.

TiTTi
14-09-2004, 09.47.29
Originariamente inviato da xman
Office xp.

... anch'io!
Quindi tu hai inserito la mia macro, selezioni un gruppo di celle e fai CTRL-C, selezioni un'altra cella ed esegui la macro, e va tutto bene. Giusto?
:crying:

xman
14-09-2004, 11.25.18
Esattamente come hai detto tu. Francamente non so perchè a te non funzioni.
(La tua macro l'ho inserita col copia/incolla senza modificare una virgola).

TiTTi
14-09-2004, 11.56.07
VOGLIO MORIRE !!!
:( :( :( :(

TiTTi
14-09-2004, 12.00.03
A me esce questo, qualcuno ha idea del perché???

xman
14-09-2004, 12.03.28
Prova a zippare il file xls e ad allegarlo.

TiTTi
14-09-2004, 12.26.25
DANKE!

xman
14-09-2004, 13.17.16
Mah...hai un componente aggiuntivo Xla che ti impedisce di conservare in memoria le celle copiate, quando la routine deve incollare non trova nulla da incollare.
Secondo me ti conviene disinstallare office e reinstallarlo.
Ciao.

TiTTi
14-09-2004, 13.23.34
Originariamente inviato da xman
Mah...hai un componente aggiuntivo Xla che ti impedisce di conservare in memoria le celle copiate, quando la routine deve incollare non trova nulla da incollare.


Ma il file che ho allegato, sul tuo excel funzia?

xman
14-09-2004, 13.42.09
No.

TiTTi
14-09-2004, 14.01.38
Mi manderesti quello con cui hai fatto la prima prova, quello che funziona?

GRASSIE!!!

xman
14-09-2004, 14.23.10
Scusa, ma adesso riprovando funziona il tuo file. Quando l'avevo scaricato c'era stato un errore nel download.

TiTTi
14-09-2004, 14.33.10
fatto disinstall e reinstall, ma mi da lo stesso errore!

DISPERATO!!!

xman
14-09-2004, 15.01.09
Ti dà errore perchè quando quando apri la finestra per lanciare la macro, negli appunti non c'è più l'intervallo selezionato prima.
Prova a lanciare la macro attraverso una combinazione di stasti (es. Ctrl+m).
(per assegnare un tasto si scelta rapida vai in opzioni nella finestra Macro).

TiTTi
14-09-2004, 15.08.44
XMAN sei un grande!

Funziona!!!

Beh, però adesso ne approfitto: se volessi rendere sempre disponibile questa macro, in tutti i miei fogli, sarei costratto a fare copia-incolla in ciascuno o posso renderla "pubblica"???

GRAZIE 1000

xman
14-09-2004, 15.44.07
Vai su salva con nome e salva il foglio contenente la macro come "Componente aggiuntivo di Microsoft Excel"
Dagli un nome e salvalo nella cartella che ti viene proposta.
Poi chiudi e apri un file excel, vai nella barra dei menù>strumenti>Componenti aggiuntivi e spunta il nome che hai dato al precedente file salvato come componente aggiuntivo.

TiTTi
14-09-2004, 19.46.09
Funziona anche questo!
Grazie davvero!