Condividi:        

[EXCEL]Creare macro o matrice fra piu fogli

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]Creare macro o matrice fra piu fogli

Postdi Gabriover93 » 21/11/14 13:31

Salve a tutti, avrei bisogno di un aiuto per un problema con excel, in pratica devo compilare un foglio con una serie di codici che corrispondono a un prodotto(e il nome del prodotto non deve apparire) e di questi codici ne ho una lista di circa 1100 voci quindi dover sempre ricercarli diventa lungo e rallenta, in altre parole mi servirebbe un modo per poter riempire la cella per esempio scrivendo "pane" e premendo invio mi deve uscire il codice corrispondente a pane nella cella

digito "PANE" risultato in cella A1---1234


inoltre se fosse possibile, tutti questi prodotti hanno altre 3 voci che restano SEMPRE uguali quindi eventualmente quando richiamo il prodotto nelle medesime celle vengono fuori i valori

esempio:

digito "pane" quindi---1234

cella A cella B cella C cella D
12345 cod fisso1 cod fisso2 cod fisso 3


(ovviamente stessa colonna ma quasi mai la stessa riga.)

eventualmente potrei fare due documenti distinti dove in quello vuoto faccio le chiamate all'altro foglio dove ci sono i codici e mi va a riempire sempre le colonne identiche

o anche uno stesso documento tutto diviso in fogli e fare le chiamate per fogli, unica nota io dovrà sempre inviare solo il foglio 1 e salvarlo in .csv.


vi allego il facsmile, spero che sia fattibile e mi auguro in un vostro aiuto, saluti.

https://mega.co.nz/#!wZpBSDrY!MGsQupC6S1kSGIn-z054_XH_GjKHAa1ukpI8BrpZyU4
Gabriover93
Newbie
 
Post: 3
Iscritto il: 15/02/10 10:46

Sponsor
 

Re: [EXCEL]Creare macro o matrice fra piu fogli

Postdi Anthony47 » 22/11/14 02:48

Ciao Gabriover93, benvenuto nel forum.
Perdona, ma ho grosse difficolta' a capire la richiesta…

Questo e' il layout dei dati nel file che hai pubblicato:

Immagine
invia immagini

In aggiunta a quanto hai scritto nel primo messaggio, nel file hai aggiunto la seguente descrizione:
[IN ROSSO:] Tutti i Valori che resteranno uguali e fissi SEMPRE quindi mi basta copiarli, niente modifiche

[IN VERDE:] Valori che devo cambiare per forza manualmente ogni giorno, quindi qui non mi serve quello che vi ho chiesto

[IN GIALLO:] Tutti i valori in cui avrei bisogno inserire il codice, ricordo sempre l'esempio

io scrivo sulla cella E=Pane quando premo invio deve venire 1234567

se possibile automaticamente nella colonna Q dovrebbe apparire un codice unico corrispondente al pane nell'esempio Key 1, poi nella Colonna S un altro valore, infine nella tabella W un ultimo valore

