Creazione tabella con macro

di il
11 risposte

Creazione tabella con macro

Buongiorno a tutti!
Sono impantanata in un problema che fatico a risolvere....
Ho una tabella con riportato nella colonna A dei codici e nella colonna B i clienti che utilizzano tali codici. Tali codici si ripetono tante volte quanti sono i clienti che li utilizzano.
Quindi dovrei realizzare una tabella dove ad ogni codice mi ritrovo nelle colonne successive tutti i clienti che lo utilizzano.

Ho cercato di creare tale tabella utilizzando i subtotali, poi con la tabella pivot...ma niente di buono. Allora ho tentato di realizzare una macro, visto che deve essere fatto mensilmente mi è sembrata una soluzione ottimale...... Ma essendo autodidatta in materia di macro il risultato è stato penoso: la macro entrava in un ciclo a cui ponevo fine solo staccando la spina....

C'è qualcuno che mi può aiutare?
Grazie mille in anticipo
Buona giornata
Betty

11 Risposte

  • Re: Creazione tabella con macro

    Ciao. I codici nella col A sono ordinati o mischiati? Se non lo sono hai la possibilità di ordinarli? Hai un num max nomi associabili a ciascun codice?
  • Re: Creazione tabella con macro

    Ciao! I codici della colonna A sono alfanumerici ed ordinati.
    Al momento ad ogni codice può essere abbinato fino a un massimo di 5 clienti.
  • Re: Creazione tabella con macro

    Ok. Allora potresti sfruttare la concatenazione di stringhe e il cerca verticale.
    1) crea una colonna per un progressivo numerico (da 1 a 5) da far associare a ciascun codice elencato... Quando cambia codice riparte da 1... Ti servirà la formula SE
    2) antepone alla colonna del codice una colonna da destinare alla concatenazione codice&progressivo
    3) in un altro foglio con cerca verticale, cerca il codice concatenato e fatti restituire il cliente nella posizione corrispondente... Prog1 prima colonna, e poi 2 colonna successiva ecc... Se non riesci vediamo come intervenire...
  • Re: Creazione tabella con macro

    Ho seguito passo dopo passo le tue indicazioni e mi sono trovata completando con successo il punto 1e2. Poi ho creato il foglio2 dove ho impostato nella prima colonna il codice base su cui far perno nelle colonne successive col cerca verticale e li ho iniziato a perdermi.....

    Purtroppo non riesco a passarti una copia del file su cui ho lavorato ieri, mi trovo in vacanza e non ho con me il mio pc....
    Ci riproverò al mio rientro ma temo che dovrò chiederti un tuo intervento....
    Grazie mille per la tua disponibilità
    Buona giornata
  • Re: Creazione tabella con macro

    NIENTE!!!!!
    Il passaggio 3 non riesco a farlo....creo una tabella identica a quella di partenza....


    Volevo allegare una estrapolazione della tabella... ma non riesco. L'estensione xls mi da errore.
  • Re: Creazione tabella con macro

    Purtroppo non riesco a venirne a capo.
    Ho ristrutturato la tabella dove imputare il cerca verticale ma ho ottenuto una tabella dove: nella colonna A ho messo il cod&prog e nelle successive colonne, col cerca verticale mi sono fatta restituire il cliente. Così facendo la tabella risulta identica a quella d'origine
  • Re: Creazione tabella con macro

    Se non alleghi il foglio con la macro (anche se sbagliata o incompleta) mi sa che non è semplice dirti dove sbagli.
  • Re: Creazione tabella con macro

    Buongiorno a tutti
    Ma sbaglio o la Funzione CERCA.VERT per "funzionare" su altro Foglio necessita di un Nome definito?

    Ciao,
    Mario


    PS - No, sbaglio io. Ho fatto confusione con altra Funzione.
    Scusate l'errata intromissione.
    Ciao,
    Mario
  • Re: Creazione tabella con macro

    gibra ha scritto:


    Se non alleghi il foglio con la macro (anche se sbagliata o incompleta) mi sa che non è semplice dirti dove sbagli.
    Buongiorno! Allegherei con piacere il file dove sto lavorando ma mi esce un messaggio in cui mi si dice che l'estensione .xls del file è errata.
    Ho cercato nel forum indicazioni in merito ma non le ho trovate.
    Se mi potesse dare indicazioni in merito, sarei ben felice di allegare il file.

    Buona giornata
  • Re: Creazione tabella con macro

    Ciao a tutti.
    @Fenice76: prova a zippare il file prima di caricarlo.
    Comunque, se ho interpretato bene il quesito, ti servirebbe una macro simile a
    Sub TabellaElenco()
    Dim clCod As New Collection
    Dim rnTab As Range, cella As Range
    Dim R As Long, I As Long, J As Long, C As Long
        R = Range("A" & Rows.Count).End(xlUp).Row
        Set rnTab = Range("A1:A" & R)
        For I = 1 To R
            On Error Resume Next
            clCod.Add Range("A" & I).Value, CStr(Range("A" & I).Value) 'crea un elenco univoco dei codici
            On Error GoTo 0
        Next I
        For I = 1 To clCod.Count
            Cells(I, "F") = clCod(I)
            C = 7 'parte da col. G
            For J = 1 To R
                If Cells(J, 1) = clCod(I) Then
                    Cells(I, C) = Cells(J, 2)
                    C = C + 1
                End If
            Next J
        Next I
    End Sub
    In questa macro, viene prima creato (per mezzo di una collection) un elenco univoco che verrà riportato nella tabella risultante.
    Dopo, viene scorsa la collection e, per ogni elemento, si scorre la tabella d'origine e i corrispondenti valori vengono scritti nelle celle a destra.
    La macro lavora su una tabella nelle colonne A (codici) e B (clienti); i risultati vengono scritti a partire da col. F.
  • Re: Creazione tabella con macro

    Purtroppo non riesco ad allegare la tabella...
    Di seguito riporto uno stralcio della tabella... ho ricopiato la macro ma sembra non funzionare si interrompe al primo passaggio... ho creato la tabella origine come di seguito riportato ma nulla....

    Codice Id. Enti
    BORABS00400100L1CO023 3208
    BORABS00400100L1CO023 888888
    BORABS00430050L2CO023 1925
    BORABS00430050L2CO023 888888
    BORABS00810050L1CO030 238
    BORABSB0070100E1CO015 888888
    BORABSB0110050B1CO027 2404
    BORABSB0110050E1CO023 247
    BORABSB0110050E1CO023 888888
    BORABSB0110050E1CO030 247
    BORABSB0110050E1CO035 247
    BORABSB0110050E1CO035 888888
    BORABSB0110050L1CO019 563
    BORABSB0110050L1CO019 888888
    BORABSB0110050L1CO023 888888
    BORABSB0110050L1CO030 139
    BORABSB0110050L1CO030 888888
    BORABSB0110100A1CO015 888888
Devi accedere o registrarti per scrivere nel forum
11 risposte