Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmi e Utility (https://www.hwupgrade.it/forum/forumdisplay.php?f=37)
-   -   Excel: problematiche e soluzioni (https://www.hwupgrade.it/forum/showthread.php?t=2102242)


Raffaele53 01-04-2010 19:27

Come detto quel 5,39 non so proprio cosa sia.....

=(A10+B10+C10+D10+E10+F10+G10)*24 (formato generale = 7,1 - Numero 7,10000)
=SOMMA(A2+B2+C2+D2+E2+F2+G2) (Formato ora = 7.06)

wittelsbach 01-04-2010 20:57

macro excel per copiare selezione in sequenza
 
Ho bisogno di creare un pulsante assegnandogli una macro che mi copi una selezione di dati, alcune (da stabilire) celle più in basso. Cosicché ogni qualvolta decida di utilizzarla, essa effettui la stessa operazione sempre più in basso rispetto all'ultima selezione copiata. Grazie mille. ciao.

zuper 01-04-2010 21:52

mi sembra un po vaga come richiesta...

nn si sa quante nè quali celle
nn si sa dove
nn si capisce chi e quando lo stabilisce...

insomma....spiega un po meglio e fai magari un esempio...

wittelsbach 02-04-2010 10:25

non è così importante stabilire quali celle. Fai conto che debba copiare la cella A1 5 righe più sotto e, sempre la cella A1, 5 righe più sotto rispetto all'ultima cella copiata, e così via.

Raffaele53 02-04-2010 15:44

Una Macro è una specie di una registrazione video.
Se registro una scena per spostare la cella A1 in A6, questa ripeterà all'infinito solo e unicamente questo passaggio (A1 in A6).
Ho descritto solo una cella, impossibile per un numero di celle da definire al momento.

Quello che desideri si protrebbe fare... forse col Codice VBA.
Anche qui, personalmente la vedo dura. Ammettiamo che il codice scritto sia di spostare giù (l'area selezionata) di 5 righe, appeno mi sposto per premere il bottone, l'area selezionata non sarà più quella scelta ma il bottone stesso.
Pertanto scrivere il Codice e abilitarlo a un tasto particolare....forse mi sbaglio.

Lara-chan 02-04-2010 17:08

Excel 2003 problema salvataggio automatico
 
Buonasera,

ho un problema con un file excel vers 2003.

Avevo impostato il salvataggio automatico su una cartella di rete ma hanno cambiato il server e ora quando excel cerca di fare il back up mi appare il messaggio d'errore.
Ma il vero problema è che quando sono rientrata in Strumenti -> Opzioni per modificare il percorso non sono più riuscita a fare nulla perchè qualsiasi finestra cliki mi si presenta il messaggio d'errore : Impossibile accedere alla directory \\"..indirizzo.."
Quindi non riesco a cambiare l'indirizzo...

Qualcuno è in grado di aiutarmi? Grazie e auguri!!

Raffaele53 02-04-2010 19:39

Prova ad aprire un files excel nuovo e vedi se riesci a cambiare l'impostazione.

ses4 02-04-2010 20:31

Quote:

Originariamente inviato da wittelsbach (Messaggio 31481385)
non è così importante stabilire quali celle. Fai conto che debba copiare la cella A1 5 righe più sotto e, sempre la cella A1, 5 righe più sotto rispetto all'ultima cella copiata, e così via.

Una cosa come questa?

Sub Test1()
Range("A1").Copy
ActiveSheet.Paste Destination:=Range("A65536").End(xlUp).Offset(5, 0)
End Sub

Ciao

zuper 02-04-2010 20:41

Quote:

Originariamente inviato da ses4 (Messaggio 31488727)
Una cosa come questa?

Sub Test1()
Range("A1").Copy
ActiveSheet.Paste Destination:=Range("A65536").End(xlUp).Offset(5, 0)
End Sub

Ciao

si oppure usi il selection.copy,

però così ogni volta che incolli salti 5 righe... ;)

ma quello che intendevo era che le info sono poco chiare per fare una cosa decente :)

zuper 02-04-2010 20:45

Quote:

Originariamente inviato da Raffaele53 (Messaggio 31485635)
Una Macro è una specie di una registrazione video.
Se registro una scena per spostare la cella A1 in A6, questa ripeterà all'infinito solo e unicamente questo passaggio (A1 in A6).
Ho descritto solo una cella, impossibile per un numero di celle da definire al momento.

Quello che desideri si protrebbe fare... forse col Codice VBA.
Anche qui, personalmente la vedo dura. Ammettiamo che il codice scritto sia di spostare giù (l'area selezionata) di 5 righe, appeno mi sposto per premere il bottone, l'area selezionata non sarà più quella scelta ma il bottone stesso.
Pertanto scrivere il Codice e abilitarlo a un tasto particolare....forse mi sbaglio.

vedo che impari sempre di + su excel :)

un paio di precisazioni se posso :)

la macro non fa altro che scriverti del codice vba, senza obbligarti a scriverlo a mano, ma nulla ti vieta di registrare un pezzettino di codice e poi integrarlo come meglio credi.

nel caso da te proposto ti basterebbe registrare l'azione che vuoi compiere, e poi come suggerito da ses aggiungerci una riga che faccia l'offset fino alla cella di destinazione...

e un'altra cosina, se hai impostata una selezione e clicchi col mouse sul pulsante per far partire la macro, non ti perde la selezione, infatti puoi tranquillamente usare il comando Selection.Copy e lui usa la selezione corrente ;)

zuper 02-04-2010 21:11

oppure devi resettare excel come se fosse appena stato installato :)

wittelsbach 03-04-2010 09:54

Quote:

Originariamente inviato da ses4 (Messaggio 31488727)
Una cosa come questa?

Sub Test1()
Range("A1").Copy
ActiveSheet.Paste Destination:=Range("A65536").End(xlUp).Offset(5, 0)
End Sub

Ciao

ciao, grazie ma non funziona per come la intendo io. Diciamo che per essere più precisi avrei bisogno di un controllo nella cella di destinazione: se quest'ultima è occupata da un qualsiasi codice alfanumerico allora si passa a verificare la cella 5 righe più sotto, e così via, finché non si trova la prima cella vuota da destinare alla copia della cella A1 (da notare che a1 deve essere copiata SOLO nella prima cella vuota (ad intervalli di 5 righe) e non in tutte le successive. Il range è comunque l'intero foglio excel.

zuper 03-04-2010 11:02

Quote:

Originariamente inviato da wittelsbach (Messaggio 31491715)
ciao, grazie ma non funziona per come la intendo io. Diciamo che per essere più precisi avrei bisogno di un controllo nella cella di destinazione: se quest'ultima è occupata da un qualsiasi codice alfanumerico allora si passa a verificare la cella 5 righe più sotto, e così via, finché non si trova la prima cella vuota da destinare alla copia della cella A1 (da notare che a1 deve essere copiata SOLO nella prima cella vuota (ad intervalli di 5 righe) e non in tutte le successive. Il range è comunque l'intero foglio excel.

ma l'hai provata?

Raffaele53 03-04-2010 11:11

>>>la macro non fa altro che scriverti del codice vba
Mi piace excel perchè sono bravo in matematica e fare formule.
Il VBA ci ho provato e riprovato, ma è l'unica cosa che non vuole entrare in testa. Ultimamente ho fatto qualche DB, anche qui solo in modalita query/tabelle/maschera. Visto che il VBA è diventato categorico i casi sono due: inserisco il VBA col martello in testa oppure ci rinuncio.

Adesso voglio vedere cosa rispondete all'ultima domanda.
Ciao

zuper 03-04-2010 11:13

Quote:

Originariamente inviato da Raffaele53 (Messaggio 31492409)
>>>la macro non fa altro che scriverti del codice vba
Mi piace excel perchè sono bravo in matematica e fare formule.
Il VBA ci ho provato e riprovato, ma è l'unica cosa che non vuole entrare in testa. Ultimamente ho fatto qualche DB, anche qui solo in modalita query/tabelle/maschera. Visto che il VBA è diventato categorico i casi sono due: inserisco il VBA col martello in testa oppure ci rinuncio.

Adesso voglio vedere cosa rispondete all'ultima domanda.
Ciao

io consiglierei di andare a prendere un bel martello :)
scherzi a parte comincia col registrare qualche bella macro e poi vatti ad analizzare il codice vba...nn è difficile fidati!!
devi solo prenderci un po la mano :)

ehm...quale sarebbe l'ultima domanda?

Raffaele53 03-04-2010 11:27

>>>l'ultima domanda?
Era di wittelsbach "se quest'ultima è occupata da un qualsiasi codice "

Sub Test1() ------------Capito
Range("A1").Copy -------non capisco (forse copy significa selezione) ma "A1" significa parti da cella A1????
ActiveSheet.Paste Destination:=Range("A65536")----credo riferito al foglio
.End(xlUp).Offset(5, 0)------spostati giù 5 righe colonne o


Sai suggerirmi in link italiano terra terra per imparare?

zuper 03-04-2010 11:43

Quote:

Originariamente inviato da Raffaele53 (Messaggio 31492593)
>>>l'ultima domanda?
Era di wittelsbach "se quest'ultima è occupata da un qualsiasi codice "

Sub Test1() ------------Capito
Range("A1").Copy -------non capisco (forse copy significa selezione) ma "A1" significa parti da cella A1????
ActiveSheet.Paste Destination:=Range("A65536")----credo riferito al foglio
.End(xlUp).Offset(5, 0)------spostati giù 5 righe colonne o


Sai suggerirmi in link italiano terra terra per imparare?

allora, la domanda di wittelsbach non ha molto senso dato che il codice di ses4 fa già quello che lui chiede, è per questo che gli ho chiesto se l'ha provata...



Sub Test1() <--- beh qui definisci solo il tipo, sub, e il nome Test1
Range("A1").Copy <--- il range è l'intervallo di celle che devi prendere in considerazione per fare l'azione che poi definisci dopo il . in questo caso appunto gli stai dicendo di COPIARE tutto l'intervallo definito tra le virgolette, in questo caso A1
ActiveSheet.Paste Destination:= <---questo in pratica gli sta dicendo di COPIARE nella destinazione che gli vai a specificare dopo l'=
Range("A65536") <--- qui gli dici di andare a posizionarsi sull'ultima riga della cella A (ultima riga di office < 2007 dato che nel 2007 sono + di 1 milione :))
.End(xlUp) <---qui c'è la famosa parte che nn è stata considerata...ma è la parte fondamentale, in pratica è come quando schiacci CTRL+le freccine di direzione, lui ti porta nell'ULTIMA cella occupata, in questo caso UP ovvero verso l'alto, per cui già questo ti dice che parte l'offset successivo SOLO dopo che ha verificato qual è l'ultima cella piena di un qualsiasi carattere :)
.Offset(5, 0) <--- beh questo ok, si sposta di un tot di righe/colonne specificate (numerodirighe, numero di colonne) numeri sia positivi che negativi
End Sub

zuper 03-04-2010 11:48

Quote:

Originariamente inviato da Raffaele53 (Messaggio 31492593)


Sai suggerirmi in link italiano terra terra per imparare?

sorry nn ne conosco molti, ma dai un occhio a questo, mi pare carino

http://excelvba.altervista.org/Corso/Indice.html

Raffaele53 03-04-2010 12:44

Provato e funziona.........., quasi.

Come detto "A1" era riferito alla cella, rileggo il tutto tolgo "A1" e inserisco "Selection.Copy"

Sub prova()
Selection.Copy
ActiveSheet.Paste Destination:=Range("A65536").End(xlUp).Offset(5, 0)
End Sub

Adesso seleziono solo C1 e lo scrive in A6 ???
Allora per dirgli di copiare la cella C1 (oppure la selezione) in C6 ???

Certo è facile dopo le spiegazioni
Grazie e buona Pasqua

Ps, Forse basterebbe fargli apparire un popup dove può inserire il valore "C" collegato a 65536
PPs. Forse l'errore e questo oppure se non funziona ancora. Penso sia dovuto al milione di righe di Excel 2007, ma non credo (al massimo lo farà solo nelle prime righe A65536

zuper 03-04-2010 13:00

Quote:

Originariamente inviato da Raffaele53 (Messaggio 31493581)
Provato e funziona.........., quasi.

Come detto "A1" era riferito alla cella, rileggo il tutto tolgo "A1" e inserisco "Selection.Copy"

Sub prova()
Selection.Copy
ActiveSheet.Paste Destination:=Range("A65536").End(xlUp).Offset(5, 0)
End Sub

Adesso seleziono solo C1 e lo scrive in A6 ???
Allora per dirgli di copiare la cella C1 (oppure la selezione) in C6 ???

Certo è facile dopo le spiegazioni
Grazie e buona Pasqua

Ps. Forse l'errore e questo oppure se non funziona ancora. Penso sia dovuto al milione di righe di Excel 2007, ma non credo (al massimo lo farà solo nelle prime righe A65536

tu in questo caso stai copiando correttamente la selezione overo C1,
ma poi gli dici di spostarsi in A65536 quindi sulla COLONNA A ;)

quindi se vuoi copiare in C6 hai 2 strade, quella di settare manualmente il range di destinazione in C65536 oppure, meglio, lasciando la selezione in automatico in base alla cella di SELECTION.

ovvero:


Sub Test1()
Selection.Copy
ActiveSheet.Paste Destination:=Range("A65536").Offset(0, (ActiveCell.Column - 1)).End(xlUp).Offset(5, 0)
End Sub

dove con activecell.column gli fai calcolare in automatico il NUMERO della colonna dove ti trovi, a cui chiaramente devi sottrarre 1 perchè appunto già parti da 1, la colonna a :)


Tutti gli orari sono GMT +1. Ora sono le: 16:13.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.