Completamento automatico

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
maximus81
00mercoledì 15 giugno 2016 22:02
Ciao,
scusate ma sono stato fuori e non sono riuscito a aprire un nuovo post ed ora eccomi qua come da vostra gentile richiesta.
In allegato il file che ho scaricato e quello con cui dovrei lavorare:
praticamente nel foglio ordine io vado ad inserire gli articoli e vorrei che mi completasse in automatico l'articolo in quanto nel secondo foglio "listini" ci sono circa 8000 codici, che cambiano ogni 6 mesi, e trovarlo come l'ho fatto io risulta molto complicato.
Al momento ogni volta che mi arriva un nuovo listino lo inserisco manualmente, e lo farei anche dopo, ma il colpletamento automatico mi aiuterebbe nella compilazione.
Quindi andrebbe benissimo come è fatto nel foglio che ho scaricato, che allego, ma non sono capace ad inserire la stessa macro che trovo in questo foglio sul mio.

Potete aiutarmi????

Grazie 1000 in anticipo
maximus81
00mercoledì 15 giugno 2016 22:06
file preso da sito
non mi carica il file con titolo combobox dinamico che ho scaricato da questo sito.

Ciao
rollis13
00mercoledì 15 giugno 2016 23:26
Il file probabilmente contiene macro pertanto lo devi zippare prima di poterlo allegare.
maximus81
00giovedì 16 giugno 2016 13:19
riproviamo
questo è il file che avevo scaricato
alfrimpa
00giovedì 16 giugno 2016 14:00
Ciao Massimo

l'argomento è alquanto complesso; credo che sull'argomento debba intervenire bySal in quanto autore del file che hai scaricato.

Prova a mandargli una FFZ mail.
maximus81
00venerdì 17 giugno 2016 10:22
Re:
alfrimpa, 16/06/2016 14.00:

Ciao Massimo

l'argomento è alquanto complesso; credo che sull'argomento debba intervenire bySal in quanto autore del file che hai scaricato.

Prova a mandargli una FFZ mail.




Ciao,
la mail l'ho inviata........ attendiamo.

Ciao e Grazie
maximus81
00lunedì 20 giugno 2016 13:15
File
Ciao By Sal,
in allegato il file corretto.
Praticamente quando nel foglio denominato ordine vado a scrivere un codice vorrei che mi suggerisse il codice tra quelli che trovo nel foglio listino.
Nel foglio listino ho cancellato dei codici per renderlo più leggero altrimenti ci sarebbero circa 10000 codici.
Ogni volta che ho un listino nuovo io cancello quello vecchio e lo aggiorno con i nuovi articoli.
Io vorrei copiare la macro che trovo su combobox sul mio foglio in modo da scegliere gli articoli in modo più veloce di quanto riesca a fare ora, che devo scorrere tutto il menù a tendina.

Spero di essere stato chiaro.

Ciao e Grazie
alfrimpa
00lunedì 20 giugno 2016 14:04
Ciao Massimo

Prova a guardare il file che ti ho allegato dove ho adottato un approccio diverso da quello di by Sal (che saluto)

Sul foglio Ordini posizionati su una delle celle da A22 ad A40.

Ti si aprirà una maschera con all'interno una casella di testo ed una casella di riepilogo.

Nella casella di riepilogo sono visualizzati tutti i codici del foglio Listini ma se nella casella di testo inizi a digitare qualcosa vedrai che la casella di riepilogo verrà "filtrata" ed esporrà solo i codici che contengono i caratteri digitati nella casella di testo.

Una volta trovato il codice giusto basta cliccarci su sulla casella di riepilogo e questo verrà riportato nella cella attiva sul foglio Ordini.

Ora il problema è: con pochi dati il tutto funziona correttamente senza "incertezze"; non so se con 10000 codici o più le macro possano funzionare altrettanto bene.

Dovresti fare dei test aggiungendo nel foglio Listini in colonna A tutti i codici a te occorrenti.

Prova e fai sapere.

P.S. Attualmente la userform ha un titolo "Ingredienti" che nulla ha a che vedere con te; è un refuso che correggeremo poi.
maximus81
00lunedì 20 giugno 2016 15:19
Re:
alfrimpa, 20/06/2016 14.04:

Ciao Massimo

Prova a guardare il file che ti ho allegato dove ho adottato un approccio diverso da quello di by Sal (che saluto)

Sul foglio Ordini posizionati su una delle celle da A22 ad A40.

Ti si aprirà una maschera con all'interno una casella di testo ed una casella di riepilogo.