quindi quello che chiedo in sostanza, è poter fare un inventario a parte, dove io inserirò dei nomi che poi dovranno far apparire in automatico nelle celle corrispondenti quei dati che mi interessano (anche solo poter inserire "Pane" e far uscire il suo codice "1234567" mi aiuterebbe tanto perché ho molti valori
altri esempi
fragola--->5323454
Mela----->1442342

insomma spero di essermi spiegato spero in una vostra risposta.

(deve essere salvato in csv e so che i colori non vengono salvati, infatti non servono, è solo per spiegarvi meglio il problema

Per darti l' idea, non ho capito nemmeno quali sono i dati di partenza, figuriamoci cosa ho capito di quel che bisogna ottenere…

Vedi se riesci a fornirci un supplemento di informazioni, possibilmente separando quello che hai (i dati di partenza) da quello che vuoi ottenere; ci vorra' pazienza ma credo alla fine ci capiremo.

Ciao, ti aspettiamo
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL]Creare macro o matrice fra piu fogli

Postdi Gabriover93 » 22/11/14 17:18

ho rifatto il file e ho inserito un altro foglio dove ci sono alcuni dei codici che mi servono
in pratica quando vedrai il file, ho evidenziato con i colori diversi solo le colonne che mi interessa cambiare.



https://mega.co.nz/#!kRoHnC6J!zYmy7E8KMBhFY6VrU3QOTWewrx9yq-8ZmOVmo_5YWq4
Gabriover93
Newbie
 
Post: 3
Iscritto il: 15/02/10 10:46

Re: [EXCEL]Creare macro o matrice fra piu fogli

Postdi Anthony47 » 25/11/14 12:48

La cosa si puo' fare usando un Combobox, la cui lista di origine viene aggiornata dinamicamente in funzione di quanto man mano si scrive nel combo box.
Quindi:
1) inserisci nel tuo foglio di lavoro (quello che nell' esermpio si chiamava 122449_171114185000_FACSIMILE) un "Combobox", prelevandolo tra i "controlli ActiveX".
2) tra le sue Proprieta' imposta Column count = 2, mentre le altre lasciale sullo stato di default
3) imposta una larghezza idonea a visualizzare sufficientemente sia il codice che la descrizione
4) Poi fai tasto dx sul tab col nome del foglio e scegli Visualizza codice
5) Copia questo codice e incollalo nel frame vuoto(*) di destra:
Codice: Seleziona tutto
Private Sub ComboBox1_Change()
Dim LastA As Long, I As Long, vArr, BArr()
'
LastA = Sheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Row
ReDim BArr(1 To 2, 1 To LastA)
'
vArr = Sheets("Foglio1").Range("A1").Resize(LastA, 2).Value
With ActiveSheet.ComboBox1
    .ListFillRange = ""
    If .Value <> "" Then
        For I = LBound(vArr, 1) To UBound(vArr, 1)
            If InStr(1, vArr(I, 2), .Value, vbTextCompare) > 0 Then
                j = j + 1
                BArr(1, j) = vArr(I, 1)
                BArr(2, j) = vArr(I, 2)
            End If
        Next I
        ReDim Preserve BArr(1 To 2, 1 To j + 2)
        .List = Application.WorksheetFunction.Transpose(BArr())
    Else
        .List = vArr
    End If
'    .ListRows = 8
    .DropDown
    If IsNumeric(.Text) And .LinkedCell <> "" Then Range(.LinkedCell) = CLng(.Text)
End With
End Sub

Private Sub ComboBox1_GotFocus()
ComboBox1.DropDown
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
myArea = "E1:E10"           '<<< L' area dove deve comparire il ComboBox
If Application.Intersect(Target, Range(myArea)) Is Nothing Or Target.Count <> 1 Then
    ActiveSheet.ComboBox1.Visible = False
    ActiveSheet.ComboBox1.LinkedCell = ""
Else
    With ActiveSheet.ComboBox1
        .BackColor = RGB(255, 255, 100)
'        myaddr = Sheets("Foglio1").Range(Sheets("Foglio1").Range("A1"), Sheets("Foglio1").Range("A1").End(xlDown).Offset(0, 1)).Address
'        .ListFillRange = "Foglio1!" & myaddr
        .LinkedCell = Target.Address
        .Visible = True
        .Top = Target.Top
        .Left = Target.Offset(0, 1).Left
'        .SetFocus
    End With
End If
End Sub

Nota*: se il frame non e' vuoto allora pubblica il codice contenuto perche' bisogna controllare la compatiilita' con quanto proposto.
L' istruzione marcata <<< va personalizzata con l' area a cui si vuole associare il combo box.
Se il combobox che disegni non si chiama "ComboBox1", allora modifica coerentemente il codice soprastante (oppure cambia il nome dell'oggetto in ComboBox1; lo puoi fare nella finestra Proprieta').
Il risultato sara' che quando si seleziona una cella nell' area specificata dall' istruzione marcata <<< comparira' il combo box; digitando "qualcosa" nel combo box la lista mostrata sara' modificata per visualizzare solo le righe che comprendono quella stringa; quando la selezione sara' abbastanza corta si potra' selezionare la voce "giusta" e il relativo codice sara' inserito nella cella.
Userai il codice all' interno di una formula Cerca.Vert per estrarre dal foglio di Anagrafe le informazioni da inserire nelle colonne Q-R-S.

Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL]Creare macro o matrice fra piu fogli":


Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti