Condividi:        

ordina nomi

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

ordina nomi

Postdi trittico69 » 05/03/12 13:38

Ciao a tutti
Chi mi aiuta a fare un istruzione che tagli i nominativi, senza le righe,in un foglio di excel 2003 che si chiama “stampa movimenti” da G3 a I?(il punto esclamativo sta per all’ultima cella piena) e incolli in A3 spostando i nominativi, eventualmente presenti, da A3 a D? in basso per il numero di celle uguali a quelle da incollare, però la colonna “I” e “J” va incollata sotto le colonne “E” ed “F”.
poi ordinare in ordine alfabetico da A3 fino ad E?.
Allego un esempio e nel foglio stampa movimenti come dovrebbe essere dopo il funzionamento del codice e nel foglio 2 prima.
Grazie!

http://uploading.com/files/3bm57b92/Cartel1.xls/
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Sponsor
 

Re: ordina nomi

Postdi Anthony47 » 05/03/12 15:17

Prova
Codice: Seleziona tutto
Sub pippo()
NRighe = Cells(Rows.Count, 7).End(xlUp).Row - 2
If NRighe > 0 Then
    Range("A3").Resize(NRighe, 6).Insert shift:=xlDown
    Range("G3").Resize(NRighe, 2).Copy Destination:=Range("A3")
    Range("I3").Resize(NRighe, 2).Copy Destination:=Range("E3")
    Range("G3").Resize(NRighe, 4).Clear
End If
End Sub

Devi aggiungere le istruzioni per ordinare le colonne che ti servono, ma queste istruzioni le puoi ottenere con una macro autoregistrata.

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

Re: ordina nomi

Postdi trittico69 » 05/03/12 18:33

ma se io faccio una macro preregistrata mi considera sempre lo stesso numero di celle da ordinare...forse mi sono spiegato male con il "?"
prova a rileggere la mia richiesta di nuovo facendo attenzione al significato del "?"
e anche nel codice che mi hai fatto hai tenuto presente sempre del "?"
se mi scriveresti a fianco a ogni riga il significato forse potrei spiegarmi meglio..
grazie!
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: ordina nomi

Postdi Anthony47 » 05/03/12 23:42

Avevo gia' letto con attenzione e capito il concetto di "?"...
Quando fai un ordinamento saranno ordinate solo le celle che contengono dei valori; quindi puoi selezionare A2:G10000 (avrai sempre meno di 10mila righe, vero?) e l' ordinamento ti funzionera' anche solo su 20 righe compilate.
I commenti alla macro sono veloci:
-la prima riga calcola quante righe sono da gestire
-dopo la If:
--si creano le N righe
--si copiano le colonne G:H in A:B
--si copiano le colonne I:J in E:F
--si cancellano i dati in G:J

Molto piu' utile, a uso didattico, e' invece eseguire la macro in passo passo e verificare sul foglio di lavoro che cosa ogni riga fa; i fondamentali sono descritti in questa discussione: viewtopic.php?t=65537

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

Re: ordina nomi

Postdi trittico69 » 06/03/12 13:12

per quantoriguarda l'ordinamento mi deve ordinare solo fino all'ultima cella piena della colonna F e cioè se guardi l'esempio nel foglio stampa movimenti in questo caso mi deve ordinare da A3:F10 e non anche i righi di sotto
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: ordina nomi

Postdi Anthony47 » 07/03/12 00:28

Cerchiamo di sincronizzarci...
All' inizio i dati sono questi
Immagine

Uploaded with ImageShack.us

Si portano le 4 righe da col G:J a col A:B e E:F, dopo aver fatto spazio in A3:F6, e i dati diventano questi altri:
Immagine

A questo punto quali dati vanno ordinati?
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: ordina nomi

Postdi trittico69 » 07/03/12 08:34

scusami hai ragino in questo caso è A3:F6 ultima cella piena della colonna F
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41

Re: ordina nomi

Postdi Anthony47 » 07/03/12 22:58

Questa versione include anche l' ordinamento:
Codice: Seleziona tutto
Sub pippoV2()
NRighe = Cells(Rows.Count, 7).End(xlUp).Row - 2
If NRighe > 0 Then
    Range("A3").Resize(NRighe, 6).Insert shift:=xlDown
    Range("G3").Resize(NRighe, 2).Copy Destination:=Range("A3")
    Range("I3").Resize(NRighe, 2).Copy Destination:=Range("E3")
    Range("G3").Resize(NRighe, 4).Clear
    LSort = Cells(Rows.Count, 6).End(xlUp).Row - 1  '***
    'If (Cells(2, 6).End(xlDown).Row - 1) < 10000 Then  '+++
    ' LSort = (Cells(2, 6).End(xlDown).Row - 1)         '+++
    ' Else: LSort = 1                                   '+++
    'End If                                             '+++
    Range("A2").Resize(LSort, 6).Select
    Range("A2").Resize(LSort, 6).Sort Key1:=Range("B3"), Order1:=xlAscending, Key2:=Range("A3") _
            , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
            :=xlSortNormal
End If
End Sub
La riga marcata *** e' alternativa alle quattro linee marcate +++, e determina la modalita' di identificazione dell' ultima riga da ordinare: come e' adesso viene cercata "dal basso" l' ultima cella di col F occupata; togliendo la riga *** e abilitando le righe +++ invece si cerca "dall' alto" la prima cella libera. Ad esempio, rispetto alla seconda immagine del messaggio precedente, se fosse occupata la cella F10 la prima istruzione (***) ordina A3:F10, le seconda (+++) ordinerebbe A3:F6.

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

Re: ordina nomi

Postdi trittico69 » 08/03/12 18:47

ok grazie funziona
trittico69
Utente Senior
 
Post: 497
Iscritto il: 16/08/09 18:41


Torna a Applicazioni Office Windows


Topic correlati a "ordina nomi":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti