Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Problema Ordinamento lista con Macro o senza

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

Problema Ordinamento lista con Macro o senza

Postdi Stegiu » 03/02/15 10:22

Buon giorno a tutto il forum! E' una vita che vi seguo e ho sempre trovato una risposta ai miei problemi apparte questa volta.
Questo mi ha portato a iscrivermi e chiedervi consiglio su un problema che ho su Excel!

Mi spiego. Sto lavorando su un progetto per una mensa. Avrei la necessità di ordinare una lista non in ordine alfabetico ma semplicemente in ordine, vi posto un esempio:

[img]"C:\Users\Stegiu\Desktop\Forum\Immagine.jpg"[/img]

come notiamo c'è uno spazio tra i nomi e io voglio che attraverso una macro o senza questa tabella sia ordinata senza spazi.

I spazi sono dovuti dalle assenza di personale che non mangia. Se è presente il 1° e il 3° comparirà il nome nella prima e nella terza cella la seconda invece resta vuota perchè il suddetto è assente. Ma ho bisogno che si ordinano per poi automaticamente collegare i nomi ai buoni pasto preimpostati.

Ho riscontrato i seguenti problemi provandoci da me.
1) ho creato una macro collegata ad un pulsante con questo codice:

Range("L2:M250").Select
Selection.Sort Key1:=Range("L2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers

nella riga M sono presenti i nomi e nella riga L sono presenti i numeri (abbiamo 200 persone e quindi i numeri vanno fino a 200)
questa stringa funziona in normali celle ma nelle mie celle non funzionano, secondo me perchè ovviamente i nomi vengono copiati attraverso un comando excel quindi va a ordinare le formule (secondo me) come posso risolvere che leggere e ordina solo i valori all'interno della lista senza guardare i codici?

2) ho creato una macro registrandola... ho iniziato la registrazione, selezionata tutta la riga M dopodichè su HOME ho selezionato Ordina Personalizzato e quando mi ha chiesto di espandere la selezione io ho accettato e mi prende tutte le celle dalla A1 alla M200, clicco su ok.. stoppo la registrazione e salvo la macro collegandola sul pulsante. quando clicco funziona perfettamente bene, li ordina tutti ma mi ordina anche i nomi nella riga B ma a me serve solo nella riga M. Come posso fare?

Grazie a tutti per il vostro aiuto
Stegiu
Newbie
 
Post: 4
Iscritto il: 03/02/15 10:06

Sponsor
 

Re: Problema Ordinamento lista con Macro o senza (EXCEL)

Postdi Stegiu » 03/02/15 10:41

P.s. il link non funziona, pensavo funzionasse, ecco il link all immagine:
Immagine
Stegiu
Newbie
 
Post: 4
Iscritto il: 03/02/15 10:06

Re: Problema Ordinamento lista con Macro o senza

Postdi Anthony47 » 03/02/15 13:15

Ciao Stegiu, benvenuto nel forum.
1-credo che i tuoi dati siano abbastanza particolari per essere replicati da chi vorrebbe aiutarti; cerca di pubblicare quindi un file esemplificativo (senza dati riservati); per come fare guarda qui: http://www.pc-facile.com/forum/viewtopi ... 87#p605487

2-sei sicuro che l' ordinamento e' necessario per quello che devi fare dopo? Descrivici la fase successiva, magari troviamo una via diretta...

Ciao, ti aspettiamo
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: Problema Ordinamento lista con Macro o senza

Postdi Stegiu » 03/02/15 13:50

Grazie per la risposta! ho effettuato un esempio ecco il link per il download

http://we.tl/I7QiPeAHrt

Praticamente vi spiego.
nel foglio1 ci sono i nomi di tutti a sinistra. poi vengono suddivisi attraverso VERO FALSO chi mangia e chi no, per pranzo cena e colazione. ora la lista a destra si aggiorna vedendo chi mangia e mette il suo nome se mangia altrimenti lascia la casella vuota.
Il problema sta che nel foglio 2 ho creato una bozza di un buono. Nella voce rilasciato a, deve entrare il nome di quello che mangia. dato che ci sono spazi vuoti ci sono anche buoni vuoti che nella stampa danno fastidio. ecco il problema del perchè voglio ordinare quella liosta. Spero di essere stato chiaro. per qualsiasi problema chiedete. Grazie anticipatamente

P.s. se riusciamo a saltare la parte dell'ordinamento sarebbe spettacolare ma non so come fare!
Stegiu
Newbie
 
Post: 4
Iscritto il: 03/02/15 10:06

Re: Problema Ordinamento lista con Macro o senza

Postdi Anthony47 » 04/02/15 01:18

Secondo quell' approccio non e' il piu' semplice.
Ho lavorato sul tuo file, aggiungendo un foglio "ExFoglio2" che utilizzo per stampare 3 coppie di buoni per pagina, utilizzando i Vero/Falso che ci sono in Foglio1.
Ne trovi una copia qui: https://www.dropbox.com/s/o77gazzvynt0a ... .xlsm?dl=0

Le tre coppie di buoni sono popolate con i dati prelevati dalle righe indicate in K2:K4, che vengono compilate con la macro "stampaBuoni".
Non sono certo di aver inserito sui buoni tutti i campi che ti servono, eventualmente inseriscine degli altri in modo statico sui tre moduli da stampare (mentre i campi variabili dovrei averli gia' riempito con formule che mi sembrano idonee).
Quando vuoi vedere l' effetto esegui la macro: premi Alt-F8, scegli stampaBuoni dall' elenco che ti propone, premi Esegui e controlla l' esito sulle stampe prodotte.
La stampa avviene sulla stampante predefinita.

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: Problema Ordinamento lista con Macro o senza

Postdi Flash30005 » 04/02/15 01:22

Ciao Stegiu benvenuto nel Forum

prova questa macro
Codice: Seleziona tutto
Sub AssiemaB()
Dim Ws1 As Worksheet
Set Ws1 = Sheets("Foglio1")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
Ws1.Range("G2:I" & UR1).ClearContents
For RR1 = 2 To UR1
    For CC1 = 3 To 5
        If UCase(Ws1.Cells(RR1, CC1).Value) = "VERO" Then
            UR2 = Ws1.Cells(Rows.Count, CC1 + 4).End(xlUp).Row + 1
            Ws1.Range("B" & RR1).Copy Destination:=Ws1.Cells(UR2, CC1 + 4)
        End If
    Next CC1
Next RR1
Application.CutCopyMode = False
End Sub


Ciao

Edit: @Stegiu - Leggi il Post di Anthony (qui sopra) inserito mentre realizzavo la macro e inviavo il mio post
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Problema Ordinamento lista con Macro o senza

Postdi Stegiu » 04/02/15 14:31

Grazie anthony e Flash, mi avete aiutato tanto. anthony il tuo funziona ma non riesco a implementarlo nelle mie celle cioè mi confondo e non riesco ad andare avanti. invece ho provato il codice di flash e funziona benissimo ho cambiato i dati da cambiare e funziona, l unica cosa in cui mi devi aiutare flash e che io non riesco a capire perchè, mi ordina i nomi e me li trascriver sempre nelle celle G H I, in realtà quel foglio era un test, nel foglio excel reale i nomi sparsi si trovano dalla cella M2 alla cella U200 quindi il range è M2:U200. mi cambi il codice e mi aggiusta questa parte? Grazie Flash e un altra cosa. Ho notato che quando mi ordina i campi mi cancella il codice nelle celle! c'è un modo per evitare questo? perchè quel codice mi serve per il prossimo giorno per avere di nuovo i nomi da ordinare. Grazie per il vostro aiuto siete mitici.
Stegiu
Newbie
 
Post: 4
Iscritto il: 03/02/15 10:06

Re: Problema Ordinamento lista con Macro o senza

Postdi Flash30005 » 04/02/15 23:08

Se hai la tabella dall'ID a "Colazione" spostata da M a U invece di A a I allora usa la macro così modoficata
(Il numero di righe è variabile, la macro le calcola dalla colonna dell'ID, pertanto potrai aggiungerne tante quante le contiene il foglio di Excel -1)
Codice: Seleziona tutto
Sub AssiemaB()
Dim Ws1 As Worksheet
Set Ws1 = Sheets("Foglio1")
UR1 = Ws1.Range("M" & Rows.Count).End(xlUp).Row
Ws1.Range("S2:U" & UR1).ClearContents
For RR1 = 2 To UR1
    For CC1 = 15 To 17
        If UCase(Ws1.Cells(RR1, CC1).Value) = "VERO" Then
            UR2 = Ws1.Cells(Rows.Count, CC1 + 4).End(xlUp).Row + 1
            Ws1.Range("N" & RR1).Copy Destination:=Ws1.Cells(UR2, CC1 + 4)
        End If
    Next CC1
Next RR1
Application.CutCopyMode = False
End Sub


Per quanto riguarda il codice nelle celle non ho capito a cosa ti riferisci

Se intendi le formule contenute nelle celle delle colonne G:I (ora S:U)
ti posso garantire che non servono più perché sarà la macro a sistemare (non ordinare) l'elenco per tipologia di pasto senza lasciare righe vuote.

ciao


P.s. la macro la puoi attivare con un tasto di scelta rapida (vedi opzioni macro) oppure aggiungendo un codice nel vba del foglio che avvierà la macro ogni volta che andrai a modificare una qualsiasi cella della tabella Input ( da N a Q)
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-


Torna a Applicazioni Office Windows


Topic correlati a "Problema Ordinamento lista con Macro o senza":

Problema Windows 10
Autore: asso1998
Forum: Software Windows
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti