La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buongiorno a tutti,
questo è la prima volta che scrivo su questo sito, fino ad adesso ho ricavato molti aiuti leggendo le vostre discussioni.
Questo è il mio problema, devo inserire in alcune celle delle formule come sotto:
For co = 7 To 18
Cells(rigainizioformule + 2, colonnainizioformule + co).Formula = "=DB.Somma('27-02-2024'!A1:T328;'27-02-2024'!H1;'Filtro Art'!B1:B2)"
Next co
ma appare l'errore: "Errore definito dall'applicazione o dall'oggetto". Ho provato anche inserendo una formula più semplice, sempre DB.Somma, ma il risultato è lo stesso. Inserendo invece una semplice somma, funziona.
Grazie in anticipo per l'aiuto
ciao
non riusciresti ad allegare un file esempio
Ciao,
spiego rapidamente di cosa si tratta: un articolo è formato da molti componenti tra questi anche da un fondello. In base alla data di produzione la quantità viene inserita nel foglio di lavoro in allegato. Mi serve avere un riepilogo delle quantità per ogni settimana di ogni fondello. Il file in esempio è molto semplificato (il file originale può contenere centinaia di righe, e non ha lo stesso numero di righe ad ogni aggiornamento), ed avevo pensato di utilizzare la formula DB.Somma e di incollare la formula per ogni cella nel riepilogo gestendo da VBA il numero di righe con i dati
ciao
ho visto il file
ma non ti basta
in H13 da tirare a destra e in basso
=MATR.SOMMA.PRODOTTO(($T$3:$T$11=$F13)*($G$3:$G$11=H$1);$E$3:$E$11)
o vuoi proprio il vba
Ciao,
con la tua formula funziona perfettamente, ma preferirei farlo in VBA in modo da poter automatizzare il tutto.
ciao
vediamo se i vbaisti intervengono
ciao,
ho inserito un paio di commenti alla Macro2 del Modulo2,
DOPO, si potrà valutare ciò che vuoi realizzare 😉
Sub Macro2() ' ' Macro2 Macro 'INSERISCE NELLE CELLE COPIATE DAL FOGLIO "FORMULE DA INCOLLARE" LE FORMULE CORRETTE Dim WS As Worksheet Dim RNG As Range Dim foundCell As Range Dim V As Integer, ColonnaInizioFormula As Integer Dim NomeCella '=================================================================================================== ' nel file che hai allegato, QUESTO FOGLIO NON E' PRESENTE e va da sè che le variabili che vuoi ' ricavare da esso non possono valorizzarsi! ' allega un file reale e consono alle aspettative.... Set WS = ThisWorkbook.Sheets("FormuleDaIncollare") 'Imposta ws come il foglio "FormuleDaIncollare" '=================================================================================================== UR = Evaluate("MAX(INDEX((A:A<>"""")*ROW(A:A),))") 'Ultima riga della colonna A con un valore (funziona anche se in mezzo ci sono delle celle vuote) Set RNG = WS.Range("A1:A" & UR) 'Imposta l'intervallo di celle dove cercare 'Cerco la riga dove iniziano i blocchi dei totali dei fondelli For V = 65 To 69 'Codice Ascii dei caratteri da A ad E, che sono le celle che identificano i cinque blocchi di codici dei fondelli Set foundCell = RNG.Find(What:=Chr(V), LookIn:=xlValues, LookAt:=xlWhole) 'Questa è la cella in cui si trova la lettera de cercare NomeCella = foundCell.Address 'Questo è l'indirizzo della cella colonnainizioformule = Range(NomeCella).Column 'Colonna in formato numerico della cella rigainizioformule = Range(NomeCella).Row 'Riga in formato numerico della cella For co = 7 To 18 Cells(rigainizioformule + 2, colonnainizioformule + co).Formula = "=DB.Somma('27-02-2024'!A1:T328;'27-02-2024'!H1;'Filtro Art'!B1:B2)" Next co Next V '============================================================================ 'ricordati di "svuotare" le varibili oggetto con questa istruzione Set WS = Nothing '============================================================================ End Sub
Ciao,
per semplificare il file ho cancellato un po' troppo.
Nel foglio 27-02-24 dalla cella H332, ho inserito le formule suggerite da gianfranco55 e sembra funzionare (devo controllare ancora per bene).
Invece nel foglio Formule da incollare, nelle prime due righe ho inserito la formula DB.somma ma il totale risulta sfalsato di 2 colonne (nelle prime 2 righe, poi è completamente sbagliato
)
Allego il file un po' più completo.
ciao,
nel foglio Formule da incollare in cella H4 metti la formula DB.somma funzionante,
e specifica come devono cambiare i riferimenti per le altre celle.
poi vediamo come inserirla in tutte le celle dove ti interessa inserirla
Frank
Ciao,
Ho inserito tutte le formule nel foglio FormuleDaIncollare ed i cambiamenti nelle celle successive sono questi:
Nella stessa riga cambia solo il riferimento alla colonna, incrementando di una (=DB.SOMMA('27-02-2024'!$F$1:$S$328;'27-02-2024'!H$1-3;'Filtro Art'!$B$1:$B$2))
Nella riga successiva cambia il riferimento nel filtro della funzione, incrementando di una colonna (=DB.SOMMA('27-02-2024'!$F$1:$S$328;'27-02-2024'!H$1-3;'Filtro Art'!$C$1:$C$2))
Tutto questo vale per il gruppo di formule A, per le formule successive cambia il riferimento al filtro che dovrà puntare alle formule del gruppo B del foglio "Filtro Art".
Spero di essere stato chiaro, allego il file.
Grazie
ciao,
purtroppo per problemi personali in questi giorni non riesco a seguire il forum come vorrei...
Se la tua richiesta non è urgente.... la valuterò nelle prossime settimane...
diversamente valuta tu alternative a cui rivolgerti..
Buone vacanze 😀
ciao
la formula è
=DB.SOMMA('27-02-2024'!$F$1:$T$328;'27-02-2024'!H$2-3;'Filtro Art'!$B$1:$B$2)
per le altre righe non capisco la logica
@gianfranco55 Ciao,
si la formula è corretta e funziona, il problema è che se cerco di incollarla tramite VBA in una cella, appare l'errore "Errore definito dall'applicazione o dall'oggetto" e non capisco il perché.
ciao
di vba poco ne capisco
questa sera ci provo
ma ho idea che servano Tanimon e Marius per risolvere l'enigma