Macro 2



  • Macro 2
    di Gennaro (utente non iscritto) data: 03/11/2013 18:51:53

    Ciao a tutti,
    ho questa serie di dati, e ho bisogno che attraverso un tasto mi faccia una tabella con l'elenco "analisi dei clienti" in altro a sinistra in rosso, con la prima data che c'è per ogni cliente, in ordine dalla data piu vecchia in alto, alla data al futuro in basso.
    Grazie a chi puo darmi una mano.


  • Macro 2
    di Gennaro (utente non iscritto) data: 04/11/2013 07:34:32

    Buon giorno a tutti,
    novità?
    Grazie e saluti.



  • di Mauro data: 04/11/2013 08:43:54

    Vi chiedo di dettagliare meglio i titoli delle discussioni. "Macro2" non vuol dire niente. Grazie



  • di Vecchio Frac data: 04/11/2013 11:11:35

    Aggiungo anche che magari uno sforzo da parte di Gennaro per produrre un risultato sarebbe apprezzabile, senza aspettare le "novità" da altri.




  • Macro 2
    di Gennaro (utente non iscritto) data: 04/11/2013 12:52:06

    Ciao a tutti,
    purtroppo non conosco quasi per nulla il Vba, per questo chiedo aiuto.
    Grazie mille e saluti.


  • Macro 2
    di Gennaro (utente non iscritto) data: 04/11/2013 18:55:58

    Buon sera a tutti,
    novità?
    Grazie e saluti.



  • di totygno (utente non iscritto) data: 04/11/2013 21:03:17

    Gent.le Gennaro... chiudendo un occhio, anz tutti e due, sul fatto che non sai quasi nulla di VBA, anche la tua descrizione è a dir poco nebulosa... ^_^ forse ti basterebbe utilizzare dei firltri...???
    Ciao


  • Macro 2
    di Gennaro (utente non iscritto) data: 05/11/2013 07:12:26

    Ciao,
    no i filtri non vanno bene, perche non prende anche il nominativi del cliente.
    Grazie e saluti.



  • di sgmmar data: 05/11/2013 08:19:08

    Ciao Gennaro,
    ho visto il tuo file:
    per me, non è di facile gestione, dovessi utilizzarlo io cambierei almeno la disposizione dei dati.
    Creane una copia e lascia in un foglio i dati di uno solo dei clienti, ed in un altro foglio i dati come vorresti che fossero.

    allega la nuova copia

    Poi si vedrà come si deve affrontare il "problema".
    Ciao



  • Macro 2
    di Gennaro (utente non iscritto) data: 05/11/2013 12:56:18

    Ciao,
    ho allegato un secondo file con un nuovo foglio di quello che vorrei ottenere io.
    Spero di essere stato piu chiaro.
    Grazie e saluti.



  • di sgmmar data: 05/11/2013 13:51:17

    Ciao Gennaro,
    nel foglio statistica alla riga nome_cliente, nella cella della colonna 1 sono presenti TRE DATI:

    etichetta ANALISI CLIENTE:
    nome_cliente BORRIELLO ROSA E ANTONIO (lunghezza dato variabile)
    importo ( €. 7,857.83) (lunghezza dato variabile)

    Come estrai un dato di lunghezza variabile (nome cliente), da un dato anch'esso di lunghezza variabile?
    che ne dici di aiutare chi vorrebbe/potrebbe aiutarti sistemando meglio i dati dal foglio di origine(Statistiche)???

    Ciao


  • Macro 2
    di Gennaro (utente non iscritto) data: 05/11/2013 13:53:56

    Ciao,
    quello che è un foglio che mi inviano. e io non vorrei scorrerlo tutto per ottenere manualmente quello che ho fatto nell altro foglio, ma che ci fosse un tasto che realizzasse cio.
    Grazie e saluti.



  • di gaetanopr data: 05/11/2013 14:33:05

    Ciao prova questa macro, mi raccomando però la struttura del file deve essere come da esempio
    Allego pure file
     
    Option Explicit
    Sub FindNext()
    Dim Sh1 As Worksheet
    Dim Sh2 As Worksheet, Rng As Range, firstAddress As String
    Dim LastRow As Long, LastRow2 As Long, Riga As Long
    Dim Lista As Range, x As Integer, ID As String
    
    Set Sh1 = Sheets("Statistiche")
    Set Sh2 = Sheets("Riepilogo")
    LastRow = Sh1.Cells(Rows.Count, 1).End(xlUp).Row
    LastRow2 = Sh2.Cells(Rows.Count, 1).End(xlUp).Row
    Sh2.Range("A2:B" & LastRow2).ClearContents
    
    ID = "ANALISI CLIENTE: *"
    Riga = 2
    Set Lista = Sh1.Range("A1:A" & LastRow)
    Set Rng = Lista.Find(What:=ID, LookAt:=xlWhole, LookIn:=xlValues)
      If Not Rng Is Nothing Then
        firstAddress = Rng.Address
        Do
          x = InStr(Rng.Value, "(") - 1
          Sh2.Cells(Riga, 1).Value = Mid(Rng.Value, 19, Len(Mid(Rng.Value, 1, x)) - 19)
          Sh2.Cells(Riga, 2).Value = Rng.Offset(4, 11).Value
          Riga = Riga + 1
          Set Rng = Lista.FindNext(Rng)
        Loop While Not Rng Is Nothing And Rng.Address <> firstAddress
      End If
    
    LastRow2 = Sh2.Cells(Rows.Count, 1).End(xlUp).Row
    
    Sh2.Range("A2:B" & LastRow2).Sort Key1:=Sh2.Range("B2"), Order1:=xlAscending, Header:=xlNo
     
    Set Sh1 = Nothing
    Set Sh2 = Nothing
    Set Lista = Nothing
    End Sub



  • di gaetanopr data: 05/11/2013 14:39:10

    Dimenticavo!!! ho rinominato il secondo foglio "Riepilogo"

    cit>>non vorrei scorrerlo tutto per ottenere manualmente quello che ho fatto nell altro foglio, ma che ci fosse un tasto che realizzasse cio.

    il tasto è FindNext


  • Macro 2
    di Gennaro (utente non iscritto) data: 05/11/2013 14:46:27

    Ciao Gaetanopr,
    si è quello che volevo, ma una domanda la struttura rimane sempre la stessa, ma i dati cambiano, funzionerà lo stesso?
    Grazie e saluti.



  • di gaetanopr data: 05/11/2013 14:53:04

    cit>>la struttura rimane sempre la stessa, ma i dati cambiano, funzionerà lo stesso?
    Che i dati debbano cambiare è ovvio altrimenti non avrebbe senso, per struttura intendo che i nominativi in rosso si trovino sempre nella colonna A siano preceduti dalla scritta "ANALISI CLIENTE: " che alla fine vi sia l'importo tra parentesi tonde, che la data della colonna L sia sempre 4 righe sotto la scritta in rosso
    Ad ogni variare di questo bisogna cambiare qualcosina, sarebbero delle fesserie ma bisogna avere un minimo di conoscenza di Vba, per questo quando si richiede una macro si dovrebbe conoscere l'indispensabile per poter poi manutenere il file nel tempo.

    Ciao


  • Macro 2
    di Gennaro (utente non iscritto) data: 05/11/2013 15:40:06

    Ciao,
    i nominativi in rosso si troveranno sempre nella colonna A e saranno sempre preceduti dalla scritta "ANALISI CLIENTE: " che alla fine vi sia l'importo tra parentesi tonde, che la data della colonna L sia sempre 4 righe sotto la scritta in rosso, questo si, ma cambieranno le date, e anche la disposizione dei clienti, e le quantita dei vari clienti: faccio delle prove e ti faccio sapere.
    Grazie mille e saluti.


  • Macro 2
    di Gennaro (utente non iscritto) data: 06/11/2013 13:27:02

    Ciao Gaetanopr,
    ho inserito altri dati e sembra funzionare perfettamente. Oggi ne dovrei aggiungere degli altri e ti faccio sapere.
    Grazie e saluti.


  • Macro 2
    di Gennaro (utente non iscritto) data: 07/11/2013 13:28:57

    Ciao,
    funziona con altri dati, quindi penso che andrà sempre bene.
    Grazie mille e saluti.


  • Macro 2
    di Gennaro (utente non iscritto) data: 09/11/2013 14:17:36

    Ciao Gaetanopr,
    è possibile avere i nominativi dei clienti con la stessa formattazione dell origine, e cioè in minuscolo.
    Grazie e saluti.


  • Macro 2
    di Gennaro (utente non iscritto) data: 10/11/2013 09:33:04

    Ciao Gaetanopr,
    news?
    Grazie e saluti.



  • di gaetanopr data: 10/11/2013 22:50:20

    cit>>è possibile avere i nominativi dei clienti con la stessa formattazione dell origine, e cioè in minuscolo.
    Nel foglio di origine non sono in minuscolo, comunque, per averli in minuscolo cambia questa riga di codice
     
    Sh2.Cells(Riga, 1).Value = LCase(Mid(Rng.Value, 19, Len(Mid(Rng.Value, 1, x)) - 19))


  • Macro 2
    di Gennaro (utente non iscritto) data: 11/11/2013 07:48:45

    Ciao Gaetanopr,
    si hai ragione la formattazione originale è tutto in maiuscolo. E' possibile averlo in minuscolo, ma con le iniziale di ogni parola in maiuscolo.
    Grazie e saluti.



  • di gaetanopr data: 11/11/2013 09:20:14

    Cambia in questo modo
     
     Sh2.Cells(Riga, 1).Value = StrConv((Mid(Rng.Value, 19, Len(Mid(Rng.Value, 1, x)) - 19)), vbProperCase)


  • Macro 2
    di Gennaro (utente non iscritto) data: 11/11/2013 13:54:33

    Ciao,
    funziona perfettamente.
    Grazie mille ancora e saluti.