Pagina precedente | 1 2 3 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Riepiloghi da creare

Ultimo Aggiornamento: 29/06/2020 10:11
08/05/2020 18:39

>>>creerò un file come questo mensile
In "Persona su commessa" da G6 a seguire scrivi le commesse
Nel codice Modulo4, riga12 c'è 'Selection.ClearContents che dovrai togliere il simbolo iniziale = '
Andrà in errore...penso di no (non verrà contato, se manca un nome o commessa)
A riguardo febbraio/aprile l'importante che ci siano sempre i 31 fogli(giorno) nel files. Non credo di guadagnare tempo, comunque se in E1 metti =CERCA.ORIZZ(B2;{"Gennaio"\"Febbraio"\"Marzo"\"Aprile"\"Maggio"\"Giugno"\"Luglio"\"Agosto"\"Settembre"\"Ottobre"\"Novembre"\"Dicembre".1\2\3\4\5\6\7\8\9\10\11\12};2;FALSO)

[Modificato da ABCDEF@Excel 09/05/2020 20:01]
Post: 38
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
09/05/2020 12:03

Modifiche apportate

Lancio alle ore 11:44, fine alle 12:03, mi sa che un pochino di tempo è stato risparmiato.

Grazie mille
09/05/2020 20:01

Causa modifiche VBA, riallego
Post: 39
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
09/05/2020 20:12

che cambiamenti sono stati apportati?
Post: 40
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
09/05/2020 20:28

Ti riallego il file, perché ho provato a lanciare le due macro principali nei fogli

Riepilogo giorni dip
Riepilogo giorni commessa

e sembra sia successo qualcosa, perché rispettivamente nel primo mi aggiunge alla riga 6 e 7 due righe che non c'entrano nulla con i dipendenti (sembra un vuoto, e un titolo di riga dai fogli giornalieri), nel secondo invece mi lascia un rigo bianco. Invece in A6 deve esserci nel primo foglio il primo nome codice dip trovato, nelsecondo la prima commessa; te li ho lasciati aperti, perché ho provato a vedere anche il testo delle due macro ma non mi sembra essere cambiato nulla.
Post: 42
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
09/05/2020 20:33

mi dice che il file è troppo grande.

Scaricalo da qui, dal mio dropbox:

https://www.dropbox.com/s/pi11zxm16hoyqm2/2020-03%20Quadratura%20giornaliera%20ore%20commesse%20REV4.xlsm?dl=0
[Modificato da nicopana 09/05/2020 20:49]
10/05/2020 01:42

Ti posso garantire che il mio codice non centra nulla.
Desidero ricordarTi che sù Fogli dove lavorano Macro TU NON PUOI aggiungere righe/colonne/Rinominare (il VBA andrebbe in errore)

Da quello che ho capito riprendi allegato 09/05/2020 20:01
, rinomina il Foglio "Persona su commessa" in "Riepilogo"
Vai in Modulo4, riga7 e cambia in Sheets("Riepilogo").Activate

Vedrò se riesco mettere le mani sul codice di dodo47...
Ps. Cancella il refuso in K1:l1 e ricordaTi di scrivere sempre il mese in B2
Post: 43
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
10/05/2020 11:38

Ok, dovrei aver sistemato adesso, ho apportato le modifiche che mi hai chiesto e anche quelle due macro principali non sono andate in tilt.

Stavolta il calcolo è iniziato alle 11:26 ed è finito dopo esattamente 10min.

Quindi stavolta penso che ci siamo.

Qui il file definitivo:

https://www.dropbox.com/s/x8ugwq0vdj15c3n/1975065180.xlsm?dl=0

Grazie
Post: 44
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
10/05/2020 11:45

Se ad esempio, io adesso avessi a disposizione i file per Maggio ed Aprile, che intanto avevo creato per alimentare i dati, basta che:

- verifico comunque che ci sia il foglio 31, anche se vuoto
- posso copiarmi all'interno dei nuovi file il foglio Riepilogo, e si porta dietro anche le altre due Macro che hai creato come "ricerca" e "foglio"? oppure mi copio all'interno il foglio, ma devo poi esportare anche questi altri 2 moduli?
Post: 2.803
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
10/05/2020 11:45

Re:
ABCDEF@Excel, 10/05/2020 01:42:


....Vedrò se riesco mettere le mani sul codice di dodo47...



@ABCDEF....senza che ci stai a perdere tempo, il problema è legato al nome del foglio "Persona su commessa" in quanto ci andava un Riep_ all'inizio, cioè: "Riep_Persona su commessa".

Questa cosa è ben nota a "nicopana" in quanto più volte gli ho detto che tutti i fogli aggiuntivi dovevano avere Riep all'inizio del nome.

Quindi o modifichi il ciclo come hai detto nell'altro post e i fogli li può chiamare come gli pare, oppure aggiunge quel Riep_xxxxx

saluti





Domenico
Win 10 - Excel 2016
Post: 45
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
10/05/2020 11:47

Re: Re:
dodo47, 10/05/2020 11:45:



@ABCDEF....senza che ci stai a perdere tempo, il problema è legato al nome del foglio "Persona su commessa" in quanto ci andava un Riep_ all'inizio, cioè: "Riep_Persona su commessa".

Questa cosa è ben nota a "nicopana" in quanto più volte gli ho detto che tutti i fogli aggiuntivi dovevano avere Riep all'inizio del nome.

Quindi o modifichi il ciclo come hai detto nell'altro post e i fogli li può chiamare come gli pare, oppure aggiunge quel Riep_xxxxx

saluti







Si hai ragione, l'avevo dimenticato

10/05/2020 13:50

- verifico comunque che ci sia il foglio 31, anche se vuoto = SI
- posso copiarmi all'interno dei nuovi file il foglio Riepilogo =SI
- ma devo poi esportare =SI ..... Solo il Modulo4

Ps. Si dopo47 lo sapevo, mà non sapevo dove mettere le mani
Pps. Per maggior sicurezza (intendo controllare se esistono 31 fogli-giorno) modifica la parte iniziale di Modulo4
Option Explicit
Function wsExists(ByVal sFoglio As String) As Boolean
  wsExists = Not IsError(Evaluate("'" & sFoglio & "'!A1"))
End Function
Sub ricerca()
Dim W As Long, X As Long, Y As Long, M As Long, Col As Long, Nome As String, Com As String, Fg As String, r, c
Dim ws As Worksheet, Rg As Object, Cl As Object, Val As Double
For Y = 1 To 31
    Nome = CStr(Y)
    If Not wsExists(Nome) Then
        MsgBox "Non esistono 31 fogli": Exit Sub
    End If
Next Y
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Se sei sicuro d'avere sempre i 31 giorni non modificare nulla
[Modificato da ABCDEF@Excel 11/05/2020 01:12]
Post: 46
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
11/05/2020 11:17

Preferisco fare la modifica al testo VBA, non si sa mai ci si dimentichi di inserire il foglio 31 ogni tanto.

Ho provato comunque a riportare il nuovo foglio anche nel file di Aprile, e non riuscivo perfettamente a chiudere le ore lavorate.

Da Riepilogo per persona erano 23.850,5, mentre il foglio Riepilogo me ne calcolava 22.224,5, quindi c'erano differenze sia su alcune commesse che su alcuni operatori.

Faccio l'esempio del primo, quello con matricola 1145: nel foglio Riepilogo mi dava un monte ore di 80, mentre in Riepilogo per persona me ne dava 88.
Se si provava a vedere la distribuzione delle giornate lavorative, ha sempre lavorato in giornate di 8h nei giorni 8-9-14-15-16-17-20-21-22-23-24.

Attraverso il foglio Riep persona-commessa, si poteva verificare maggiormente in dettaglio la distribuzione del dipendente, però mancava la giornata del 15, cioè esattamente le ore di differenza.

poi mi è venuto un flash, sono andato a controllare la giornata del 15, e l'unica cosa che c'era era un filtro attivo su una colonna. Eliminato questo filtro, ed eliminati eventuali altri filtri attivi negli altri fogli, ho rilanciato il calcolo, e tutto è tornato alla perfezione. Quindi forse l'unica cortesia che vi chiederei è un'ultima porzione di testo che prima del lancio della macro, elimina eventuali filtri attivi in tutti i fogli da 1 a 31
[Modificato da nicopana 11/05/2020 11:19]
Post: 2.805
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
11/05/2020 13:19

Se li togli poi costringi gli utenti a rimetterceli.
Pertanto, al posto di toglierli, li "esplodi" tutti in modo che vengano mostrati tutti i dati.
Quindi, dopo la valorizzazione di ws, ci metti:

If ws.FilterMode Then ws.ShowAllData

saluti



Domenico
Win 10 - Excel 2016
Post: 47
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
11/05/2020 13:38

Mi sono espresso male, infatti non volevo dire eliminarli definitivamente, ma esploderli, termine più esatto.

Mi spiegheresti meglio dove dovrei inserire questa riga?

If ws.FilterMode Then ws.ShowAllData
11/05/2020 14:27

https://www.freeforumzone.com/d/11694238/Ricerca-foglio-tramite-variabile/discussione.aspx

Dovrebbe essere....ricontrolla il tutto
        For Y = 1 To M
            Fg = CStr(Y)
            Set ws = Sheets(Fg)
            If ws.FilterMode Then ws.ShowAllData
[Modificato da ABCDEF@Excel 15/05/2020 14:35]
Post: 48
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
13/05/2020 10:41

Ho provato ad effettuare questa modifica, e comunque la macro non ha dato errori (anzi, ti dico che da un po' di tempo mi sembra che ci metta anche meno tempo). Non capisco una cosa però: Ho ricopiato fogli e macro nel file del mese successivo, tutto ok, senza errori il calcolo, e mi genera tutto.
La cosa che non capisco è perché alla pressione del tasto per lanciare il calcolo, apre comunque il file su cui abbiamo apportato le prime modifiche, cioè quello del mese di Marzo, che poi sono costretto a chiudere perché chiaramente non lo si tocca proprio.

Come mai secondo te?
Post: 2.815
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
13/05/2020 10:45

perchè evidentemente il pulsante punta alla macro dell'altro foglio... meriti e demeriti del copia/incolla

correggi

saluti



[Modificato da dodo47 13/05/2020 10:46]
Domenico
Win 10 - Excel 2016
Post: 49
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
13/05/2020 12:05

Corretto adesso, grazie
Post: 50
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
20/05/2020 08:20

Stavo provando a ricopiare per Maggio il foglio di riepilogo con relativa macro, tutto ok nella copia, perché l'avevo fatto per il file di Aprile.

Lancio la macro, e mi da un problema di debug su questo rigo:

Set ws = Sheets(Fg)

Che vuol dire?
20/05/2020 09:37

Dovresti farTi un corso VBA, almeno per risolvere i piccoli errori.
Ex. Avvia il codice (quando appare l'errore), premi Debug vedrai la riga gialla. Adesso passando il mouse sulle scritte precedenti vedrai i valori che hanno le varie variabili in quell' istante

>>>Che vuol dire?
Detto così non posso saperlo (errore con un foglio-giorno), allega il file in https://www.filedropper.com/

In cella E1 esiste il valore = 5?
In Cella B2 c'è scritto Maggio in modo corretto?
Post: 51
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
20/05/2020 10:39

ABCDEF@Excel, 20/05/2020 09:37:

Dovresti farTi un corso VBA, almeno per risolvere i piccoli errori.
Ex. Avvia il codice (quando appare l'errore), premi Debug vedrai la riga gialla. Adesso passando il mouse sulle scritte precedenti vedrai i valori che hanno le varie variabili in quell' istante

>>>Che vuol dire?
Detto così non posso saperlo (errore con un foglio-giorno), allega il file in https://www.filedropper.com/

In cella E1 esiste il valore = 5?
In Cella B2 c'è scritto Maggio in modo corretto?

Si, dovrebbero essere corretti entrambi

Ti posto il link del file:

https://www.dropbox.com/s/e5r727xxw6yiylx/2020-05%20Quadratura%20giornaliera%20ore%20commesse.xlsm?dl=0
20/05/2020 11:27

Io sarò tonto, mà Tu dove vedi i fogli 20,21,22,23,24,25,26,27,28,29,30 e 31

Edit, non dovevi fare la modifica del post 10/05/2020 13:50
Se Vuoi rimodifica ancora...
Option Explicit
Function wsExists(ByVal sFoglio As String) As Boolean
  wsExists = Not IsError(Evaluate("'" & sFoglio & "'!A1"))
End Function
Sub ricerca()
Dim W As Long, X As Long, Y As Long, M As Long, Col As Long, Nome As String, Com As String, Fg As String, r, c
Dim ws As Worksheet, Rg As Object, Cl As Object, Val As Double
''''''''''
Sheets("Riepilogo").Activate
M = DateSerial(Year(Date), Cells(1, 5) + 1, 1) - DateSerial(Year(Date), Cells(1, 5), 1)
M = InputBox("Digitare quanti giorni elaborare...Ex da 1 sino 28,30 o 31", , M)
For Y = 1 To M
    Nome = CStr(Y)
    If Not wsExists(Nome) Then
        MsgBox "Manca foglio " & Y: Exit Sub
    End If
Next Y
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
    Range("G7").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.ClearContents
''''''''''

[Modificato da ABCDEF@Excel 20/05/2020 12:08]
Post: 52
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
20/05/2020 12:50

Perfetto anche con questa modifica, grazie.
Post: 3.904
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
20/05/2020 18:16

Un vero peccato che ACCESS non sia valido.

Nell'mmagine in allegato, una possibile struttura della Maschera principale.

Tempo di esecuzione, un Click.

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 53
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
20/05/2020 20:08

e chi lo dice che non è valido, sto avendo problemi con il lavoro e non sto riuscendo a dedicarci il tempo adeguato, solo per questo non ho fornito ancora risposta.

Ma il mio proposito di seguire anche questa strada da verificare eccome se è valido.

Spero a breve di riuscire a tornarci su.
21/05/2020 19:27

ACCESS e valido, ma 100 volte più difficile
[Modificato da ABCDEF@Excel 22/05/2020 04:14]
Post: 3.905
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
23/05/2020 10:10


Buona giornata, a Tutti.

@ABCDEF@Excel, scrive:

ACCESS è valido, ma 100 volte più difficile


Per me non esiste "facile" o "difficile" ma solo cose che conosci (facile) o non conosci (difficile).

Considera per un momento le Formule Matriciali, per un neofita possono sembrare "difficili" ma quando ne ha compreso la filosofia il meccanismo per la loro gestione diventa "facile".

Office propone diversi Modelli di applicazioni; Excel è un Foglio di lavoro molto potente ma, personalmente, quando la gestione supera i 1.500 ÷ 2.000 Record, senza esitazione propendo per ACCESS che è un vero e proprio Database relazionale in grado di gestire milioni di record con estrema rapidità.



Buon fine settimana a Tutti.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 54
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
29/06/2020 09:37

Chiedo cortesemente a ABCDEF@Excel di verificare il perché nel file allegato mi risulta questo errore:

Le ore calcolate globalmente nel foglio Riepilogo non sono uguali a quelle calcolate ad esempio in tutti gli altri fogli, e difatti mi restituisce un errore su 3 commesse

5735
5926
5521

come se ci fosse qualche ora che la macro "ricerca" non riesce a leggere.

Non ho apportato alcun tipo di modifica al file, ma non riesco a capire il perché mi restituisce l'errore e non legge tutte le ore. Sul foglio Riepilogo ne trovo 19625, mentre dovrebbero essere 19987

Posto qui il link al file in Dropbox:
https://www.dropbox.com/s/6s66zymx3swbjxr/2020-06%20Quadratura%20giornaliera%20ore%20commesse%20REV2.xlsm?dl=0
[Modificato da nicopana 29/06/2020 09:38]
Post: 55
Registrato il: 30/10/2017
Città: ALBEROBELLO
Età: 41
Utente Junior
Excel per MAC 16.35
OFFLINE
29/06/2020 10:11

Tutto risolto, grazie
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 3 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 19:10. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com