Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

CREAZIONE LISTA IN EXCEL

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

CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 17/08/08 14:29

Allora, io ho nello stesso file di excel 2 fogli di lavoro, ognuno dei quali contiene una lista di titoli che appartengono a due categorie diverse.

Io vorrei, creando un terzo foglio di lavoro, fare una lista unica che possa contenere le due liste precedenti e che tale lista si aggiorni automaticamente ogni volta che modifico ognuna delle 2 liste iniziali.

Avete qualche suggerimento??

grazie ;) ;)
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Sponsor
 

Re: CREAZIONE LISTA IN EXCEL

Postdi Anthony47 » 17/08/08 18:15

Ciao gigi4181,
io farei quello che chiedi con una macro su evento "Worksheet_Activate", sull' attivazione del 3° foglio; la macro deve fare:
-cancellare tutto il foglio corrente
-copiare la used_range di Foglio1 e incollare su Foglio3-A1;
-copiare la used_range di Foglio2 e incollare su Foglio3 in coda ai primi dati.
-that's all

Se invece del suggerimento ti serve qualcosa di piu', allora fatti sentire; magari cerca di essere quanto piu' preciso circa l' organizzazione dei dati attuali, e se contengono solo "valori" o anche "formule"; nel secondo caso, se vuoi copiare i valori o valori + formule.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 18/08/08 13:23

ce l'ho fatta!

ho creato una macro come mi hai consigliato, un po diversa dalla tua, ed ora funziona perfettamente.

grazie :)
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 27/08/08 19:49

E' nato un problema:

non riesco a mettere una lista sotto l'altra per fare la formattazione automatica....

mi spiego:
per fare la formattazione automatica e quindi ordinare in modo crescente, devo riuscire a mettere le prime 2 colonne (prese dall'inizio fino all'"infinito") della prima pagina sotto alle prime 2 della seconda pagina.
Finora le 2 colonne della seconda pagina distavano un pò di righe dalle 2 colonne della prima pagina
e facendo la formattazione si ordinava come volevo io solo la parte sopra mentre quella sottostante rimaneva invariata.

forse la macro non è la cosa giusta da fare, giusto?

Avete consigli? :cry: :cry: :cry:
grazie
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi Anthony47 » 28/08/08 01:40

gigi4181 ha scritto:Avete consigli?

Il consiglio che posso dare e' di postare il codice che usi, magari da li' riusciamo a capire come sono organizzati i tuoi dati e dare ..ulteriori consigli.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 28/08/08 11:35

forse è questa, ma non ne sono sicuro....fammi sapere
ECCOLA:

Sub ORDINE()
'
' ORDINE Macro
' Macro registrata il 18/08/2008 da ..
'
' Scelta rapida da tastiera: CTRL+o
'
Sheets("ordine alfabetico").Select
Cells.Select
Range("D23").Activate
Selection.ClearContents
Sheets("Foglio1").Select
Cells.Select
Range("B25").Activate
Selection.ClearContents
Range("B27").Select
Sheets("Divx").Select
Columns("A:C").Select
Selection.Copy
Sheets("Foglio1").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("DVD").Select
Columns("A:B").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Foglio1").Select
Range("D1").Select
ActiveSheet.Paste
Range("D2:E135").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=33
ActiveWindow.ScrollRow = 35
ActiveWindow.ScrollRow = 36
ActiveWindow.ScrollRow = 38
ActiveWindow.ScrollRow = 40
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 44
ActiveWindow.ScrollRow = 47
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 51
ActiveWindow.ScrollRow = 53
ActiveWindow.ScrollRow = 54
ActiveWindow.ScrollRow = 56
ActiveWindow.ScrollRow = 57
ActiveWindow.ScrollRow = 58
ActiveWindow.ScrollRow = 59
ActiveWindow.ScrollRow = 61
ActiveWindow.ScrollRow = 63
ActiveWindow.ScrollRow = 65
ActiveWindow.ScrollRow = 67
ActiveWindow.ScrollRow = 70
ActiveWindow.ScrollRow = 71
ActiveWindow.ScrollRow = 73
ActiveWindow.ScrollRow = 74
ActiveWindow.ScrollRow = 75
ActiveWindow.ScrollRow = 77
ActiveWindow.ScrollRow = 78
ActiveWindow.ScrollRow = 79
ActiveWindow.ScrollRow = 82
ActiveWindow.ScrollRow = 84
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 89
ActiveWindow.ScrollRow = 92
ActiveWindow.ScrollRow = 93
ActiveWindow.ScrollRow = 96
ActiveWindow.ScrollRow = 99
ActiveWindow.ScrollRow = 101
ActiveWindow.ScrollRow = 104
ActiveWindow.ScrollRow = 106
ActiveWindow.ScrollRow = 109
ActiveWindow.ScrollRow = 112
ActiveWindow.ScrollRow = 115
ActiveWindow.ScrollRow = 117
ActiveWindow.ScrollRow = 120
ActiveWindow.ScrollRow = 122
ActiveWindow.ScrollRow = 124
ActiveWindow.ScrollRow = 125
ActiveWindow.ScrollRow = 127
ActiveWindow.ScrollRow = 128
ActiveWindow.ScrollRow = 129
ActiveWindow.ScrollRow = 131
ActiveWindow.ScrollRow = 132
ActiveWindow.ScrollRow = 134
ActiveWindow.ScrollRow = 136
ActiveWindow.ScrollRow = 137
ActiveWindow.ScrollRow = 140
ActiveWindow.ScrollRow = 143
ActiveWindow.ScrollRow = 146
ActiveWindow.ScrollRow = 148
ActiveWindow.ScrollRow = 149
ActiveWindow.ScrollRow = 150
ActiveWindow.ScrollRow = 151
ActiveWindow.ScrollRow = 152
ActiveWindow.ScrollRow = 155
ActiveWindow.ScrollRow = 156
ActiveWindow.ScrollRow = 160
ActiveWindow.ScrollRow = 162
ActiveWindow.ScrollRow = 165
ActiveWindow.ScrollRow = 167
ActiveWindow.ScrollRow = 169
ActiveWindow.ScrollRow = 172
ActiveWindow.ScrollRow = 175
ActiveWindow.ScrollRow = 176
ActiveWindow.ScrollRow = 178
ActiveWindow.ScrollRow = 180
ActiveWindow.ScrollRow = 183
ActiveWindow.ScrollRow = 185
ActiveWindow.ScrollRow = 187
ActiveWindow.ScrollRow = 190
ActiveWindow.ScrollRow = 193
ActiveWindow.ScrollRow = 196
ActiveWindow.ScrollRow = 198
ActiveWindow.ScrollRow = 201
ActiveWindow.ScrollRow = 205
ActiveWindow.ScrollRow = 207
ActiveWindow.ScrollRow = 210
ActiveWindow.ScrollRow = 212
ActiveWindow.ScrollRow = 216
ActiveWindow.ScrollRow = 218
ActiveWindow.ScrollRow = 221
ActiveWindow.ScrollRow = 222
ActiveWindow.ScrollRow = 223
ActiveWindow.ScrollRow = 224
ActiveWindow.ScrollRow = 225
ActiveWindow.ScrollRow = 224
ActiveWindow.ScrollRow = 221
ActiveWindow.ScrollRow = 218
ActiveWindow.ScrollRow = 216
ActiveWindow.ScrollRow = 214
ActiveWindow.ScrollRow = 211
ActiveWindow.ScrollRow = 209
ActiveWindow.ScrollRow = 207
ActiveWindow.ScrollRow = 206
ActiveWindow.ScrollRow = 205
ActiveWindow.ScrollRow = 203
ActiveWindow.ScrollRow = 202
ActiveWindow.ScrollRow = 200
ActiveWindow.ScrollRow = 199
ActiveWindow.ScrollRow = 198
ActiveWindow.ScrollRow = 197
ActiveWindow.ScrollRow = 196
Range("A206").Select
ActiveSheet.Paste
ActiveWindow.ScrollRow = 195
ActiveWindow.ScrollRow = 193
ActiveWindow.ScrollRow = 188
ActiveWindow.ScrollRow = 180
ActiveWindow.ScrollRow = 170
ActiveWindow.ScrollRow = 159
ActiveWindow.ScrollRow = 150
ActiveWindow.ScrollRow = 142
ActiveWindow.ScrollRow = 133
ActiveWindow.ScrollRow = 125
ActiveWindow.ScrollRow = 117
ActiveWindow.ScrollRow = 106
ActiveWindow.ScrollRow = 97
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 78
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 62
ActiveWindow.ScrollRow = 54
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 41
ActiveWindow.ScrollRow = 35
ActiveWindow.ScrollRow = 29
ActiveWindow.ScrollRow = 24
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Columns("A:C").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("ordine alfabetico").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.AutoFilter
Range("A1:C240").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi Anthony47 » 28/08/08 15:09

Ciao gigi, ti ringrazio tanto per aver pubblicato la tua macro.
Ovviamente se non sai se e' quella che usi nel processo non posso fare grandi ragionamenti.
Penso che non sia quella giusta perche' nel tuo primo post scrivevi
" Allora, io ho nello stesso file di excel 2 fogli di lavoro, ognuno dei quali contiene una lista di titoli che appartengono a due categorie diverse.
Io vorrei, creando un terzo foglio di lavoro, fare una lista unica che possa contenere le due liste precedenti e che tale lista si aggiorni automaticamente ogni volta che modifico ognuna delle 2 liste iniziali"
Nella tua macro sono invece coinvolti 4 fogli.

Ovviamente potrei fare il reverse engineering del codice, le istruzioni significative sono 20-25, e fare un paio di ipotesi da sottoporti; preferisco invece tornare al primo messaggio:
"Se invece del suggerimento ti serve qualcosa di piu', allora fatti sentire; magari cerca di essere quanto piu' preciso circa l' organizzazione dei dati attuali, e se contengono solo "valori" o anche "formule"; nel secondo caso, se vuoi copiare i valori o valori + formule"

Ciao, grazie ancora.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 28/08/08 18:27

ok
sul primo foglio ho tre colonne di cui una che contiene titoli di divx e le altre 2 che contengono il numero di ogni titolo.
sul secondo foglio ho due colonne: una contiene titoli di dvd e l'altra contiene la scritta dvd

io volevo con il terzo foglio mettere la lista dei divx insieme a quella dei dvd in modo da poterli ordinare in un'unica lista in base al titolo o al numero (quindi voglio che ogni riga rimanga invariata e che invece venga variata la disposizione di tali righe).
così con una semplice macro potevo avere la lista unica aggiornata, subitissimo dopo aver aggiornato la lista dei dvd o quella dei divx

nel caso in cui questo non fosse possibile stavo pensando: se copio la lista dei dvd sotto a quella dei divx e poi con la formattazione automatica li ordino in maniera cresente ho la mia lista e questa operazione la faccio solo un'unica volta; quindi al posto di aggiornare la lista del primo o del secondo foglio aggiorno diretttamente quella unica....
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi Tribuno » 28/08/08 22:43

Se non hai necessità di avere due liste separate, puoi benissimo tenere solo un foglio per dvd e divx, per ordinarle in ordine alfabetico basta posizionarsi su una cella della colonna dove hai inserito i titoli (o il tipo di ordinamento che vuoi fare) poi Dati--->Ordina, se vuoi vedere solo i dvd o solo i divx, puoi usare il filtro automatico (Dati--->Filtro---Filtro Automatica) dopo esserti posizionato sulla prima riga (dove immagino hai le intestazioni di colonna).

Se invece vuoi utilizzare le macro dovresti prima contare quante righe ci sono del foglio dvd, poi copi la selezione nel tuo foglio ordinamento, fai la stessa cosa con il foglio divx, sapendo le righe di dvd ti posizioni una riga sotto e copi i divx.
Per contare le righe puoi usare
RigDvd=Range("A65356").End(xlUp).Row
RigDivx=Range("A65356").End(xlUp).Row

per selezionare il range da copiare
Sheets("Dvd").Range("A1:B" & RigDvd)
Sheets("Divx").Range("A1:C" & RigDvd)
(il segno strano è la E commerciale) presupponendo di copiare i dati dalla riga 1, altrimenti devi scrivere A2 anziché A1

nel foglio ordinamento, dopo aver copiato il range dvd, selezioni la cella, in A, RigDvd+1 e copi la selezione divx.
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 01/09/08 09:43

Ti ringrazio per la risposta, solo che non sono così tecnico...non so neanche dove scriverle quelle stringhe :undecided:

se puoi dirmi i passaggi da fare, altrimenti non sono capace...

grazie ancora
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 01/09/08 18:41

per contare le righe ho usato questa formula:

=CONTA.VALORI(B:B)

però, adesso che conosco il numero di righe occupate, non so come selezionare il range... :?: :?:

e poi neanche come copiare questo range :?: :?: :?:
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi Tribuno » 01/09/08 18:54

Per capire bene:
hai un primo foglio, Divx, i dati occupano le colonne A-B-C, sulla prima riga ci sono le intestazioni della tabella;
il secondo foglio, Dvd, i dati occupano le colonne A-B, sulla prima riga ci sono le intestazioni della tabella
il terzo foglio deve contenere tutti i dati delle colonne A-B-C foglio Divx a partire dalla riga 2 e tutti i dati del foglio Dvd, colonne A-B, a partire dalla riga 2, sotto i dati Divx e poi ordinarli.

Ho bisogno di sapere: i dati della colonna A sono della medesima tipologia, ma quelli della colonna B? L'ordinamento (automatico ogni volta che aggiorni una delle due liste, deve essere fatto in ordine crescente relativamente a quale colonna?

Ciao
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 01/09/08 19:21

tutto corretto...allora,

nella colonna A del primo foglio ho messo il numero del cd; nella medesima del secondo foglio c'e solamente la scritta DVD di modo che attraverso la formattazione automatica per ordine crescente di titolo, sulla colonna di sinistra io ho o il numero del cd o la scritta DVD (questo l'ho fatto per sapere se è un dvd e se non lo è, so dove andare a cercarlo);

nella colonna B sia del primo che del secondo foglio ci sono i titoli rispettivamente dei divx e dei dvd;

nella colonna C che c'è solo nel primo foglio (ad dir la verità un po superflua) c'è il numero del film

penso di averti risposto al 100%.....se vuoi sapere altro chiedi pure.
grazie
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi Tribuno » 01/09/08 20:51

Prova questa macro (prima fai una copia dei tuoi dati, per evitare problemi) e fammi sapere:

Codice: Seleziona tutto
Dim RDvix, RDvd As Integer

Sub Ordina_Divx_Dvd()
Application.ScreenUpdating = False

'copia dati foglio Divx
Sheets(1).Select
Rdivx = Range("A65356").End(xlUp).Row
Range(Cells(2, 1), Cells(Rdivx, 3)).Select
Selection.Copy
Cells(Rdivx, 1).Select

'copia dati Divx in foglio Ordinamento
Sheets(3).Select
Range("A2").Select
ActiveSheet.Paste

'copia dati foglio Dvd
Sheets(2).Select
RDvd = Range("A65356").End(xlUp).Row
Range(Cells(2, 1), Cells(RDvd, 3)).Select
Selection.Copy
Cells(RDvd, 1).Select

'copia dati Dvd in foglio Ordinamento dopi dati Divx
Sheets(3).Select
Cells(Rdivx + 1, 1).Select
ActiveSheet.Paste
Range("B2").Select

'ordinamento
Range(Cells(1, 1), Cells(Rdivx + RDvd, 3)).Sort Key1:=Range("B2"), Order1:=xlAscending
Range("A1").Select

Application.ScreenUpdating = True
End Sub


Ciao
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 02/09/08 12:37

grandissimo :idea: , era proprio quello che volevo :!: :!:

ora è tutto in ordine perfetto...dopo aver capito dove inserire le stringhe che hai scritto ne ho aggiunte alcune.

Codice: Seleziona tutto
Sub ORDINE()
'
' ORDINE Macro
' Macro registrata il 18/08/2008 da ..
'
' Scelta rapida da tastiera: CTRL+o
'
Dim RDvix, RDvd As Integer

Application.ScreenUpdating = False

'eliminazione dati precedenti foglio ordine
Sheets(3).Select
Range("A1:C245").Select
Selection.ClearContents
Range("A1").Select
   
'copia dati foglio Divx
Sheets(1).Select
Rdivx = Range("A65356").End(xlUp).Row
Range(Cells(1, 1), Cells(Rdivx, 3)).Select
Selection.Copy
Cells(Rdivx, 1).Select

'copia dati Divx in foglio Ordinamento
Sheets(3).Select
Range("A1").Select
ActiveSheet.Paste

'copia dati foglio Dvd
Sheets(2).Select
RDvd = Range("A65356").End(xlUp).Row
Range(Cells(2, 1), Cells(RDvd, 3)).Select
Selection.Copy
Cells(RDvd, 1).Select

'copia dati Dvd in foglio Ordinamento dopi dati Divx
Sheets(3).Select
Cells(Rdivx + 1, 1).Select
ActiveSheet.Paste
Range("B2").Select

'ordinamento
Columns("A:C").Select
    Selection.AutoFilter
    Range("A1:C845").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("A1").Select


Application.ScreenUpdating = True
End Sub

[*][*]


grazie mille :D
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi Tribuno » 02/09/08 20:50

Se vuoi attivare in automatico copia-incolla-ordina ogni volta che selezioni il 3° foglio dei dati complessivi Dvd e Divx copia il seguente codice in Foglio3 di VBA

Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Application.EnableEvents = False
Call Ordina_Divx_Dvd(Contr)
Application.EnableEvents = True
End Sub


Ciao
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: CREAZIONE LISTA IN EXCEL

Postdi Tribuno » 02/09/08 21:10

Ho notato che hai aggiunto questo codice
Codice: Seleziona tutto
'eliminazione dati precedenti foglio ordine
Sheets(3).Select
Range("A1:C245").Select
Selection.ClearContents
Range("A1").Select

oltre ad aver modificato le celle di partenza da A2 ad A1 (io ero partito da A2 in quanto immaginavo che nella prima riga avevi le intestazioni di colonna) ed aver modificato l'ordinamento con

Codice: Seleziona tutto
'ordinamento
Columns("A:C").Select
    Selection.AutoFilter
    Range("A1:C845").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("A1").Select

l'ordinamento che ti avevo postato.

Siccome le righe del Foglio 3 sono sempre variabili, perché dipendenti dalle righe dei primi due fogli, corri il rischio che nella cancellazione (Range "A1:C245) o nell'ordinamento (Range "A1:C845"), tutto quello che ci potrebbe essere dalla riga 245 (cancella) o 846 (ordina) in poi non ti verrà mai cancellato/ordinato.

Io farei così:
- aggiungerei la variabile RTot in Dim
- nelle istruzioni dell'eliminazione dei dati precedenti in foglio ordine andrei a verificare, dopo Sheets(3).Select, di quante righe è composto (RTot = Range("A65356").End(XlUp).Row) e modificherei la selezione Range("A1:C245").Select con Range (Cells(1,1), Cells(RTot,3)).Select
- nell'ordinamento al posto di Range("A1:C845") lascierei Range(Cells(1, 1), Cells(Rdivx + RDvd, 3))

Ciao
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 03/09/08 08:57

oltre ad aver modificato le celle di partenza da A2 ad A1 (io ero partito da A2 in quanto immaginavo che nella prima riga avevi le intestazioni di colonna)

in questo modo ho voluto mantenere le intestazione del primo foglio anche per il 3°foglio

Siccome le righe del Foglio 3 sono sempre variabili, perché dipendenti dalle righe dei primi due fogli, corri il rischio che nella cancellazione (Range "A1:C245) o nell'ordinamento (Range "A1:C845"), tutto quello che ci potrebbe essere dalla riga 245 (cancella) o 846 (ordina) in poi non ti verrà mai cancellato/ordinato.

me ne ero già accorto e per questo al posto di C245 ho messo C845: però queste istruzioni che hai scritto sotto sembra che funzionino senza limitazioni di celle, quindi sono migliori.

- aggiungerei la variabile RTot in Dim

Cosa significano nel linguaggio la R davanti a Tot o davanti ad altri del genere? e Dim cos'è?

nell'ordinamento al posto di Range("A1:C845") lascierei Range(Cells(1, 1), Cells(Rdivx + RDvd, 3))

eco io ho messo questo come mi hai consigliato ma non funziona
Codice: Seleziona tutto
'ordinamento
Columns("A:C").Select
    Selection.AutoFilter
    Range(Cells(1, 1), Cells(Rdivx + RDvd, 3).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range("A1").Select
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06

Re: CREAZIONE LISTA IN EXCEL

Postdi Tribuno » 03/09/08 20:49

Dim, all'inizio della macro Sub Ordina_Divx_Dvd(), se tu l'hai conservata, serve per dichiarare le variabili, in questo caso RDvix e RDvd. Poi ho suggerito di utilizzare anche RTot. I nomi delle variabli sono di fantasia, è opportuno utilizzare dei nomi che ti ricordano a cosa servono. Io ho messo la lettera R davanti a Dvix, Dvd e Tot come abbreviazione di Riga, quindi RTot l'ho ustata per ricordarmi Righe Totali del foglio Ordinamento.


eco io ho messo questo come mi hai consigliato ma non funziona

Codice: Seleziona tutto
'ordinamento
Columns("A:C").Select
Selection.AutoFilter
Range(Cells(1, 1), Cells(Rdivx + RDvd, 3).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select

Attenzione, nella parte in grassetto manca una parentesi di chiusura prima di .Sort, corretta è
Range(Cells(1, 1), Cells(Rdivx + RDvd, 3)).Sort

Se nel terzo foglio vuoi utilizzare il filtro automatico, nell'ordinamento, selezionando le colonne A:C, cancelli il filtro. Se non ti interessa, ok, altrimenti ti conviene utilizzare il mio primo ordinamento.

P.S. se volevi avere nel 3° foglio le stesse intestazioni di colonna del foglio Divx, era sufficiente che le scrivevi una sola volta con il classico copia-incolla e fare tutte le operazioni macro di copia-incolla-cancella-ordina partendo in tutti i fogli da riga 2. Attenzione, non cambia niente nella funzionalità, è solo un mio modo di vedere.

Ciao e a presto
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: CREAZIONE LISTA IN EXCEL

Postdi gigi4181 » 04/09/08 09:14

grazie della pazienza....

bye
:) :)
gigi4181
Utente Junior
 
Post: 56
Iscritto il: 28/02/06 12:06


Torna a Applicazioni Office Windows


Topic correlati a "CREAZIONE LISTA IN EXCEL":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti

cron