Risultati da 1 a 19 di 19

Discussione: Registro Visite



  1. #1
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133

    Registro Visite

    Buona sera ed un felice e sereno Natale a tutti.
    Ho un problema da risolvere e chiedo cortesemente il vostro aiuto, certo che non mancherà.
    Ho una cartella di lavoro in cui devo registrare delle visite.
    Il primo foglio e quello dei dati di imput; nel secondo "Visite eseguite" vengono registrate le visite con scadenza > di 30 giorni;
    nel terzo foglio "visite da effettuare" vengono registrate le visite con scadenza <= a 30 giorni;
    nel quarto foglio vengono archiviate tutte le visite effettuate.
    Io ho preparato una bozza con macro e formule molto grezza, vorrei con le vostre competenze essere aiutato a realizzarla nel migliore dei modi.
    Allego il file e cordialmente saluto.
    File Allegati File Allegati

  2. #2
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Buona sera, vi chiedo scusa perché sarò stato poco chiaro, spero con questa di aggiungere qualche chiarimento in più.
    Allego il file riveduto e corretto con situazione iniziale "Archivio Visite" e situazione finale "Visite da Effettuare" e "Visite Effettuate.
    Cordiali saluti.
    File Allegati File Allegati

  3. #3
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da pkrome59 Visualizza Messaggio
    Buona sera, vi chiedo scusa perché sarò stato poco chiaro, spero con questa di aggiungere qualche chiarimento in più.
    Allego il file riveduto e corretto con situazione iniziale "Archivio Visite" e situazione finale "Visite da Effettuare" e "Visite Effettuate.
    Cordiali saluti.
    scusa Krome ma i dati di input dove sono? è la scheda? ma la data della visita è vecchia !!!

    ascolta per non dover fare il lavoro e per capire meglio nell'allegato puoi mettere un paio di dati di input visita effettuata e visita da effettuare ed evidenzi i vari valori magari in rosso per capire come deve essere il giro ed in particolare l'input

    ciao aspetto notizie

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  4. #4
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da pkrome59 Visualizza Messaggio
    Buona sera, vi chiedo scusa perché sarò stato poco chiaro, spero con questa di aggiungere qualche chiarimento in più.
    Allego il file riveduto e corretto con situazione iniziale "Archivio Visite" e situazione finale "Visite da Effettuare" e "Visite Effettuate.
    Cordiali saluti.
    Visto che non ti sei fatto vivo, spero di aver capito giusto guarda questo file e dimmi se ti va bene.

    Ciao

    Codice: 
    Sub Registra_Visite()
    
    Dim uriga, uriga1 As Long
    Dim wsh, wsh1, wsh2 As Worksheet
    
    
    Application.ScreenUpdating = False
    
    
    Set wsh = ThisWorkbook.Worksheets("Scheda")
    Set wsh1 = ThisWorkbook.Worksheets("Archivio visite")
    
    
    uriga = wsh1.Range("A" & Rows.Count).End(xlUp).Row + 1
    
    
    wsh.Range("B7").copy
    wsh1.Range("D" & uriga).PasteSpecial Paste:=xlPasteValues
    wsh1.Range("A" & uriga).Value = wsh.Range("F7").Value
    wsh1.Range("B" & uriga).Value = wsh.Range("E13").Value
    wsh1.Range("C" & uriga).Value = wsh.Range("E11").Value
    wsh1.Range("E" & uriga).Value = wsh.Range("B13").Value
    wsh1.Range("F" & uriga).Value = wsh.Range("A16").Value
    wsh1.Range("G" & uriga).Value = wsh.Range("E16").Value
    wsh1.Range("H" & uriga).Value = wsh.Range("F16").Value
    wsh1.Range("A" & uriga & ":H" & uriga).copy
    wsh1.Range("A" & uriga).PasteSpecial Paste:=xlPasteValues
    
    
    If wsh1.Range("I" & uriga).Value > 30 Then
        Set wsh2 = ThisWorkbook.Worksheets("Visite Effettuate")
        uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
        wsh1.Range("A" & uriga & ":I" & uriga).copy
        wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
    ElseIf wsh1.Range("I" & uriga).Value < 30 Or wsh1.Range("I" & uriga).Value = 30 Then
        Set wsh2 = ThisWorkbook.Worksheets("Visite da Effettuare")
        uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
        wsh1.Range("A" & uriga & ":I" & uriga).copy
        wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
    End If
    Set wsh = Nothing
    Set wsh1 = Nothing
    Set wsh2 = Nothing
    Application.ScreenUpdating = True
    
    
    End Sub
    File Allegati File Allegati

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  5. I seguenti utenti hanno dato un "Like"

    ges

  6. #5
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Baloon_50, sei un grande, ai intuito tutto ciò che si potrebbe intuire, funziona bene, però approfittando della tua disponibilità e della tua pazienza ti chiedo un ultimo intervento per raggiungere il mio scopo.
    I dati che registro di volta in volta in "Archivio Visite", in "visite effettuate" devono andare ad occupare sempre la prima riga, facendo scalettare in giù quelli già presenti.
    I dati che registro in "Visite da Effettuare" <= a trenta giorni dalla data di scadenza della visita vengono estratti da "Archivio Visite" man mano che scorrono i giorni ( data della scadenza della visita - data corrente "Oggi()") con l'utilizzo di alcune formule.
    Di nuovo grazie per la tempestività e per la tua disponibilità e colgo l'occasione per porgerti un felice e sereno Natale a te e a tutti i tuoi cari.

  7. #6
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Baloon_50, cerco di essere un po' più chiaro aggiungendo altre informazioni.
    Le visite vanno registrate tutte in "Archivio Visite" che rappresenta l'archivio generale.
    Dalla scheda "Archivio Visite" vengono estrapolati i dati rispetto ai giorni dalla scadenza delle visite, che se >30 andranno archiviati in "Visite Effettuate"; se <=30 andranno archiviati in "Visite da Effettuare".
    Inoltre i dati successivamente archiviati in "Archivio Visite" devono essere inseriti sempre nella prima riga, i dati in "Visite Effettuate" e in "Visite da Effettuare" devono aggiornarsi in ordine crescente dalla prima riga in giù (dal più piccolo al più grande) rispetto ai giorni dalla scadenza.
    Fiducioso ti porgo cordiali saluti.

  8. #7
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da pkrome59 Visualizza Messaggio
    Baloon_50, cerco di essere un po' più chiaro aggiungendo altre informazioni.
    Le visite vanno registrate tutte in "Archivio Visite" che rappresenta l'archivio generale.
    Dalla scheda "Archivio Visite" vengono estrapolati i dati rispetto ai giorni dalla scadenza delle visite, che se >30 andranno archiviati in "Visite Effettuate"; se <=30 andranno archiviati in "Visite da Effettuare".
    Inoltre i dati successivamente archiviati in "Archivio Visite" devono essere inseriti sempre nella prima riga, i dati in "Visite Effettuate" e in "Visite da Effettuare" devono aggiornarsi in ordine crescente dalla prima riga in giù (dal più piccolo al più grande) rispetto ai giorni dalla scadenza.
    Fiducioso ti porgo cordiali saluti.
    Ciao Pkrome c'è incongruenza tra quanto dici nel #5 :
    I dati che registro di volta in volta in "Archivio Visite", in "visite effettuate" devono andare ad occupare sempre la prima riga, facendo scalettare in giù quelli già presenti.
    e quanto asserisci poi nel #6 :
    i dati in "Visite Effettuate" e in "Visite da Effettuare" devono aggiornarsi in ordine crescente dalla prima riga in giù (dal più piccolo al più grande) rispetto ai giorni dalla scadenza.

    Ho già fatto le modifiche come nel #5 ma adesso mi hai stravolto tutto.
    Fammi sapere esattamente quello che vuoi.
    Adesso vado a nanna che domani è una giornata campale.
    Buonanotte e Buon Natale


    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  9. #8
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Ciao Baloon_50, mi scuso per la confusione che ti ho creato, ho quattro fogli di lavoro, il primo "Scheda" inserisco dei dati relative a persone che devono essere visitate; il foglio "Archivio Visite" rappresenta l'archivio generale dove vanno a confluire le visite eseguite da ogni agente, in modo tale da avere una serie di registrazioni in ordine d'inserimento ( Prot N: 10; 9; 8; 7; 6;.......;1)
    Nel foglio "Visite Effettuate" , registro le visite che ogni agente esegue periodicamente e che hanno data di scadenza aggiornata al momento presente > di 30 giorni, con formula: =[Giorni dalla Scadenza] - Oggi()>30;
    Nel foglio "Visite da effettuare", registro le visite che ogni agente esegue periodicamente e che hanno data di scadenza aggiornata al momento presente <= di 30 giorni, con formula: =[Giorni dalla Scadenza] - Oggi()<=30;
    Quando parlo di scadenza aggiornata al momento presente, intendo esprimendomi con formula: =[Giorni dalla Scadenza] - Oggi().
    Cordialmente Buon risveglio e un grande ciao.

  10. #9
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da pkrome59 Visualizza Messaggio
    Ciao Baloon_50, mi scuso per la confusione che ti ho creato, ho quattro fogli di lavoro, il primo "Scheda" inserisco dei dati relative a persone che devono essere visitate; il foglio "Archivio Visite" rappresenta l'archivio generale dove vanno a confluire le visite eseguite da ogni agente, in modo tale da avere una serie di registrazioni in ordine d'inserimento ( Prot N: 10; 9; 8; 7; 6;.......;1)
    Nel foglio "Visite Effettuate" , registro le visite che ogni agente esegue periodicamente e che hanno data di scadenza aggiornata al momento presente > di 30 giorni, con formula: =[Giorni dalla Scadenza] - Oggi()>30;
    Nel foglio "Visite da effettuare", registro le visite che ogni agente esegue periodicamente e che hanno data di scadenza aggiornata al momento presente <= di 30 giorni, con formula: =[Giorni dalla Scadenza] - Oggi()<=30;
    Quando parlo di scadenza aggiornata al momento presente, intendo esprimendomi con formula: =[Giorni dalla Scadenza] - Oggi().
    Cordialmente Buon risveglio e un grande ciao.
    D'accordo quanto hai scritto. E questo lo avevo capito; non mi hai risposto invece a quanto ti ho scritto io :

    "visite effettuate" devono andare ad occupare sempre la prima riga,
    "Visite Effettuate" e in "Visite da Effettuare" devono aggiornarsi in ordine crescente dalla prima riga in giù

    è quì il controsenso le visite effettuate vanno ad occupare la prima riga o vanno ad aggiornarsi in ordine crescente?

    ciao e ci aggiorniamo a domani. Adesso passo e chiudo.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  11. #10
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Buon risveglio e buona giornata Baloon_50 i dati ad ogni registrazione vanno archiviati nel seguente modo:
    In "
    visite effettuate" devono andare ad occupare sempre la prima riga,
    In "Visite Effettuate" e in "
    Visite da Effettuare" devono aggiornarsi in ordine crescente dalla prima riga in giù
    In "Archivio Visite" devono andare ad occupare sempre la prima riga, seguendo l'ordine d'inserimento.
    Abbi pazienza e grazie per la disponibilità.
    Ciao.

  12. #11
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da pkrome59 Visualizza Messaggio
    Buon risveglio e buona giornata Baloon_50 i dati ad ogni registrazione vanno archiviati nel seguente modo:
    In "
    visite effettuate" devono andare ad occupare sempre la prima riga,
    In "Visite Effettuate" e in "
    Visite da Effettuare" devono aggiornarsi in ordine crescente dalla prima riga in giù
    In "Archivio Visite" devono andare ad occupare sempre la prima riga, seguendo l'ordine d'inserimento.
    Abbi pazienza e grazie per la disponibilità.
    Ciao.
    Forse sono io che ho bevuto troppo e non capisco, tu hai scritto stamane e nel #6 ieri :

    In "visite effettuate" devono andare ad occupare sempre la prima riga,
    In "Visite Effettuate" e in "Visite da Effettuare" devono aggiornarsi in ordine crescente dalla prima riga in giù

    Ma come fanno in visite effettuate ad andare sempre in prima riga se poi mi dici che devono aggiornarsi in ordine crescente ?????!?!?!?!?!?!!?

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  13. #12
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Ciao Baloon_50, ai perfettamente ragione, Ti chiedo un ultimo sforzo, a me interessa principalmente che i dati di registrazione che inserisco dal foglio "scheda" vadano di volta in volta incollati nella terza riga del foglio "Archivio Visite", scalettando gli altri se esistono dalla terza riga in giù.
    In
    "Visite Effettuate" e in "Visite da Effettuare" i dati devono aggiornarsi in ordine crescente rispetto ai "Giorni dalla Scadenza" dalla prima riga in giù.
    Fiducioso ti ringrazio anticipatamente e cordialmente ti saluto.

  14. #13

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7124
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1298
    Ciao Baloon,
    scusa se mi permetto di modificare il tuo codice, mi serve per esercizio, anzi se ho sbagliato qualcosa ti prego di correggermi.

    Se ho capito bene la richiesta di Pkrome59 dovrebbe andare bene così:
    Codice: 
    Sub Registra_Visite()    
        Dim uriga, uriga1 As Long
        Dim wsh, wsh1, wsh2 As Worksheet
        
        Application.ScreenUpdating = False
        
        Set wsh = ThisWorkbook.Worksheets("Scheda")
        Set wsh1 = ThisWorkbook.Worksheets("Archivio visite")
        
        
        If wsh.Range("F7") = "//  //" Then
            MsgBox " Manca nome agente"
            wsh.Range("F7").Select
            Exit Sub
        ElseIf wsh.Range("B13") = "//  //" Then
            MsgBox " Manca la data della visita"
            wsh.Range("B13").Select
            Exit Sub
        ElseIf wsh.Range("A16") = "//  //" Then
            MsgBox " Non è stato indicato il tipo di visita"
            wsh.Range("A16").Select
            Exit Sub
        ElseIf wsh.Range("E16") = "//  //" Then
            MsgBox " Non è stato indicato l'esito della visita"
            wsh.Range("E16").Select
            Exit Sub
            
        Else
            
            wsh1.Range("A3").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
            
            wsh.Range("B7").Copy
            wsh1.Range("D3").PasteSpecial Paste:=xlPasteValues
            wsh1.Range("A3").Value = wsh.Range("F7").Value
            wsh1.Range("B3").Value = wsh.Range("E13").Value
            wsh1.Range("C3").Value = wsh.Range("E11").Value
            wsh1.Range("E3").Value = wsh.Range("B13").Value
            wsh1.Range("F3").Value = wsh.Range("A16").Value
            wsh1.Range("G3").Value = wsh.Range("E16").Value
            wsh1.Range("H3").Value = wsh.Range("F16").Value
            wsh1.Range("A3:H3").Copy
            wsh1.Range("A3").PasteSpecial Paste:=xlPasteValues
        End If
        
        uriga = wsh1.Range("A" & Rows.Count).End(xlUp).Row + 1
        
        If wsh1.Range("I" & uriga).Value > 30 Then
            Set wsh2 = ThisWorkbook.Worksheets("Visite Effettuate")
            uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
            wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
            wsh1.Range("I3").NumberFormat = "#,##0"
        ElseIf wsh1.Range("I" & uriga).Value < 30 Or wsh1.Range("I" & uriga).Value = 30 Then
            Set wsh2 = ThisWorkbook.Worksheets("Visite da Effettuare")
            uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
            wsh1.Range("A3:I3").Copy
            wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
            wsh1.Range("I3").NumberFormat = "#,##0"
        End If
        
        With wsh2
            
            ActiveWindow.ScrollRow = 1
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:= _
            .Range("I2:I1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        End With
        With wsh2.Sort
            .SetRange Range("A1:I1000")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        
        
        With wsh
            
            .Range("F7") = "//  //"
            .Range("L7") = ""
            .Range("L13") = ""
            .Range("B13") = "//  //"
            .Range("A16") = "//  //"
            .Range("E16") = "//  //"
            .Range("K7") = ""
            .Range("K13") = ""
        End With
        
        If wsh.Range("D3").Value = 0 Then
            wsh.Range("D1") = ""
        End If
        wsh.Range("I4").Select
        
        Set wsh = Nothing
        Set wsh1 = Nothing
        Set wsh2 = Nothing
        Application.ScreenUpdating = True
        MsgBox "Inserimento dati avvenuto con successo!"
    End Sub
    Ho inserito nella stessa sub la cancellazione dei dati nella maschera di inserimento, non credo anche abbia senso tenerli dopo averli inseriti.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  15. I seguenti utenti hanno dato un "Like"


  16. #14
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da ges Visualizza Messaggio
    Ciao Baloon,
    scusa se mi permetto di modificare il tuo codice, mi serve per esercizio, anzi se ho sbagliato qualcosa ti prego di correggermi.

    Se ho capito bene la richiesta di Pkrome59 dovrebbe andare bene così:
    Codice: 
    Sub Registra_Visite()    
        Dim uriga, uriga1 As Long
        Dim wsh, wsh1, wsh2 As Worksheet
        
        Application.ScreenUpdating = False
        
        Set wsh = ThisWorkbook.Worksheets("Scheda")
        Set wsh1 = ThisWorkbook.Worksheets("Archivio visite")
        
        
        If wsh.Range("F7") = "//  //" Then
            MsgBox " Manca nome agente"
            wsh.Range("F7").Select
            Exit Sub
        ElseIf wsh.Range("B13") = "//  //" Then
            MsgBox " Manca la data della visita"
            wsh.Range("B13").Select
            Exit Sub
        ElseIf wsh.Range("A16") = "//  //" Then
            MsgBox " Non è stato indicato il tipo di visita"
            wsh.Range("A16").Select
            Exit Sub
        ElseIf wsh.Range("E16") = "//  //" Then
            MsgBox " Non è stato indicato l'esito della visita"
            wsh.Range("E16").Select
            Exit Sub
            
        Else
            
            wsh1.Range("A3").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
            
            wsh.Range("B7").Copy
            wsh1.Range("D3").PasteSpecial Paste:=xlPasteValues
            wsh1.Range("A3").Value = wsh.Range("F7").Value
            wsh1.Range("B3").Value = wsh.Range("E13").Value
            wsh1.Range("C3").Value = wsh.Range("E11").Value
            wsh1.Range("E3").Value = wsh.Range("B13").Value
            wsh1.Range("F3").Value = wsh.Range("A16").Value
            wsh1.Range("G3").Value = wsh.Range("E16").Value
            wsh1.Range("H3").Value = wsh.Range("F16").Value
            wsh1.Range("A3:H3").Copy
            wsh1.Range("A3").PasteSpecial Paste:=xlPasteValues
        End If
        
        uriga = wsh1.Range("A" & Rows.Count).End(xlUp).Row + 1
        
        If wsh1.Range("I" & uriga).Value > 30 Then
            Set wsh2 = ThisWorkbook.Worksheets("Visite Effettuate")
            uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
            wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
            wsh1.Range("I3").NumberFormat = "#,##0"
        ElseIf wsh1.Range("I" & uriga).Value < 30 Or wsh1.Range("I" & uriga).Value = 30 Then
            Set wsh2 = ThisWorkbook.Worksheets("Visite da Effettuare")
            uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
            wsh1.Range("A3:I3").Copy
            wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
            wsh1.Range("I3").NumberFormat = "#,##0"
        End If
        
        With wsh2
            
            ActiveWindow.ScrollRow = 1
            .Sort.SortFields.Clear
            .Sort.SortFields.Add Key:= _
            .Range("I2:I1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        End With
        With wsh2.Sort
            .SetRange Range("A1:I1000")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        
        
        With wsh
            
            .Range("F7") = "//  //"
            .Range("L7") = ""
            .Range("L13") = ""
            .Range("B13") = "//  //"
            .Range("A16") = "//  //"
            .Range("E16") = "//  //"
            .Range("K7") = ""
            .Range("K13") = ""
        End With
        
        If wsh.Range("D3").Value = 0 Then
            wsh.Range("D1") = ""
        End If
        wsh.Range("I4").Select
        
        Set wsh = Nothing
        Set wsh1 = Nothing
        Set wsh2 = Nothing
        Application.ScreenUpdating = True
        MsgBox "Inserimento dati avvenuto con successo!"
    End Sub
    Ho inserito nella stessa sub la cancellazione dei dati nella maschera di inserimento, non credo anche abbia senso tenerli dopo averli inseriti.
    Ciao Ges nessun problema. Non ho fatto l'azzeramento perchè ho visto (modulo 5) che c'è una macro fatta, credo, da Pkrome che lo fa già.
    Comunque ho dovuto apportare delle modifiche a quello che hai modificato tu perchè il test è sulla riga 3 e non su uriga

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  17. #15
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da pkrome59 Visualizza Messaggio
    Buon risveglio e buona giornata Baloon_50 i dati ad ogni registrazione vanno archiviati nel seguente modo:
    In "
    visite effettuate" devono andare ad occupare sempre la prima riga,
    In "Visite Effettuate" e in "
    Visite da Effettuare" devono aggiornarsi in ordine crescente dalla prima riga in giù
    In "Archivio Visite" devono andare ad occupare sempre la prima riga, seguendo l'ordine d'inserimento.
    Abbi pazienza e grazie per la disponibilità.
    Ciao.
    Ciao Pkrome, ho fatto le modifiche che volevi spero che vada bene.

    Fammi sapere - Ciao.

    https://www.dropbox.com/s/o9rvh6e13s...emo2.xlsm?dl=0

    Codice: 
    Sub Registra_Visite()
    
    Dim uriga, uriga1 As Long
    Dim wsh, wsh1, wsh2 As Worksheet
    
    
    Application.ScreenUpdating = False
    
    
    Set wsh = ThisWorkbook.Worksheets("Scheda")
    Set wsh1 = ThisWorkbook.Worksheets("Archivio visite")
    
    
    uriga = wsh1.Range("A" & Rows.Count).End(xlUp).Row + 1
    
    
    wsh1.Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    wsh1.Rows("3:3").Interior.Pattern = xlNone
    wsh1.Rows("3:3").Font.Bold = False
    wsh1.Rows("3:3").Font.Italic = False
    
    
    wsh.Range("B7").copy
    wsh1.Range("D3").PasteSpecial Paste:=xlPasteValues
    wsh1.Range("A3").Value = wsh.Range("F7").Value
    wsh1.Range("B3").Value = wsh.Range("E13").Value
    wsh1.Range("C3").Value = wsh.Range("E11").Value
    wsh1.Range("E3").Value = wsh.Range("B13").Value
    wsh1.Range("F3").Value = wsh.Range("A16").Value
    wsh1.Range("G3").Value = wsh.Range("E16").Value
    wsh1.Range("H3").Value = wsh.Range("F16").Value
    wsh1.Range("A3").copy
    wsh1.Range("A3").PasteSpecial Paste:=xlPasteValues
    wsh1.Range("I4").copy
    wsh1.Range("I3").PasteSpecial
    Application.CutCopyMode = False
    
    
    If wsh1.Range("I3").Value > 30 Then
        Set wsh2 = ThisWorkbook.Worksheets("Visite Effettuate")
        uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
        wsh1.Range("A3:I3").copy
        wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
        
    ElseIf wsh1.Range("I3").Value < 30 Or wsh1.Range("I3").Value = 30 Then
        Set wsh2 = ThisWorkbook.Worksheets("Visite da Effettuare")
        uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
        wsh1.Range("A3:I3").copy
        wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
    End If
    
    
    wsh2.Sort.SortFields.Add Key:= _
    Range("I2:I" & uriga1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
    With wsh2.Sort
        .SetRange Range("A2:I" & uriga1)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    wsh2.Activate
    Range("A1").Select
    wsh1.Activate
    Range("A2").Select
    Application.CutCopyMode = False
    
    
    Set wsh = Nothing
    Set wsh1 = Nothing
    Set wsh2 = Nothing
    Application.ScreenUpdating = True
    
    
    End Sub

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  18. #16
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Questa è la versione definitiva.
    Questa notte ero un po' "stanchino" per non dire diversamente ed ho fatto le cose in fretta.

    https://www.dropbox.com/s/o9rvh6e13s...emo2.xlsm?dl=0

    Codice: 
    Sub Registra_Visite()
    
    Dim uriga, uriga1 As Long
    Dim wsh, wsh1, wsh2 As Worksheet
    
    
    Application.ScreenUpdating = False
    
    
    Set wsh = ThisWorkbook.Worksheets("Scheda")
    Set wsh1 = ThisWorkbook.Worksheets("Archivio visite")
    
    
    uriga = wsh1.Range("A" & Rows.Count).End(xlUp).Row + 1
    
    
    wsh1.Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    wsh1.Rows("3:3").Interior.Pattern = xlNone
    wsh1.Rows("3:3").Font.Bold = False
    wsh1.Rows("3:3").Font.Italic = False
    
    
    wsh.Range("B7").copy
    wsh1.Range("D3").PasteSpecial Paste:=xlPasteValues
    wsh1.Range("A3").Value = wsh.Range("F7").Value
    wsh1.Range("B3").Value = wsh.Range("E13").Value
    wsh1.Range("C3").Value = wsh.Range("E11").Value
    wsh1.Range("E3").Value = wsh.Range("B13").Value
    wsh1.Range("F3").Value = wsh.Range("A16").Value
    wsh1.Range("G3").Value = wsh.Range("E16").Value
    wsh1.Range("H3").Value = wsh.Range("F16").Value
    wsh1.Range("A3").copy
    wsh1.Range("A3").PasteSpecial Paste:=xlPasteValues
    wsh1.Range("I4").copy
    wsh1.Range("I3").PasteSpecial
    Application.CutCopyMode = False
    
    
    If wsh1.Range("I3").Value > 30 Then
        Set wsh2 = ThisWorkbook.Worksheets("Visite Effettuate")
    Else
        Set wsh2 = ThisWorkbook.Worksheets("Visite da Effettuare")
    End If
        uriga1 = wsh2.Range("A" & Rows.Count).End(xlUp).Row + 1
        wsh1.Range("A3:I3").copy
        wsh2.Range("A" & uriga1).PasteSpecial Paste:=xlPasteValues
        
        wsh2.Sort.SortFields.Add Key:= _
        Range("I2:I" & uriga1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
        With wsh2.Sort
            .SetRange Range("A2:I" & uriga1)
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        wsh2.Activate
        Range("A2").Select
        wsh1.Activate
        Range("A2").Select
        Application.CutCopyMode = False
    
    
    Set wsh = Nothing
    Set wsh1 = Nothing
    Set wsh2 = Nothing
    Application.ScreenUpdating = True
    
    
    End Sub

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  19. I seguenti 3 utenti hanno dato un "Like" a Baloon_50 per questo post:


  20. #17
    L'avatar di pkrome59
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Reggio Calabria
    Età
    58
    Messaggi
    1188
    Versione Office
    Office 2013
    Likes ricevuti
    1198
    Likes dati
    2133
    Ciao Baloon_50, non ti risparmi, lavori anche di notte, lavoro perfetto è ciò che desideravo, grazie, grazie, grazie.
    Sto per uscire, cortesemente come fare per annotare nel forum che il problema è stato risolto, così al rientro provvederò???

    Ciao a presto.

  21. #18
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da pkrome59 Visualizza Messaggio
    Ciao Baloon_50, non ti risparmi, lavori anche di notte, lavoro perfetto è ciò che desideravo, grazie, grazie, grazie.
    Sto per uscire, cortesemente come fare per annotare nel forum che il problema è stato risolto, così al rientro provvederò???

    Ciao a presto.
    Grazie a te per il riscontro.
    per mettere risolto :

    Vai nella barra dei menu, situata all'inizio di questa discussione, troverai il menu “Strumenti Discussione” quindi scegli “Segna questo Thread come risolto”

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  22. #19
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215
    ...ma volendo utilizzare i moduli di classe?http://pfmarro.altervista.org/access...di_classe.html
    È il caso di utilizzarli in casi di questo genere secondo voi?
    Saluti

Discussioni Simili

  1. Registro dinamico entrate/uscite
    Di bazzecola nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 13/03/17, 12:30
  2. Registro Pagamento Quote Associative Moto Club
    Di Giuseppe Zammuto nel forum Domande su Excel in generale
    Risposte: 14
    Ultimo Messaggio: 03/02/17, 17:56
  3. [Risolto] Analisi devianza su frequenza visite
    Di ZANZARA nel forum Domande su Excel in generale
    Risposte: 9
    Ultimo Messaggio: 22/02/16, 13:29
  4. Analisi frequenze visite
    Di ZANZARA nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 16/02/16, 15:25
  5. registro dati
    Di klaudios nel forum Domande su Excel VBA e MACRO
    Risposte: 24
    Ultimo Messaggio: 14/11/15, 13:19

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
  •