Nella casella di riepilogo sono visualizzati tutti i codici del foglio Listini ma se nella casella di testo inizi a digitare qualcosa vedrai che la casella di riepilogo verrà "filtrata" ed esporrà solo i codici che contengono i caratteri digitati nella casella di testo.

Una volta trovato il codice giusto basta cliccarci su sulla casella di riepilogo e questo verrà riportato nella cella attiva sul foglio Ordini.

Ora il problema è: con pochi dati il tutto funziona correttamente senza "incertezze"; non so se con 10000 codici o più le macro possano funzionare altrettanto bene.

Dovresti fare dei test aggiungendo nel foglio Listini in colonna A tutti i codici a te occorrenti.

Prova e fai sapere.

P.S. Attualmente la userform ha un titolo "Ingredienti" che nulla ha a che vedere con te; è un refuso che correggeremo poi.



Ciao,
sto provando e sembra che vada bene. [SM=x423030]

Ora ci lavoro su e ti farò sapere. [SM=x423051]

Grazie 1000 [SM=x423028]
alfrimpa
00lunedì 20 giugno 2016 15:27
Ok.

L'unico dubbio che ho è, come detto, quello del numero dei codici da gestire.

Alfredo
maximus81
00lunedì 20 giugno 2016 16:38
ok
Ciao,
ho fatto delle prove e al momento funziona.
Per curiosità come faccio a cambiare la dicitura "ingredienti"?

Comunque grazie 1000

Ciao
alfrimpa
00lunedì 20 giugno 2016 17:48
Allora fai così:

1) Vai nell'editor di VBA premendo ALT+F11
2) In alto a sx trovi la finestra progetto
3) Troverai una cartella Form e clicca sul "+" alla sua sinistra
4) Vedrai poi Userform1 e fai doppio clic su questa
5) Ti si apre la form in modalità struttura
5) con il tasto dx del mouse clicca sullo sfondo della form e scegli "Proprietà"
6) Nella finestra che ti si apre trova "Caption"; cancella "Ingredienti" e metti quello che vuoi.
7) Salva il file e chiudi.
maximus81
00lunedì 20 giugno 2016 22:14
Altra Domanda
Ciao Alfredo,
siccome lo schema che mi hai dato è perfetto e può essermi utile anche ad un altro file, vorrei farti una domanda. Se modifico il nome del file listini non si apre più la casella, e questo penso che sia corretto, la domanda quindi è come devo fare a rinominare il foglio dove prendere i dati.

Ciao e Grazie
alfrimpa
00martedì 21 giugno 2016 11:11
Ciao Massimo

Per me non è facile risponderti perché non so tu che conoscenze abbia di VBA.

Quelle che vedi sotto sono tutte le macro che "governano" il tutto; ti ho indicato l'istruzione da modificare con il nome del nuovo foglio ma non è detto che sia sufficiente solo questa modifica in quanto è necessario vedere anche come è strutturato il nuovo file.

Quello che posso consigliarti è di provare a studiare il codice cercando di capire come funziona e cosa fa, magari approfondendo i concetti su testi di VBA o su internet.

Comunque, se hai domande, sono qua.


Option Explicit

Option Compare Text

Private sh As Worksheet

Private Sub ListBox1_Click()
ActiveCell.Value = UserForm1.ListBox1.Value
UserForm1.TextBox1.Value = ""
UserForm1.Hide
End Sub

Private Sub TextBox1_Change()
Call mCaricaListBox("FiltraDati")
End Sub

Private Sub UserForm_Initialize()
    Set sh = ThisWorkbook.Worksheets("listini") <=== Questa la riga da modificare inserendo il nome del nuovo foglio tra le virgolette.
    Call mCaricaListBox("CaricaDati")
End Sub


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 = 3 To lRiga
                .AddItem (sh.Range("A" & lng).Value)
            Next
        ElseIf s = "FiltraDati" Then
            .Clear
            For lng = 3 To lRiga
                If InStr(sh.Range("A" & lng).Value, Me.TextBox1.Text) Then
                    .AddItem sh.Range("A" & lng).Value
                End If
            Next
        End If
    End With
    
End Sub


Private Sub UserForm_Terminate()
    Set sh = Nothing
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("a22:a40")) Is Nothing Then
    If Target.Value <> "" Then Exit Sub
    UserForm1.Show
End If
End Sub
maximus81
00mercoledì 22 giugno 2016 16:03
Spettacolare
Ciao,
Funzione perfattamente.

PS: Forum eccezzzzzzzionale siete grazndi!!! [SM=x423028]
alfrimpa
00mercoledì 22 giugno 2016 16:11
Grazie [SM=g27811]

L'importante è che tu abbia capito come funziona il codice e cosa fa.
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 06:40.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com