| | Post: 39 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
23/08/2016 13:26 | |
salve a tutti
premetto che non capisco VBA e pare (in giro che ci voglia per forza VBa) per cortesia qualcuno puoi aiutarmi affinche' l'allegato file ordina automaticamente (Attività in Eseere) per cognome
Grazie a tutti |
|
| | Post: 2.413 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
23/08/2016 15:19 | |
1 usa il registratore di macro; ed è già un consiglio che non meriti, ma oggi sono particolarmente caritatevole. 2 non so come la pensa, @ raffaele1953 (che saluto); io sono ancora in religiosa attesa di un riscontro, magari critico relativamente a: http://freeforumzone.leonardo.it/d/11195323/Per-Raffaele/discussione.aspx?#idm1315203043 non so come la pensano, @ Marius44 e @ raffaele1953 (un saluto ad Entrambi); io sono ancora in religiosa attesa di un riscontro per: http://freeforumzone.leonardo.it/d/11198176/Salve-Aiuto-/discussione.aspx?#idm131571001Contestualmente ringrazio @ lucaArcuri per la Sua attenzione.
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 39 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
23/08/2016 18:02 | |
Windows 7 ultimate Office 2013 [Modificato da Clemente62 23/08/2016 18:03] |
| | Post: 2.417 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
23/08/2016 21:46 | |
Buona sera, Clemente;
propongo a Forum il Codice per l'ordinamento sviluppato con Excel 2013, per Excel 2000 e 2003 il Codice sarebbe sicuramente molto diverso, per Excel 2007 non saprei.
Option Explicit
Sub Ordina()
Dim NRc As Long
NRc = Range("A" & Rows.Count).End(xlUp).Row
Columns("B:K").Select
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("C2:C" & NRc), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("D2:D" & NRc), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("I2:I" & NRc), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("B1:K" & NRc)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("C2").Select
End Sub
Questo Codice Ordina secondo queste tre regole:
1 Cognome
2 Nome
3 LETT.
Ora, se provi a lanciare questa procedura, ti accorgerai di una incongruenza; la sequenza:
Balletta Giovanni S. Maria P.zza Umberto I° Ristorazione .....Bar ..............A
Balletta Tancledo S. Maria Nazionale ............Cessata ..............Ristorante CE
Balletta Giovanni S. Maria Macello 26 ...........Ristorazione ....Ristorante .A
Non è corretta; questo è dovuto allo spazio finale del Cognome "Balletta " nel Record:
Balletta Giovanni S. Maria Macello 26 ...........Ristorazione ....Ristorante .A
Se togli lo spazio finale in "Balletta" e rilanci la produra, vedrai che il risultato sarà:
Balletta Giovanni S. Maria P.zza Umberto I° Ristorazione .....Bar ..............A
Balletta Giovanni S. Maria Macello 26 ...........Ristorazione ....Ristorante .A
Balletta Tancledo S. Maria Nazionale ............Cessata ..............Ristorante CE
come deve essere.
A disposizione.
Buona serata a Tutti.
Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 423 | Registrato il: 29/03/2012
| Città: VARESE | Età: 68 | Utente Senior | 2010 | | OFFLINE | |
|
23/08/2016 22:42 | |
Ciao GiuseppeMN,
un'alternativa alla tua macro.
Private Sub CommandButton1_Click()
Range("C2").Select
Application.CommandBars.ExecuteMso ("SortAscendingExcel")
End Sub
scusa Giuseppe, ho letto male. La tua macro è migliore. [Modificato da peppo55.Excel 23/08/2016 23:39] peppo
Excel 2010 |
| | Post: 2.420 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
24/08/2016 07:43 | |
Buona giornata, Peppo; devo ringraziarti, non conoscevo " ExecuteMso".
È molto interessante; è pur vero che " SortAscendingExcel" agisce su un solo Campo, in questo caso "Cognome", ma, può essere molto utile in altre applicazioni. Devo studiarmelo bene. Non si finisce mai di imparare. Grazie del Tuo Contributo. Buona serata. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 424 | Registrato il: 29/03/2012
| Città: VARESE | Età: 68 | Utente Senior | 2010 | | OFFLINE | |
|
24/08/2016 10:11 | |
Ciao GiuseppeMN,
per reperire il nome di una ExecuteMso é molto semplice.
Nelle Opzioni di Excel > Personalizzazione barra multifunzione,quando ti avvicini con il Mouse ad un comando, viene visualizzato il nome del controllo.
[Modificato da peppo55.Excel 24/08/2016 10:11] peppo
Excel 2010 |
| | Post: 2.421 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
24/08/2016 10:18 | |
Buona giornata, Peppo; grazie della precisazione. Quello che sto cercando di capire, è se possibile attribuire a " SortAscendingExcel" più campi di ordinamento; per il momento, tutti i Test che ho condotto non hanno dato un risultato accettabile. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 41 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
24/08/2016 18:30 | |
Vi ringrazio tutti per il lavoro svolto però, purtroppo non so utilizzare VBA.
Provo a farlo e vi faccio sapere però, forse, se potreste utilizzare il mio allegato ed aggiustarlo vi sarei molto grato . pERò INTANTO PROVO A FARLO PURE IO
CIAO
|
| | Post: 3.338 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
24/08/2016 18:35 | |
lo scopo del forum è quello di insegnare ad usare Excel, non quello di fornire un prodotto chiavi in mano
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 42 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
24/08/2016 18:41 | |
Ho aperto il foglio excel (mio) poi ho fatto ALT+F11, ho scelto Foglio 4 (Attività in essere), poi dove sta scritto generale ho scelto Workscheet, edall'altra parte ordina, ho copiato la formula che mi avete inviato lìho incollatta poi sono uscito ed ho provato e purtroppo non funziona |
| | Post: 43 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
24/08/2016 18:44 | |
Ho aperto il miofogliodi lavoro excel, poi ALT+F11, ho scelto FOGLI 4 (Attività in Essere) ho scelto dove sta scritto generale WORKSCHETT ho incollato la formula ed ho richiuso tuoot ma purtroppo non funziona |
| | Post: 44 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
24/08/2016 18:47 | |
Hai ragione però grazie a voi, se vedi l'allegato, le varie formule le ho inserite io e pensare che non sapevo nemmeno mettere in ordine alfabetico e non conoscevo il tasto filtro ma purtroppo il VBA per me è molto difficile scuusami ancora |
| | Post: 45 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
24/08/2016 18:49 | |
|
| | Post: 4.892 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
25/08/2016 07:27 | |
Ciao Clemente per le macro, la prima parte l'hai fatta correttamente Alt+F11, la seconda no.
in quanto la macro che ti ha proposto GiuseppeMn che saluto come pure saluto anche gli altri, è una macro normale che funziona per tutti i fogli.
solo le macro legate agli eventi del foglio tipo Change, Selection_Change, ed altri eventi vanno inserite direttamente nel modulo del foglio, anche quella ma non in un evento cosa che credo abbia fatto selezionando Worksheet.
dopo Alt+F11 nel menù "Inserisci" scegli "Modulo" ti crea il Modulo1 nel quale copia/incolla la macro, di nuovo Alt+F11 e ritorni sul foglio.
Posizionati sul foglio dove vuoi fare l'ordinamento, poi premi Alt+F8 si apre la mascherina che contiene tutte le macro troverai il nome della Macro "Ordina", la selezioni e premi esegui, oppure doppio click sul nome della macro.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 46 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 07:48 | |
sal sto provando a fare come dici tu ma non funziona
ho eseguito tutto alla lettera
datemi altri indizi
grazie |
| | Post: 47 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 08:36 | |
Forse devo cliccare su esegui istruzione? |
| | Post: 48 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 08:51 | |
Mi dispiace non riesco a farla funzionare |
| | Post: 2.423 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
25/08/2016 10:14 | |
Buona giornata, Clemente. Nel Tuo File esiste già il Modulo1 nel quale hai registrato il Codice: - Sub Trova() Prova a Copiare il Codice proposto sotto questo Codice. Poi, se anche questa indicazione non darà il risultato richiesto, allegherò il File; ma, vedrai che riuscirai a risolvere in autonomia. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 49 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 12:17 | |
|
| | Post: 50 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 12:22 | |
Allora adesso ho capito leggere la formula VBA funziona, però se ho capito bene ogni qualvolta voglio ordinare i dati devo eseguire (ALT+F8 ed ESEGUI);
Giusto?
Però se è così va bene però forse mi sono espresso male(non mi sono fatto capire) io credevo che era possibile inserire i dati ed alla pressione el tasto INVIO il cognome si fosse messo in ordine alfabetico da solo!
ma credo che ciò non è possibile? o sbaglio |
| | Post: 2.161 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
25/08/2016 12:41 | |
Ciao Clemente
Ti sbagli anche questo si può fare basta utilizzare una procedura evento tipo
Worksheet_Change
delimitando il range con
If Not Intersect
Ora sono da cell e non posso dire/fare di più ma credo di averti dato degli utili spunti.
Un'ultima notazione personale: ho 63 anni e sino a circa tre anni fa del VBA non ne conoscevo neanche l'esistenza quindi se ho imparato qualcosa io non vedo perchè non possa farlo anche tu.
Certo occorre impegno studio e passione
Alfredo |
| | Post: 51 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 13:01 | |
io ne ho 54 e m sto impegnando molto grazie comunque a presto |
| | Post: 2.424 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
25/08/2016 17:14 | |
Puoi sempre utilizzare un Pulsante al quale delegare l'escuzione del Codice VBA. Non sarà come premere Invio, ma basta un Click. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 52 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 18:42 | |
giuseppe come si aggiunge il pulsante ? |
| | Post: 53 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 18:46 | |
ALT+F8 po Opzione ed ho aggiunto una lettera funxiooooooonnnaa Grazie a tutti per ora |
| | Post: 55 | Registrato il: 07/06/2012
| Città: ARIENZO | Età: 61 | Utente Junior | 2013 | | OFFLINE |
|
25/08/2016 20:19 | |
Grazie a tutti chiudo questa discussione ringraziando tutti, adesso ho aperto una nuova discussione sulle lezioni VBA |
|
|