Condividi:        

EXCEL - Percorso di celle

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

EXCEL - Percorso di celle

Postdi crayonner » 02/07/11 15:33

Buongiorno a tutti, avrei un problema su un foglio di excel 2007, conosco poco i fogli di calcolo :undecided: , e
spero possiate aiutarmi a risolverlo.

Su un foglio di lavoro ho un "percorso" di celle che contengono testo e numeri fissi
il percorso e' il seguente:

ab7:ab24, prosegue, aa26:j26, prosegue, aa25:j25, prosegue, i24:i7, prosegue, j6:aa6

Avrei bisogno di comandare con un pulsante o una casella di selezione il contenuto di queste celle
in modo che ad ogni click il contenuto di ogni cella si sposti nella cella successiva del percorso.

per esempio al primo click il contenuto della prima cella (ab7) si spostera' nella seconda cella (ab8),
cosi' per tutte le altre celle fino all'ultima (aa6) il cui contenuto passera' nella prima cella (ab7), con
la possibilita' di tornare indietro o quantomeno di potermi ritrovare nella condizione di partenza dopo
un numero di click adeguato per ricominciare il giro.

Grazie per l'aiuto che potrete darmi
crayonner
Newbie
 
Post: 4
Iscritto il: 02/07/11 09:04

Sponsor
 

Re: EXCEL - Percorso di celle

Postdi Anthony47 » 02/07/11 23:51

Ciao crayonner, benvenuto nel forum.
Puoi farlo con una macro autoregistrata:
-Avvia il registratore delle macro, poi esegui diligentemente le operazioni di shift, copiando prima in celle di servizio i singoli numeri alla fine dei vari blocchi, poi copiando a blocchi di 17 numeri nelle celle alla destra (nelle sequenze tipo j6:aa6), o sottostanti (nelle sequenze tipo ab7:ab24), o a sinistra (nelle sequenze tipo aa26:j26) o soprastanti (nelle sequenze tipo i24:i7); infine copi all' inizio del blocco "successivo" i valori salvati nelle celle di servizio.
Interrompi la registrazione.
Poi disegni una forma (Menu /Inserisci /Forma), tasto dx, scegli Assegna macro, seleziona la macro appena registrata dall' elenco che ti propone, Ok.

Se hai problemi posta ancora precisando in quale fase ti sei arenato.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: EXCEL - Percorso di celle

Postdi crayonner » 05/07/11 08:51

Grazie Anthony47 per la risposta velocissima, purtroppo il risultato che ottengo non e'
quello sperato nel senso che ad ogni click sul pulsante i numeri e le lettere, gia'
presenti sul percorso, fanno un giro velocissimo e si riposizionano come alla partenza.
Forse interpreto male la tua spiegazione, ma ho fatto piu' prove e il risultato e' sempre lo
stesso, o forse mi sono spiegato male io dall'inizio, quindi cerchero' di spiegarmi meglio.

Dunque, ho questo percorso di celle:
Inizio ab7:ab24, prosegue, aa26:j26, prosegue, aa25:j25, prosegue, i24:i7, prosegue, j6:aa6
e ricomincia, in questo percorso sono gia' presenti numeri e lettere, io vorrei comandare il contenuto
di queste celle in modo che ad ogni click di un pulsante o forma il contenuto di una cella prendesse
il posto della cella successiva, meglio se ci fosse la possibilita' di far scorrere avanti/indietro.

Una cosa che non ti ho detto nel primo post e' che nelle vicinanze del percorso non ho
spazio per inserire nulla quindi eventuali celle di servizio dovrebbero essere distanti
dal percorso e' lo stesso?

Grazie per l'aiuto e la pazienza
crayonner
Newbie
 
Post: 4
Iscritto il: 02/07/11 09:04

Re: EXCEL - Percorso di celle

Postdi Avatar3 » 05/07/11 16:26

Invia il file con le note direttamente nel foglio
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: EXCEL - Percorso di celle

Postdi Lucio Peruggini » 05/07/11 18:45

Ciao Avatar, anch'io sarei interessato a quest'argomento da aottare per l'appunto a quanto già conosci riferito all'excel con i blocchi di ricerca; (ultima macro). Seguirò con attenzione l'evolversi dei fatti.
Saluti e buona serata.
Lucio P.
Versione Office - 2013
Lucio Peruggini
Utente Senior
 
Post: 896
Iscritto il: 24/01/11 16:23

Re: EXCEL - Percorso di celle

Postdi Flash30005 » 05/07/11 19:44

Se ho compreso bene occorre una macro così che avvierai con un pulsante di comando

Codice: Seleziona tutto
Sub PercOrario()
St1 = Range("AB24").Value
St2 = Range("J26").Value
St3 = Range("J25").Value
St4 = Range("I7").Value
St5 = Range("AA6").Value
Application.DisplayAlerts = False
   Range("AB7:AB23").Cut Destination:=Range("AB8:AB24")
    Range("K26:AA26").Cut Destination:=Range("J26:Z26")
    Range("K25:AA25").Cut Destination:=Range("J25:Z25")
    Range("I8:I24").Cut Destination:=Range("I7:I23")
    Range("J6:Z6").Cut Destination:=Range("K6:AA6")
    Range("AA26").Value = St1
    Range("AA25").Value = St2
    Range("I24").Value = St3
    Range("J6").Value = St4
    Range("AB7").Value = St5
Application.DisplayAlerts = True
End Sub


Se questa soluzione soddisfa l'esigenza 1
procediamo con realizzare la macro che inverte (esigenza 2)


EDIT:
Nel frattempo ho realizzato il percorso inverso

Codice: Seleziona tutto
Sub PercAntiorario()
St1 = Range("AB7").Value
St2 = Range("J6").Value
St3 = Range("I24").Value
St4 = Range("AA25").Value
St5 = Range("AA26").Value
Application.DisplayAlerts = False
    Range("K6:AA6").Cut Destination:=Range("J6:Z6")
    Range("AB8:AB24").Cut Destination:=Range("AB7:AB23")
    Range("I7:I23").Cut Destination:=Range("I8:I24")
    Range("J25:Z25").Cut Destination:=Range("K25:AA25")
    Range("J26:Z26").Cut Destination:=Range("K26:AA26")

    Range("AA6").Value = St1
    Range("I7").Value = St2
    Range("J25").Value = St3
    Range("J26").Value = St4
    Range("AB24").Value = St5
Application.DisplayAlerts = True
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL - Percorso di celle

Postdi crayonner » 06/07/11 14:47

Grazie Flash30005!!!!! E' proprio lo spostamento che mi serviva, come posso fare per non perdere
la formattazione delle celle e del contenuto durante lo spostamento?
Grazie
crayonner
Newbie
 
Post: 4
Iscritto il: 02/07/11 09:04

Re: EXCEL - Percorso di celle

Postdi Flash30005 » 06/07/11 16:14

cosa significa per non perdere il contenuto delle celle se il valore o stringa si sposta non lo perdi il contenuto ma si spostera di una cella secondo il percorso.

Cosa diversa è invece la formattazione che non avevi menzionato minimamente nell'esposizione del quesito
ma solo di spostare le celle secondo il percorso.

segui il consiglio di Antony e registra una macro che dovrebbe fare ciò che chiedi
seguendo il percorso copi da AB7:AB24 incolli speciale solo valori in AB8:AB25
continui stesso procedimento con J26:AA26 incollando solo valori I26:Z26
fino a finire il percorso poi tagli le celle "uscite" dal percorso (es:AB25 e lo incolli in AA26 etc etc)
fermi la macro e avrai quello che occorre

fai sapere
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: EXCEL - Percorso di celle

Postdi crayonner » 07/07/11 08:47

Veramente intendevo dire che durante lo spostamento del testo nelle celle perdevo il colore delle celle, i bordi ecc. e del contenuto perdevo il colore e il tipo di font.
Comunque hai ragione tu non ti avevo parlato di formattazione perchè pensavo si spostasse tutto senza cambiamenti.
Però grazie alla tua spiegazione piu' semplice della macro di Anthony, sono riuscito finalmente a capire.
Adesso funziona tutto perfettamente.
Ti ringrazio infinitamente. Ciao
crayonner
Newbie
 
Post: 4
Iscritto il: 02/07/11 09:04

Re: EXCEL - Percorso di celle

Postdi Flash30005 » 07/07/11 09:19

Visto che il quesito interessa anche ad altri pubblico la macro che fa ruotare nel percorso in senso orario mantenendo la formattazione originale della cornice
Codice: Seleziona tutto
Sub PercOrarioConFormatt()
    Range("AB7:AB24").Copy
    Range("AB8").Select
    ActiveSheet.PasteSpecial Format:=3
    Range("J26:AA26").Copy
    Range("I26:Z26").Select
    Range("Z26").Activate
    ActiveSheet.PasteSpecial Format:=3
    Range("J25:AA25").Copy
    Range("I25:Z25").Select
    Range("Z25").Activate
    ActiveSheet.PasteSpecial Format:=3
    Range("I7:I24").Copy
    Range("I6:I23").Select
    Range("I23").Activate
    ActiveSheet.PasteSpecial Format:=3
    Range("J6:AA6").Copy
    Range("K6:AB6").Select
    ActiveSheet.PasteSpecial Format:=3
    Range("AB25").Copy
    Range("AA26").PasteSpecial Paste:=xlPasteValues
    Range("AB25").ClearContents
    Range("I26").Copy
    Range("AA25").PasteSpecial Paste:=xlPasteValues
    Range("I26").ClearContents
    Range("I25").Copy
    Range("I24").PasteSpecial Paste:=xlPasteValues
    Range("I25").ClearContents
    Range("I6").Copy
    Range("J6").PasteSpecial Paste:=xlPasteValues
    Range("I6").ClearContents
    Range("AB6").Copy
    Range("AB7").PasteSpecial Paste:=xlPasteValues
    Range("AB6").ClearContents
End Sub


E questa in senso antiorario
Codice: Seleziona tutto
Sub PercAntiOrarioConFormatt()

    Range("AB7:AB24").Select
    Selection.Copy
    Range("AB6").Select
    ActiveSheet.PasteSpecial Format:=3
    Range("J26:AA26").Copy
    Range("K26:AB26").Select
    ActiveSheet.PasteSpecial Format:=3
    Range("J25:AA25").Copy
    Range("K25:AB25").Select
    ActiveSheet.PasteSpecial Format:=3
    Range("I7:I24").Copy
    Range("I8:I25").Select
    ActiveSheet.PasteSpecial Format:=3
    Range("J6:AA6").Copy
    Range("I6:Z6").Select
    ActiveSheet.PasteSpecial Format:=3
    Range("AB6").Copy
    Range("AA6").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Range("AB6").ClearContents
    Range("AB26").Copy
    Range("AB24").PasteSpecial Paste:=xlPasteValues
    Range("AB26").ClearContents
    Range("AB25").Copy
    Range("J26").PasteSpecial Paste:=xlPasteValues
    Range("AB25").ClearContents
    Range("I25").Copy
    Range("J25").PasteSpecial Paste:=xlPasteValues
    Range("I25").ClearContents
    Range("I6").Copy
    Range("I7").PasteSpecial Paste:=xlPasteValues
    Range("I6").ClearContents
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "EXCEL - Percorso di celle":


Chi c’è in linea

Visitano il forum: Ricky0185 e 44 ospiti