Risultati da 1 a 9 di 9

Discussione: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2



  1. #1
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Buongiorno a tutti, sono nuova e pure molto inesperta per quanto riguarda VBA, ho un problema che non riesco a risolvere, nemmeno prendendo spunto da altri quesiti similari, spero che mi possiate aiutare. Ho un file strutturato come quello in esempio che allego, sul Foglio 1 il campo B2 è un campo digitabile dall'utente e ogni qualvolta che viene digitato un codice cliente, lo stesso viene ricercato nel Foglio 2 colonna A e restituisce i valori di tutti i campi relativi alle righe 4-5-6 delle colonne B-C-D-E-F di Foglio 1.Vorrei che digitando in Foglio 1 una nuova commissione in B7-C7-D7-E7-F7 o un nuovo importo massimo in B8-C8-D8-E8-F8, venisse ricercato il codice cliente in Foglio 2 colonna A e venissero sovrascritti i valori digitati nelle colonne E-F (se digito nuovi dati in B7-C7 di Foglio 1), K-L, Q-R, W-X, AC-AD e che tali dati restassero storicizzati fintanto che sempre sul medesimo codice cliente dovessi digitare una nuova commissione che dovrà sovrascrivere il precedente dato.Spero proprio mi possiate dare una mano perché non so come risolvere il problema se non rendere visualizzabile il Foglio 2 e permettere di digitare direttamente la nuova commissione sulle relative colonne, ma vorrei nascondere il foglio.Grazie mille in anticipo Daniela
    File Allegati File Allegati

  2. #2
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    627
    Likes dati
    155

    Re: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Ciao Daniela
    guarda il file allegato; dovrebbe fare quello che hai chiesto. Ho utilizzato questo codice inserito nel modulo di classe di Foglio1: basta inserire la/le variazione/i e selezionare REGISTRA VARIAZIONI
    Codice: 
    Option Explicit
    
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i As Integer, var1(1 To 5) As Variant, var2(1 To 5) As Variant
    Dim vr As Integer, risp As Integer, rg As Long
    If Not Intersect(Target, Range("G7:G8")) Is Nothing Then
        For i = 1 To 5
            var1(i) = Cells(7, i + 1)
            var2(i) = Cells(8, i + 1)
        Next i
        For i = 1 To 5
            If var1(i) = 0 Then vr = vr + 1
            If var2(i) = 0 Then vr = vr + 1
        Next i
        If vr = 10 Then
            MsgBox "Nessuna variazione da apportare", 0, "Avviso"
            Exit Sub
        Else
            risp = MsgBox("Le variazioni saranno sovrascritte." & vbLf & _
                "Vuoi continuare?", 4 + 32, "Domanda")
            If risp = 7 Then Exit Sub 'risposta no
            'risposta si, cerca la riga codice cliente
            With Sheets(2)
            rg = Application.WorksheetFunction.Match(Cells(2, 2), .Range("A2:A30"), 0) + 1
            If var1(1) <> "" Then .Cells(rg, 5) = var1(1)
            If var2(1) <> "" Then .Cells(rg, 6) = var2(1)
            If var1(2) <> "" Then .Cells(rg, 11) = var1(2)
            If var2(2) <> "" Then .Cells(rg, 12) = var2(2)
            If var1(3) <> "" Then .Cells(rg, 17) = var1(3)
            If var2(3) <> "" Then .Cells(rg, 18) = var2(3)
            If var1(4) <> "" Then .Cells(rg, 23) = var1(4)
            If var2(4) <> "" Then .Cells(rg, 24) = var2(4)
            If var1(5) <> "" Then .Cells(rg, 29) = var1(5)
            If var2(5) <> "" Then .Cells(rg, 30) = var2(5)
            End With
            Range("B7:F8").ClearContents
            MsgBox "Variazione registrata con successo."
        End If
    End If
    End Sub
    Tutta quella serie di If ... è dovuta al fatto che la struttura che hai dato al Foglio2 non si presta molto all'applicazione di un ciclo.


    Una domanda: Ma i dati che ti appariranno in Foglio1, nonostante le variazioni registrate, saranno sempre gli stessi o sbaglio?

    Fai sapere. Ciao,
    Mario
    File Allegati File Allegati

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Grazie mille Mario! Spero di riuscire a replicarlo sul file originale che è molto più lungo (mi scuso per non averlo scritto, ma mi è sfuggito) quindi il problema ora è capire come faccio a farlo su tutte le xxxx righe presenti, non posso scrivere infiniti "If", tra l'altro i file sono una decina e hanno righe variabili dai 400 in su, perdonami se non stata precisa.

  5. #4
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    627
    Likes dati
    155

    Post Re: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Ciao Daniela
    adattiamo la macro a qualunque sia il numero di righe impegnate. Non devi fare altro che sostituire queste righe:
    Codice: 
    With Sheets(2)
            rg = Application.WorksheetFunction.Match(Cells(2, 2), .Range("A2:A30"), 0) + 1
    con queste:
    Codice: 
    With Sheets(2)
            If Cells(4, 2) = "" Then Exit Sub 'evita il blocco nel caso in cui il codice-cliente digitato sia errato
            ur = .Cells(Rows.Count, 1).End(xlUp).Row 'conta il numero di righe impegnate nel Foglio2
            rg = Application.WorksheetFunction.Match(Cells(2, 2), .Range("A2:A" & ur), 0) + 1
    Ovviamente devi dimensionare la variabile ur. All'inizio, dopo rg as Long, aggiungi ", ur as long" senza i doppi apici ma, mi raccomando, con la virgola.

    Leggo che i "file sono una decina"!!!! Attenta a che siano impostati TUTTI e SEMPRE con i fogli posizionati allo stesso modo (Foglio1 per le variazioni, Foglio2 per le ricerche e registrazioni).

    Ciao,
    Mario

  6. I seguenti utenti hanno dato un "Like"


  7. #5
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0

    Re: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Ciao Daniela C'è Voluto un pochino di tempo perché con il mio lavoro si sa quando inizi e non sai quando finisci comunque penso di Aver risolto a pieno la tua richiesta , Dalle un occhiata e fammi sapere se vuoi Ciao da Maurizio
    (P.S) Ti Consiglio vivamente di Andare a vedere direttamente Help Facendo Semplicemente Click sulla Cella del Foglio 1 alla voce (Help)

    Link per Scaricare il Programma visto che è un pochino Pesantuccio :
    https://app.box.com/s/tg7odva1fjy4snzvpzwsgryi472nkyhr
    Buona Domenica

  8. #6
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Wow Maurizio, che meraviglia, ti ringrazio moltissimo, ma considerato che sia io che gli utenti a cui dovrò far utilizzare questo file hanno conoscenze basiche di Excel purtroppo non potrò utilizzare la tua soluzione, che però mi ha nuovamente fatto capire quante cose meravigliose si possono fare con Excel, grazie di cuore!

  9. #7
    L'avatar di Daniela
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    sondrio
    Messaggi
    49
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    15

    Re: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Grazie mille Mario, così funziona, questa soluzione mi ha aiutato a risolvere il mio problema e a imparare qualcosina di nuovo :-)

  10. #8
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0

    Re: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Caio Daniele ti ringrazio dei tuoi Complimenti ma ti consiglio di non prendere in Considerazione Quel programma , ma bensi questo :
    https://app.box.com/s/88rhhwbabkrkkewmzszb3rs2nsaok3ug
    In quanto in quel Programma mi ero dimenticati di Inserire una Piccola Chicca che non poteva mancare ad una Segretaria che lavora parecchio al Computer e cioè : (Data e Ora Corrente) poi vedi tu ciao e alla prossima.

  11. #9
    L'avatar di cianricc
    Clicca e Apri
    Data Registrazione
    Jan 2017
    Località
    grosotto (so)
    Età
    60
    Messaggi
    50
    Versione Office
    office 2010-16
    Likes ricevuti
    2
    Likes dati
    36

    Re: Come rilevare un dato inserito in Foglio 1 e storicizzarlo su Foglio 2

    Citazione Originariamente Scritto da A.Maurizio Visualizza Messaggio
    Caio Daniele ti ringrazio dei tuoi Complimenti ma ti consiglio di non prendere in Considerazione Quel programma , ma bensi questo :
    https://app.box.com/s/88rhhwbabkrkkewmzszb3rs2nsaok3ug
    In quanto in quel Programma mi ero dimenticati di Inserire una Piccola Chicca che non poteva mancare ad una Segretaria che lavora parecchio al Computer e cioè : (Data e Ora Corrente) poi vedi tu ciao e alla prossima.
    ciao
    capisco che è passato un anno ... ma sarei interessato a vedere i tuoi due files: solo che i link sono vuoti.
    puoi farmeli avere?
    grazie

Discussioni Simili

  1. [Risolto] Rilevare Evento SheetChange quando la cella con Orario nel foglio che si aggiorna via WEB
    Di ginofamilio nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 15/03/17, 17:32
  2. [Risolto] Copiare Dato da un foglio ad un altro con una determinata condizione
    Di Saku90 nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 18/01/17, 10:43
  3. [Risolto] Copia celle da foglio 1 a foglio 2 in base alla stringa data in input
    Di Lety88 nel forum Domande su Excel VBA e MACRO
    Risposte: 25
    Ultimo Messaggio: 13/12/16, 09:31
  4. Ho inserito in un foglio di lavoro all'interno di righe già scritte
    Di Giovannino60 nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 26/10/16, 05:52
  5. Piano ferie - riportare dato cella su altro foglio
    Di sarasa482 nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 11/03/16, 06:12

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •