Condividi:        

excel compilazione elenco

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 compilazione elenco

Postdi wallace&gromit » 01/12/16 10:56

ciao a tutti,
per tutti gli aspetti di questa mia domanda so di avere già visto nel forum le soluzioni singole, ma non riesco a integrare il tutto.

Vorrei compilare un elenco composto da data / descrittivo / codice

La data odierna entra automaticamente.
La lista completa di descrittivi e codici è in foglio 2.
Per la compilazione possono verificarsi tre scenari:
- so già a memoria il codice, allora lo inserisco in colonna C e le celle vicine in A e B devono completarsi di conseguenza.
- inserisco il descrittivo in colonna B e terminato questo deve apparire il codice corretto in C.
- non so di preciso né il codice né il descrittivo e allora dovrei vedere la UserForm con i possibili codici.

Per ora la UserForm la lancio con un pulsante, ma preferirei che partisse con un doppio clic o clic destro direttamente ed esclusivamente in colonna C.

L'inserimento del descrittivo sarebbe bello che avvenisse con le proposte di completamento: inserisco "T" e mi propone Topolino; inserisco "P" e mi propone Pippo, se però continuo con "Pa" mi propone Paperino.

Qui si trova quello che ho preparato finora:
http://www.filedropper.com/macrocompilazioneelenco
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Sponsor
 

Re: excel compilazione elenco

Postdi Zer0Kelvin » 01/12/16 15:19

Ciao.
Io la farei così:
-doppio click in colonna A
-viene inserita la data odierna
-viene visualizzata una userform con due liste (codici e descrittivi) e due inputbox, una per il codice ed una per i descrittivi

Con questa form potrò indifferentemente inserire un codice o un descrittivo, durante la digitazione, la lista si adeguerà alla mia digitazione.
Se per es. io digito "P", rimarrano in lista solo i descrittivi (e relativi codici) che cominciano per P e così via.
Con un click sulla lista o con invio nella textbox, verranno inseriti i valori nelle due celle.
In realtà è sufficiente una sola textbox ed una sola lista a due colonne.
Se l'idea ti aggrada posso provare a mettere assieme il tutto...
[Win7,Office2010]
Condividere la conoscenza aumenta la ricchezza di tutti(Z0°K)
Dai ad un uomo un pesce e lo avrai sfamato per un giorno;insegnagli a pescare e lo avrai sfamato per sempre(Confucio)
Il sonno della ragione genera mostri(Francisco Goya)
Avatar utente
Zer0Kelvin
Utente Senior
 
Post: 388
Iscritto il: 08/04/12 11:23

Re: excel compilazione elenco

Postdi alfrimpa » 01/12/16 15:22

Ciao Wallace

Dopo un po' di penare :) e qualche crash di Excel alla fine (forse) sono riuscito nell'intento.

Ti allego il tuo file con macro ed userform inserita; all'interno del file troverai le spiegazioni sul suo funzionamento

http://www.filedropper.com/wallace3

Provalo un po' e fai sapere.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: excel compilazione elenco

Postdi wallace&gromit » 01/12/16 15:49

Ciao a entrambi e grazie mille!

La soluzione di Alfredo è quella che mi soddisfa di più perché più agile, non dovendo passare necessariamente attraverso le UserForm, dovrei riuscire ad adattarvi anche la mia UserForm con i codici per la colonna C.

Ora provo a camminare con le mie gambe. In caso di dubbio mi rifaccio vivo.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: excel compilazione elenco

Postdi wallace&gromit » 03/12/16 16:34

eccomi qui, la macro di Alfredo funziona a meraviglia ma sono diventato goloso:
ho vaghe reminescenze di una soluzione in cui era possibile filtrare i dati non solo con l'iniziale ma con intere parti.
Nel mio caso per esempio digitando "pip" dovrebbe mostrarmi sia "pippo" sia "super pippo".
È possibile adattare il filtro in tale senso?
Codice: Seleziona tutto
Private Sub mCaricaListBox(ByVal s As String)
    Dim lRiga As Long
    Dim lng As Long
    With sh
        lRiga = .Range("A" & .Rows.Count).End(xlUp).Row
    End With
    With Me.ListBox1
        If s = "CaricaDati" Then
            For lng = 2 To lRiga
                .AddItem (sh.Range("A" & lng).Value)
            Next
        ElseIf s = "FiltraDati" Then
            .Clear
            For lng = 2 To lRiga
                If Left(sh.Range("A" & lng).Value, Len(Me.TextBox1.Text)) = Me.TextBox1.Text Then
                    .AddItem sh.Range("A" & lng).Value
                End If
            Next
        End If
    End With
End Sub
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: excel compilazione elenco

Postdi Anthony47 » 03/12/16 20:58

Senza voler capire piu' di tanto, penso che basti sostituire questo pezzo
If Left(sh.Range("A" & lng).Value, Len(Me.TextBox1.Text)) = Me.TextBox1.Text Then
.AddItem sh.Range("A" & lng).Value

con
Codice: Seleziona tutto
                If InStr(1, sh.Range("A" & lng).Value, Me.TextBox1.Text, vbTextCompare) > 0 Then
                    .AddItem sh.Range("A" & lng).Value

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

Re: excel compilazione elenco

Postdi wallace&gromit » 06/12/16 16:21

Eccomi di nuovo, scusa Anthony per il ritardo nel feed-back.

Perfetto.

Sono un po' fuso: dopo averla letta mi è tornata in mente la vaga reminescenza: hai utilizzato questa funzione nella UserForm del "navigatore", che uso almeno una ventina di volte al giorno!
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: excel compilazione elenco

Postdi enrico43 » 12/12/16 19:16

Salve, e invece come bisogna modificare la/le macro se nell'elenco nominativi ci sono dei doppioni ma con codice diverso?
Es Paperino cod1 e Paperino cod6. Al momento riporta sul foglio1 sempre il primo che trova: Paperino cod1 anche da scelta nella list del P cod6. Direte: rintraccialo per codice, seeee, il nome si ricorda facilmente, il codice impossibile. Per ultimo i dati da allineare vanno fino alla colonna J.
Un ringraziamento come sempre per l'aiuto.
Cordiali saluti
Enrico

PS Mi sembra di essere diventato Robinhood, rubo ai ricchi per donare ai poveri, ma questo dovrei dirlo ai miei "poveri colleghi".
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: excel compilazione elenco

Postdi alfrimpa » 12/12/16 19:21

Ciao Enrico

Secondo me faresti meglio ad aprire un'altra discussione tua, allegare il tuo file con i dati e spiegare quello che vuoi fare.

Secondo me sarebbe più facile darti una mano.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: excel compilazione elenco

Postdi wallace&gromit » 13/12/16 09:17

Teniamo pure aperta questa discussione, da parte mia era conclusa, quindi possiamo proseguire con con gli ulteriori spunti di Enrico.
Nella Sub mCaricaListBox bisogna modificare questa riga:
.AddItem sh.Range("A" & lng).Value
così:
Codice: Seleziona tutto
                    .AddItem sh.Range("A" & lng).Value & "-/-" & sh.Range("B" & lng).Value


mentre la sub che inserisce il testo diventa così:
Codice: Seleziona tutto
Private Sub ListBox1_Click()
Dim MyStr As String
Dim ur As Long
Dim tabella As Range
ur = ThisWorkbook.Worksheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Row
Set tabella = Worksheets("Foglio2").Range("a2:b" & ur)
Application.EnableEvents = False
MyStr = UserForm1.ListBox1.Value
ActiveCell.Value = Left(MyStr, InStr(MyStr, "-/-") - 1)
ActiveCell.Offset(0, 1).Value = Right(MyStr, Len(MyStr) - InStr(MyStr, "-/-") - 2)
ActiveCell.Offset(0, -1).Value = Date
UserForm1.TextBox1.Value = ""
UserForm1.Hide
Application.EnableEvents = True
End Sub


P.S. nella speranza che né nel testo né nei codici esista una parte con "-/-", in tal caso questo separatore può essere modificato a piacimento
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: excel compilazione elenco

Postdi enrico43 » 14/12/16 17:35

Vi ringrazio dell'interessamento. Per meglio capire la "mia" esigenza, allego il file. Ci sono 4 fogli, i primi 2 appartengono alla prima soluzione da me adottata, con relativa maschera di ricerca dati e registrazione degli stessi su foglio2 (tra parentesi non sono mai riuscito a far comparire nella maschera le ore nel modo 09.00 corretto).
Mentre i fogli 3 e 4 sono con la soluzione Alf-Wall, sul 3 la registrazione col doubleclick su colonna B e sul 4 l'elenco. Succede che un nominativo se compare 2 volte la macro prende sempre e solo il primo che incontra. Non succede con la prima soluzione fogli 1 e 2 perchè mi da l'alternativa se fermarmi o continuare. Provate in entrambe le soluzioni con Rossi Bruno.
Ambedue le soluzioni, anche se in modo diverso, permettono la ricerca parziale progressiva r..o..s...s....i e relativa registrazione con tutti i dati della riga. Questo è l'inghippo.
Poi, siccome la soluzione Alf-Wall piace di più ed è più snella e veloce, Vi chiederei se è possibile far partire la macro doublecliccando su qualsiasi cella del foglio3, con ovviamente relativa registrazione come double cliccando nelle celle della colonna B.
Vi ringrazio e saluto
Enrico - Excel 2003, ma posso aprirli tutti e lavorarci in 2003.
http://www.filedropper.com/ufpe

PS Chiaramente l'80% del lavoro non è farina del mio sacco, un 40% va accreditato a Alfredo, vediamo se riconoscete l'altro 40% (la prima soluzione) di chi è.
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: excel compilazione elenco

Postdi enrico43 » 14/12/16 18:52

I primi 2 risultati....ci sono arrivato. Ho allargato l'area del beforedoubleclick del foglio3 con
If Not Intersect(Target, Range("a2:j1000")) Is Nothing Then
ed ho aggiunto nell'evento del click sulla listbox prima del ActiveCell.Value = UserForm1.ListBox1.Value
[B100].End(xlUp).Offset(1, 0).Select.
Ora, più per curiosità personale, vorrei sapere come far apparire nel formato corretto (09.00, 15,30) le ore nella userform "Straordinari", per intenderci le textbox verdine.
Vi saluto
Enrico
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: excel compilazione elenco

Postdi enrico43 » 14/12/16 22:58

Ora mi sono anche scuriosato.
TextBox7 = Format(TextBox7, "h:mm;@") oppure TextBox7 = CDate(C.Offset(0, 4).Text). Quindi "Risolto".

OT Peccato per l'indovinello del 40%, sopratutto per Wallace che anni fà mi fece impazzire con un indovinello che, a suo dire, i suoi figli che frequentavano l'asilo avevano indovinato subito. Però non ricordo qual'era.

Un salutone a tutti
Enrico
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: excel compilazione elenco

Postdi wallace&gromit » 15/12/16 09:35

Ciao Enrico,
ieri ero assente e oggi sono qui di sfuggita, magari stasera riesco a gettare un occhio al tuo file e quindi a rispondere al tuo indovinello, ma così alla cieca, considerando che è un codice che funziona bene, sparo Anthony, ed ho il 50% di possibilità di indovinare, altrimenti era Flash.

Per quanto riguarda il mio indovinello era una serie di parole che aveva un denominatore in comune, era sotto "stupidate varie rilassanti", magari riesco a ripescarlo. Comunque non esageriamo, visto che mio figlio maggiore sta finendo il liceo dubito che ai tempi frequentasse l'asilo, come minimo le medie.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: excel compilazione elenco

Postdi enrico43 » 15/12/16 12:44

Ho cantato vittoria troppo presto.
Purtroppo, me lo hanno fatto notare questa mattina i miei beggar che ormai si sono buttati sulla soluzione Alf-Wall, esiste ancora il problema dei doppi nomi che, se anche con valori contigui diversi, ne viene riportato sul foglio3 sempre e solo il primo. Proverei (rò questa sera) a fare la listbox multicolonna con 2 colonne unendo al nome l'ultima cella a destra. E perchè no allora mettere tutte le colonne nella listbox ? Credo però che non funzioni perchè sarà sempre la prima ricorrenza ad essere ricopiata.
Io sono solo un saccheggiatore e non saprei come fare, pertanto confido nel Vs aiuto.
Per pronto riferimento riallego il file.
Cordiali saluti
Enrico
http://www.filedropper.com/ufpe_1
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: excel compilazione elenco

Postdi wallace&gromit » 15/12/16 15:52

Ciao,
non ho capito come lanci la userform1, visto che non c'è un evento before doubleclick.
Comunque vedo che non hai inserito l'ultima implementazione che avevo suggerito: non lavoravo più con vlookup.
Una volta identificato il nome preciso, con tanto di codice, i valori di nome e codice vengono estrapolati da questa parte:
Codice: Seleziona tutto
ActiveCell.Value = Left(MyStr, InStr(MyStr, "-/-") - 1)
ActiveCell.Offset(0, 1).Value = Right(MyStr, Len(MyStr) - InStr(MyStr, "-/-") - 2)

Se poi non puoi fare a meno dei vlookup li fai utilizzando il codice (che presumo sia univoco) e non più il nome, ma a quel punto penso che sarebbe meglio trovare il numero di indice corrispondente al tuo codice e lavorare con i riferimenti piuttosto che ripetere tante volte il vlookup.
Dimmi se ti basta questo come spunto, ora non ho tempo di lavorarci.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: excel compilazione elenco

Postdi enrico43 » 15/12/16 21:55

La lanci doublecliccando in qualsiasi cella del foglio 3, scegli il nominativo e ricopia sul foglio3 tutta la relativa riga che sta sul foglio4 in successione. Però coi doppioni ricopia sempre la prima ricorrenza.
Per il momento ho risolto creando una colonna d'appoggio dove ciascun nome è legato al relativo valore della seconda colonna e faccio riempire da li la listbox, cioè una listbox truccata da multicolonna, perchè sarebbe una multicolonna la mia idea. Ci sto lavorando e col cerca ho trovato su pc-facile una discussione del 2007 dove una certa Alexandra spiegava come farla e come dimensionare la larghezza delle colonne nella listbox multicolonna.
Ho implementato i toui suggerimenti, ma non risolvono il mio problema.
Con qualche stratagemma bisognerebbe attirare in questa discussione Alfrimpa o ancor meglio Anthony e vedrai che ...tadààà...tutto risolto. Tu ne conosci qualcuno ? Ma vedrai che alle 03.15 Anthony si farà vivo.
Per il momento e solo per il momento
Vi saluto
Enrico
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: excel compilazione elenco

Postdi wallace&gromit » 15/12/16 22:20

Allora ci avevo azzeccato sul 40% di Anthony?
Metodi magici per richiamarlo non ne ho, puoi sempre provare con un messaggio privato.
Alexsandra è ben nota, era una amministratrice del forum qualche anno fa, ma apparentemente si è "messa in proprio", come segnalato proprio oggi da Alfredo.
Per il resto non ci ho capito molto, ma ti garantisco che l'operazione che ti suggerivo equivale in pratica ad una doppia colonna, salvo che troverai tutto in un'unica colonna con la separazione "-/-", che poi al momento dell'inserimento viene tolta.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: excel compilazione elenco

Postdi enrico43 » 15/12/16 23:11

Sul file che ho allegato oggi alle quasi 2 posizionati sul foglio3 dove vuoi, fai doppio click, scegli qualche nome e vedi cosa fa.
La tua soluzione equivale praticamente alla colonna d'appoggio k che uso per popolare la listbox1 dove al nome ho & legato il codice e quindi cliccando sul nome nella listbox popola il foglio3, pero nella colonna del nome c'è antiesteticamente accanto anche il codice.
Puah.
A proposito ".....con la separazione "-/-", che poi al momento dell'inserimento viene tolta", a me non scompariva. Mò riprovo.
Saluti
Enrico
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: excel compilazione elenco

Postdi Anthony47 » 16/12/16 03:02

Ma vedrai che alle 03.15 Anthony si farà vivo.

No no, so che stasera Anthony ha un impegno e deve scollegarsi entro le 3:00
Pero' so che ha provato a leggere la discussione e non ha capito di cosa parlate e allora aveva deciso di defilarsi.
Provate ad attirarlo facendo finta di descrivere tra voi il problema, magari si fa circuire e ritorna...
Avatar utente
Anthony47
Moderatore
 
Post: 19182
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "excel compilazione elenco":


Chi c’è in linea

Visitano il forum: Anthony47 e 33 ospiti

cron