Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Pulsante per riepilogo

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Pulsante per riepilogo

Postdi fastbike73 » 18/12/14 10:18

Buongiorno a tutto il forum. Ho una userform tramite la quale
inserisco, selezionando preventivamente, dati in quattro fogli (Foglio1, Foglio2,Foglio3,Foglio4).
Come prima cosa, In un modulo vorrei inserire una macro che, richiamata soltanto la prima volta,
mi crei l'elenco di tutti dati presenti negli altri fogli (rispettando le colonne). Il range da importare
è uguale per ogni foglio (B3:Z). Nel foglio riepilogo inizierebbe a scrivere dalla cella A2.
Quindi vorrei inserire un pulsante nella userform che mi permetta di aggiornare il foglio riepilogo con
gli inserimenti che nel frattempo sono stati fatti sugli altri fogli, sempre rispettando il range B3:Z uguale
per tutti i fogli.

Spero di essere stato abbastanza chiaro, differentemente sono qui per darvi ogni minima spiegazione
per potervi agevolare... Vi ringrazio sin d'ora per l'aiuto e l'attenzione.
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Sponsor
 

Re: [Excel] Pulsante per riepilogo

Postdi ricky53 » 18/12/14 13:11

Ciao,
prova con questo esempio che "soddisfa" la tua richiesta n. 1
Codice: Seleziona tutto
Option Explicit

Sub Copia_Dati_di_Più_Fogli_sul_Riepilogo()
    Dim WS1 As Worksheet, UR_Inp As Long, I As Integer, UR_Out
   
    Set WS1 = Sheets("Riepilogo")
    For I = 1 To Worksheets.Count
        If Sheets(I).Name <> "Riepilogo" Then
            UR_Inp = Sheets(I).Range("B" & Rows.Count).End(xlUp).Row
            UR_Out = WS1.Range("A" & Rows.Count).End(xlUp).Row + 1
            If UR_Out = 1 Then
                UR_Out = 2
            End If
            Sheets(I).Range("B3:Z" & UR_Inp).Copy
            WS1.Range("A" & UR_Out).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Application.CutCopyMode = False
        End If
    Next I
    Set WS1 = Nothing
End Sub


Per la n. 2
Quindi vorrei inserire un pulsante nella userform che mi permetta di aggiornare il foglio riepilogo con
gli inserimenti che nel frattempo sono stati fatti sugli altri fogli, sempre rispettando il range B3:Z uguale
per tutti i fogli.


Se, invece, di "Aggiungere" i nuovi dati COPIASSIMO sempre tutti i dati dei vari fogli?
In questo modo avremmo una sola macro, però se i dati sono molti potrebbe essere un po' lenta ... va verificato.
Quante righe ci saranno, a regine, nei vari fogli e in riepilogo?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Pulsante per riepilogo

Postdi fastbike73 » 18/12/14 15:08

ricky53 ha scritto:Ciao,
prova con questo esempio che "soddisfa" la tua richiesta n. 1
Codice: Seleziona tutto
Option Explicit

Sub Copia_Dati_di_Più_Fogli_sul_Riepilogo()
    Dim WS1 As Worksheet, UR_Inp As Long, I As Integer, UR_Out
   
    Set WS1 = Sheets("Riepilogo")
    For I = 1 To Worksheets.Count
        If Sheets(I).Name <> "Riepilogo" Then
            UR_Inp = Sheets(I).Range("B" & Rows.Count).End(xlUp).Row
            UR_Out = WS1.Range("A" & Rows.Count).End(xlUp).Row + 1
            If UR_Out = 1 Then
                UR_Out = 2
            End If
            Sheets(I).Range("B3:Z" & UR_Inp).Copy
            WS1.Range("A" & UR_Out).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Application.CutCopyMode = False
        End If
    Next I
    Set WS1 = Nothing
End Sub


Per la n. 2
Quindi vorrei inserire un pulsante nella userform che mi permetta di aggiornare il foglio riepilogo con
gli inserimenti che nel frattempo sono stati fatti sugli altri fogli, sempre rispettando il range B3:Z uguale
per tutti i fogli.


Se, invece, di "Aggiungere" i nuovi dati COPIASSIMO sempre tutti i dati dei vari fogli?
In questo modo avremmo una sola macro, però se i dati sono molti potrebbe essere un po' lenta ... va verificato.
Quante righe ci saranno, a regine, nei vari fogli e in riepilogo?


Ciao Ricky, ben felice di vedere il tuo interesse. Ti ringrazio. A regime non ci saranno molte righe. Io credo complessivamente
(tutti i fogli) non più di 200 righe... A dire il vero io volevo fare una cosa del genere, solo che tu sai bene le mie conoscenze non vanno di pari passo con le mie esigenze... Comunque ti posto il codice del CommandButton2 con il quale inserisco, attraverso la userform i nuovi "record". Anzi, ti allego direttamente tutto il file che forse è meglio!!!

Colgo l'occasione per spiegare che il foglio di riepilogo mi serve perchè su di esso, tramite formule e macro, vorrei che a 5 giorni dalla data di scadenza (colonna I) la macro mi inviasse per e-mail un avviso. Il corpo dell'email dovrebbe essere composto da alcune delle informazioni presenti nei vari campi del record (es. riga1 colonnaZ mi dice che è in scadenza, il corpo dell'email è composto da alcuni campi/colonne di riga1). Spero di aver reso l'idea...

https://www.dropbox.com/s/kx5vzntfjmprlff/Cartelle1.xlsm?dl=0
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: [Excel] Pulsante per riepilogo

Postdi ricky53 » 18/12/14 15:48

Ciao,
allora vale la pena di copiare TUTTI i dati di tutti i fogli e passa la paura: il codice sarà sempre uno solo e, inoltre, più semplice.


Tu hai provato quanto ti avevo inviato?


Ecco la versione che copia tutti i dati SEMPRE.
Codice: Seleziona tutto
Option Explicit

Sub Copia_Dati_di_Più_Fogli_sul_Riepilogo()
    Dim WS1 As Worksheet, UR_Inp As Long, I As Integer, UR_Out
   
    Set WS1 = Sheets("Riepilogo")
    UR_Out = WS1.Range("A" & Rows.Count).End(xlUp).Row ' <<===== Aggiunte
    WS1.Range("A3:Y" & UR_Out).ClearContents ' <<===== Aggiunte
   
    For I = 1 To Worksheets.Count
        If Sheets(I).Name <> "Riepilogo" Then
            UR_Inp = Sheets(I).Range("B" & Rows.Count).End(xlUp).Row
            UR_Out = WS1.Range("A" & Rows.Count).End(xlUp).Row + 1
            If UR_Out = 1 Then
                UR_Out = 2
            End If
            Sheets(I).Range("B3:Z" & UR_Inp).Copy
            WS1.Range("A" & UR_Out).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Application.CutCopyMode = False
        End If
    Next I
    WS1.Range("A1").Select
    Set WS1 = Nothing
    MsgBox "E' stata effettuata la copia dei dati di tutti i fogli nel foglio di  'Riepilogo'", vbInformation
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Pulsante per riepilogo

Postdi fastbike73 » 18/12/14 16:43

Dunque Ricky, ho abbinato il codice che mi hai dato ad un pulsante sulla Userform. Mi da un errore:
"Errore di run-time '1004':
Errore nel metodo Select per la classe Range.
La riga incriminata è:
Codice: Seleziona tutto
    WS1.Range("A1").Select
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: [Excel] Pulsante per riepilogo

Postdi fastbike73 » 18/12/14 17:10

fastbike73 ha scritto:Dunque Ricky, ho abbinato il codice che mi hai dato ad un pulsante sulla Userform. Mi da un errore:
"Errore di run-time '1004':
Errore nel metodo Select per la classe Range.
La riga incriminata è:
Codice: Seleziona tutto
    WS1.Range("A1").Select


Mi sono accorte che nel foglio "Riepilogo" inizia a scrivere dalla riga 2 andando a sovrascrivere i nomi campo.
Dovrebbe iniziare a scrivere dalla riga 3. Ma non credo che sia questo il problema dell'errore di Run-time...
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: [Excel] Pulsante per riepilogo

Postdi ricky53 » 19/12/14 00:20

Ciao,
avevo aggiunto una istruzione per posizionare il cursore ma avevo dimenticato di selezionare il foglio "Riepilogo"
Ho corrette l'inizio dei dati copiati da riga 2 a riga 3.
Prova e ... sono QUI.

Codice: Seleziona tutto
Option Explicit

Sub Copia_Dati_di_Più_Fogli_sul_Riepilogo()
    Dim WS1 As Worksheet, UR_Inp As Long, I As Integer, UR_Out
   
    Set WS1 = Sheets("Riepilogo")
    UR_Out = WS1.Range("A" & Rows.Count).End(xlUp).Row
    WS1.Range("A3:Y" & UR_Out).ClearContents
   
    For I = 1 To Worksheets.Count
        If Sheets(I).Name <> "Riepilogo" Then
            UR_Inp = Sheets(I).Range("B" & Rows.Count).End(xlUp).Row
            UR_Out = WS1.Range("A" & Rows.Count).End(xlUp).Row + 1
            If UR_Out = 1 Then
                UR_Out = 3 ' <<===== Modificata
            End If
            Sheets(I).Range("B3:Z" & UR_Inp).Copy
            WS1.Range("A" & UR_Out).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Application.CutCopyMode = False
        End If
    Next I
    WS1.Select ' <<===== Aggiunta
    WS1.Range("A1").Select
    Set WS1 = Nothing
    MsgBox "E' stata effettuata la copia dei dati di tutti i fogli nel foglio di  'Riepilogo'", vbInformation
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Pulsante per riepilogo

Postdi fastbike73 » 21/12/14 10:23

Buongiorno Ricky e buona domenica. Le modifiche che hai apportato funzionano alla perfezione. L'unico problema è che appena faccio girare la macro, e successivamente esco dal form, non riesco a muovermi all'interno del foglio riepilogo.. è come se ci fosse ancora qualcosa che "gira" che non mi fa muovere con il cursore oltre il riquadro del monitor. Ma non è solo un problema di visualizzazione ma anche di modifica in genere.
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: [Excel] Pulsante per riepilogo

Postdi fastbike73 » 22/12/14 09:53

fastbike73 ha scritto:Buongiorno Ricky e buona domenica. Le modifiche che hai apportato funzionano alla perfezione. L'unico problema è che appena faccio girare la macro, e successivamente esco dal form, non riesco a muovermi all'interno del foglio riepilogo.. è come se ci fosse ancora qualcosa che "gira" che non mi fa muovere con il cursore oltre il riquadro del monitor. Ma non è solo un problema di visualizzazione ma anche di modifica in genere.


Ciao Ricky, mi sono accorto di un altro problema, oltre il precedente. Nella Userform ho un pulsante che mi permette di cancellare un record del foglio preventivamente selezionato. Non appena cancello il record e mando la macro per aggiornare il folio Riepilogo mi accorgo che oltre a portare i dati importo anche la riga delle intestazioni di colonna. Sarebbe possibile evitarlo?
Ti chiedo scusa se non l'ho scritto ieri. Sto cercando di fare più test possibili prima di metterlo nella rete aziendale e farlo usare a chi di competenza...
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: [Excel] Pulsante per riepilogo

Postdi ricky53 » 26/12/14 00:39

Ciao,
puoi inviare un file di esempio, aggiornato e contenente la macro che ti ho suggerito?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Pulsante per riepilogo

Postdi fastbike73 » 29/12/14 09:55

ricky53 ha scritto:Ciao,
puoi inviare un file di esempio, aggiornato e contenente la macro che ti ho suggerito?

Buongiorno Ricky,
ti invio il file con gli ultimi aggiornamenti (tua macro e qualche altra piccola correzione).
Come potrai vedere ho molte textbox in cui occorre inserire valori e testo. Vorrei evitare che chi utilizza il file scrivesse del testo dove il campo richiede valori e viceversa (gestione degli errori). Avevo pensato di utilizzare il comando 'On error resume next' , ma non essendo molto preparato vorrei sapere se lo devo utilizzare per ogni singola textbox o se va' richiamato soltanto nel codice del commandbutton2 (inserimento dati) e commandbutton3 (modifica dati).

https://www.dropbox.com/s/kx5vzntfjmprlff/Cartelle1.xlsm?dl=0
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: [Excel] Pulsante per riepilogo

Postdi fastbike73 » 05/01/15 13:31

ricky53 ha scritto:Ciao,
puoi inviare un file di esempio, aggiornato e contenente la macro che ti ho suggerito?


Buongiorno Ricky e ben ritrovato. Nella precedente risposta ho allegato il file come tu mi hai chiesto. Ti sarei grato se potessi dargli un occhiata e se mi potessi spiegare come inserire la "gestione degli errori" considerato il gran numero di textbox. Ti ringrazio a priori per il tuo aiuto e interesse.
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: [Excel] Pulsante per riepilogo

Postdi ricky53 » 05/01/15 16:53

Ciao,
sono fuori ed ho solo un tablet ... ci risentiamo al più presto.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Pulsante per riepilogo":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti