macro genera riepilogo



  • macro genera riepilogo
    di Diego (utente non iscritto) data: 03/04/2017 11:12:04

    Buongiorno a tutti, uso abbastanza bene excel ma solo con le formule e non con le macro (mi fanno impazzire)
    in un foglio chiamato LOTTI ho creato una serie di campi da A1 fino ad G20 dove inserisco dei dati. nella colonna F3 inserisco dei nomi di fornitori mentre nella cella a fianco quindi G3 inserisco l'ordine del cliente. questa serie di campi sono copiati e incollati almeno un migliaio di volte, quindi avrò F3-G3 / F23-G23 / F43-G43 e cosi via fino all'ultima fila di di campi A20000 G20020 dovre avrò l'ultimo campo dove vado ad inserire il mio fornitore e relativo ordine F20003-G20003
    ho creato un altro foglio che si chiama RICERCA FORNITORI dove nella cella F9 inserisco il fornitore da cercare ed attraverso la formula ricerca CERCA.VERTICALE (=SE.ERRORE(CERCA.VERT($F$9;LOTTI!F3:G3;2;FALSO);"")) che ho scritto nella colonna H trovo l'ordine.
    fin qui tutto bene, il fatto è che questa formula la devo fare per 1000 volte nel foglio RICERCA FORNITORI perchè il mio scopo e quello di avere un riassunto di tutti gli ordini di un certo cliente, poi attraverso la formula (=H1&" "&H2&" "&H3&" ") ecc ecc mi faccio il riepilogo.
    La domanda è: esiste una macro che mi faccia tutto questo in automatico



  • di alfrimpa data: 03/04/2017 12:22:19

    Ciao Diego.

    Le macro non esistono di per sè ma bisogna scriverle.

    Per facilitare il compito dovresti allegare un file di esempio con dati ed il risultato desiderato inserito a mano.

    Alfredo





  • di patel data: 03/04/2017 12:22:36

    le macro non "esistono", devono essere create su misura, allega un piccolo file di esempio con i dati ed il risultato desiderato





  • di Diego (utente non iscritto) data: 03/04/2017 16:58:37

    Grazie per la risposta ultra veloce, io purtroppo non conosco proprio le funzioni macro spero che possiate darmi una mano. nella scheda RICERCA FORNITORI ho inserito delle info aggiuntive. inoltre volevo chiedere, nella scheda LOTTI troverete un modulo ( A1-G20 mi serve per i miei dati) che nell'originale ho copiato circa mille volte. Il file e diventato un po lento (ci sono anche delle formattazioni condizionali che ho dovuto togliere perche il file era troppo pesante) secondo voi e perche ho ricopiato tante volte la serie di campi oppure perche le formattazioni devono essere fatte con macro ?
    Vi ringrazio anticipatamente per le vostre risposte
    Diego



  • di patel data: 03/04/2017 18:52:42

    non ci ho capito niente





  • di alfrimpa data: 03/04/2017 18:55:35

    Neanch'io





  • di Diego (utente non iscritto) data: 04/04/2017 09:31:00

    Buongiorno, grazie per la veloce risposta non pensavo di aver fatto tanta confusione nell'esprimere questa domanda.
    Provo a spiegarmi meglio.
    Nel file allegato ci sono piu schede ma quelle interessate sono foglio LOTTI e l'altra RICERCA FORNITORI
    Io vorrei inserire nel foglio RICERCA FORNITORI una macro che mi restituisca dei valori, tali valori si trovano nel foglio LOTTI e sono sempre univoci (vanno da 1 a 1000) questi valori univoci che la macro mi deve restituire si trovano nelle celle G3-G23-G43-G63-G83 e cosi via fino a G20023.
    l'indice di ricerca per restituire i valori desiderati si trovano a fianco delle celle appena descritte e sono le celle F3-F23-F43-F63-F83 e cosi via fino a F20023
    Nelle celle della colonna F inserisco circa 30 fornitori, diciamo che si chiamano A-B-C-D-E-F-G- ecc ecc e questi possono essere ripetitivi.
    la macro dovrebbe restituirmi (NON IMPORTA IN QUALI CELLE) nel foglio RICERCA FORNITORI dei risultati simili a questi
    Fornitore Codice
    A 3-7-21-34-68-96
    e altri codici se ce ne sono per questo fornitore
    Fornitore Codice
    B 9-11-24-35-69-98
    e altri codici se ce ne sono per questo fornitore



  • di Diego (utente non iscritto) data: 04/04/2017 09:32:58

    Scusate mi ero dimenticato di ringraziarvi ancora per l'aiuto
    Diego



  • di patel data: 04/04/2017 10:39:33

    credo che dovresti semplificare il problema in modo da darci un file più semplice per farci capire meglio, poi una volta visto il procedimento puoi adeguarlo al file originale





  • di Diego (utente non iscritto) data: 04/04/2017 13:39:56

    Buongiorno, ho allegato un nuovo file molto semplicativo dove nel foglio RICERCA FORNITORE ho inserito le istruzioni.

    Potete dirmi secondo la vostra esperienza se:
    le tabelle lotti sono molte e vedo che il pc rallenta e colpa delle varie formattazione condizionali ? O dalle troppe formule ?



  • di alfrimpa data: 04/04/2017 14:50:50

    Ciao Diego

    Prova con la function che vedi sotto da inserire in un modulo standard

    e sul foglio RICERCA FORNITORI in una cella scrivi

    =Lotti(F9)

    Alfredo

     
    Function Lotti(a)
    Dim rng As Range
    Dim cel As Range
    Dim val As String
    Dim stringa As String
    stringa = "Fornitore" & " " & UCase(a) & " " & "Lotti"
    Set rng = Worksheets("LOTTI").Range("f1:f130")
    For Each cel In rng
        If cel.Value = a Then
            val = val & ", " & cel.Offset(0, 1).Value
        End If
    Next cel
    Lotti = stringa & val
    End Function
    






  • di Diego (utente non iscritto) data: 04/04/2017 18:22:33

    Grazie per la cortese risposta.
    In pratica dovrei registrare una nuova macro che si chiamera Macro1 ()
    poi l'apro e modifico copiando quello che hai postato ?



  • di Diego (utente non iscritto) data: 04/04/2017 18:24:33

    Cosi ?
    Sub Macro1()
    Function Lotti(a)
    Dim rng As Range
    Dim cel As Range
    Dim val As String
    Dim stringa As String
    stringa = "Fornitore" & " " & UCase(a) & " " & "Lotti"
    Set rng = Worksheets("LOTTI").Range("f1:f130")
    For Each cel In rng
    If cel.Value = a Then
    val = val & ", " & cel.Offset(0, 1).Value
    End If
    Next cel
    Lotti = stringa & val
    End Function

    Ho provato ma la prima riga si colora di giallo e mi da errore (previsto end sub)



  • di Diego (utente non iscritto) data: 04/04/2017 18:29:00

    Ancora buona sera, scusate ma proprio non ci capisco nulla
    ho provato a scaricare l'allegato ed ho visto che all'interno ce una macro ma non credo funzioni o meglio non so come farla funzionare
    Vi ringrazio anticipatamente per l'aiuto
    Diego



  • di alfrimpa data: 04/04/2017 19:42:31

    Diego ho allegato il file (Diego.xlsm) con la funzione inserita.

    Alfredo





  • di Diego (utente non iscritto) data: 04/04/2017 21:16:45

    Da mal di testa !!!!
    Grandissimo Alfredo ti ringrazio molto ho gia copiato su modulo la tua macro e funziona benissimo inoltre ho capito quale parti modificare per cambiare colonna e cella di ricerca.
    Molte grazie.
    Diego



  • di alfrimpa data: 04/04/2017 22:21:15

    Diego se usi la function che vedi sotto questa funzionerà quale che sia la lunghezza della colonna F del foglio LOTTI.

    Alfredo
     
    Function Lotti(a)
    Dim rng As Range
    Dim cel As Range
    Dim val As String
    Dim stringa As String
    Dim ur As Long
    ur = Worksheets("LOTTI").Cells(Rows.Count, "F").End(xlUp).Row
    stringa = "Fornitore" & " " & UCase(a) & " " & "Lotti"
    Set rng = Worksheets("LOTTI").Range("f1:f" & ur)
    For Each cel In rng
        If cel.Value = a Then
            val = val & ", " & cel.Offset(0, 1).Value
        End If
    Next cel
    Lotti = stringa & val
    End Function






  • di Diego (utente non iscritto) data: 05/04/2017 09:25:01

    Grazie Alfredo, ma va bene cosi altrimenti mi processa tutta la colonna f e arriva fino ad un milione i righe.



  • di alfrimpa data: 05/04/2017 09:57:07

    No arriva fino all'ultima cella piena della colonna F.

    Avevo modificato il codice perché se per caso avessi avuto lotti oltre la riga 130 la funzione non te li avrebbe presi poi decidi tu.

    Alfredo