› Excel e gli applicativi Microsoft Office › Concatena con 2 condizioni
-
AutoreArticoli
-
Buon pomeriggio a tutti,
è possibile ottenere un codice (formula) che concatena in un'unica cella più operai, attrezzature ecc. ec..?
con 2 condizioni?
-) data
-) Centro di Costo
mi spiego meglio,
ho un foglio DATI,
dove imposto i centro di costo e il relativo gruppo di appartenenza, (1-2-3-4-5 ecc ecc) una volta inserito i centri di costo, questi si trascrivono in automatico nel foglio Giornale_Lavori, nella cella F1-G1-H1-I1, e fin qui nessun problema,
poi vado a compilare con una maschera d’inserimento il foglio ARCHIVIO,
e fin qui sempre tutto OK.
Ora quello che mi serve; se possibile, è avere nel foglio Giornale_Lavori il risultato che ho ricreato con le immagini.
Mi servirebbe un codice che vada a pescare nel foglio ARCHIVIO in base al giorno e al centro di costo (Manodopera – Bes_Attrezzature – Noleggi – Subappalti) e me li concatena e mi da il risultato da me semplificato con un immagine.
Tutto ciò mi permette di creare un giornale lavori a necessità della committenza.
Quindi servirebbe un codice che:
“se” la data dell’archivio è uguale alla data del giornale lavori, “concatena” il tutto in base al centro di costo e me li dispone come da esempio nel foglio (Giornale_Lavori)
Spero di esser stato chiaro e che sia possibile ottenere una cosa del genere.
Allegati:
You must be logged in to view attached files.Quindi servirebbe un codice che:
Bè hai esposto il problema e ti sei anche dato la soluzione
Non ti resta che tradurre tutto in codice (se vuoi farlo via codice). Con formule credo si possa fare a colpi di MATR.SOMMA.PRODOTTO o qualche altra diavoleria più moderna che conosce solo Gianfranco
Edit (altrimenti sembra un post troppo secco): nessun problema a guidarti nel farlo. Ma a meno di grosse sorprese, per come l'ho capita io non ci sono grandi difficoltà
Nel tuo file di esempio, se un codice gruppo corrisponde sempre al medesimo centro di costo, hai una facilitazione in più (maneggiare codici numerici è di solito più semplice e meno a rischio errore).
ciao Vecchi Frac.
si posso sostituire il centro di costo con il Gruppo nessun problema, ma mi resta sempre il fatto di capire se riesco a gestire il tutto con una formula o con un codice VBA (macro)
cosa mi suggerisci?
e te ne sarei grato se intanto mi proponi un codice da applicare a un tasto sul foglio Giornale lavori.
poi se interviene Gianfranco con una formula provo a vedere cosa mi agevola di più il lavoro.
grazie per la risposta intanto.
ciao
mi serve sapere la versione excel che hai
poi vediamo
se intanto mi proponi un codice
Ci ho già iniziato a lavorare, ma niente di trascendentale:
spazzolo le celle di colonna B del foglio Giornale lavori,
filtro la colonna A di archivio per ogni data che trovo,
recupero le colonne dati che mi servono dal foglio filtrato,
concateno le stringhe,
le copio dove servono.
Insomma, a grandi linee dovrebbe filare liscio 🙂ciao
in F2 la tiri a destra e in basso
=TESTO.UNISCI(CODICE.CARATT(10);;FILTRO(ARCHIVIO!$D$2:$D$1000;(ARCHIVIO!$M$2:$M$1000=F$1)*(ARCHIVIO!$B$2:$B$1000=$B2)))
adegua o la larghezza colonna o la dimensione carattere o devo in tervenire sugli spazi
senza il 365 è lo stesso fattibile ma bisognerebbe sapere quante persone/lavori ecc ci sono al massimo
e verrebbe una formula mostruoscamente lunga usando aggrega() perciò è consigliato il VBA
ciao Ginafranco
una volta copiato la tua formula mi da errore e mi evidenzia la parola FILTRO.
poi per quanto riguarda :
"adegua o la larghezza colonna o la dimensione carattere o devo intervenire sugli spazi"
se si riesce con la formula a mandare a Capo in automatico senza adeguare la cella o dimensioni caratteri,
perchè i nomi non hanno la stessa lunghezza o stesso numero di caratteri.
poi invece:
bisognerebbe sapere quante persone/lavori ecc ci sono al massimo
anche in questo caso non sempre uso lo stesso numero di persone,
ma può variare da 2 a 15/20 persone. (insomma mai un numero costante.
Avevo intuito che forse era meglio un codice VBA su un modulo e creare un tasto sul foglio Giornale Lavori.
intanto ti ringrazio, e se mi togli l'errore provo a studiarlo e capirci qualcosa, e provo ad adattare facendo delle prove,
e se il buon Vecchio Frac mi propone un codice VBA sarei grato e curioso di capire come risolvere il mio quesito.
grazie mille ancora
resto intanto in attesa di formula funzionante
anche
ciao se hai il 365 FILTRO c'è e funziona
visto che l'ho usato
vedi se leggi il mio file
per il resto erano solo spiegazioni
si può fare con formule ma viene un poema non è il tuo caso
Allegati:
You must be logged in to view attached files.Si funziona,
ok grazie evidentemente a copiare la formula crea problemi,
ancora grazie.
per ora sembra che fa quello che mi serve.
come detto spero che vecchio Frac,
mi proponga un codice VBA da caricare in un modulo e utilizzarlo con un tasto sul foglio Giornale Lavori.
probabilmente nel suo silenzio sta elaborando qualcosa,
e quando meno te lo aspetti ti piazza un carico da 11.
Gianfranco ti ringrazio davvero tanto,
saluti
ciao
per ora sembra che fa quello che mi serve.
non per ora....per sempre
se poi vuoi il vba è un'altra cosa ma con il365/2021 si è molto
agevolati anche con le formule.
probabilmente nel suo silenzio sta elaborando qualcosa,
O probabilmente non sono collegato
Sono lusingato che riponi tanta fiducia e stima in me, ho già promesso che costruisco qualcosa ma non so quando perché ho altre cose da fare e quindi ci lavoro quando posso. Se la formula di Gianfranco fa il suo dovere, usa quella per essere produttivo... il codice VBA è meno veloce da mettere insieme e poi va testato a fondo.
ciao
trentino sfaticato
bhe ripongo si fiducia in te,
anche perchè in altre situazioni mi hai tolto qualche castagna dal fuoco.
e devo dire che grazie a voi tutti del forum ogni tanto curioseggio se trovo qualche quesito di atri utenti e cerco di carpire e capire cose nuove,
poi mi diverto a fare gestionali che mi aiutano nel lavoro.
quindi vecchio Frac resto in attesa di tuo suggerimento e codice da copiare su un modulo, e magari nella userform di inserimento dati sul foglio archivio posso richiamarlo con call e farlo andare in automatico ad aggiornarmi il tutto sul foglio Giornale Lavori da inviare alla DL.
grazie per la pazienza.
trentino sfaticato
Oh
vecchio Frac resto in attesa di tuo suggerimento e codice
Ecco fatto, allego il file. Ho perso più tempo a commentare il codice che a farlo
quindi spero che apprezzerai lo sforzo.
Puoi facilmente riutilizzare la Sub richiamandola da un pulsante. Però il tracciato del file deve restare quello del file di esempio, altrimenti devi rivedere i riferimenti (non ti sarà difficile, ho cercato di scrivere codice pulito).Allegati:
You must be logged in to view attached files.buongiorno V.frac
ho avuto modo solo ora di visionare la soluzione son codice vba
mi esce un errore di compilazione su questa parte di codice, mi dice variabile " i"
non definita,
For i = 3 To f.Areas.Count
poi sto cercando di capire tutto quello che hai fatto ,
quindi in vie brevi fai fare la stessa cosa che si fa con un filtro su data, per poi copiare tutti i dati filtrati in un unica cella concatenando i dati filtrati?
bhe mi riesce difficile capire come cavolo fa a concatenare il tutto,
cmq sto cercando di interpretarlo, ma come sempre, passami il termine, hai una mente criminale, COMPLIMENTI
provo e riprovo a capire per bene il tuo codice ma mi viene il mal di testa.
ci metterò giorni per capirlo per bene,
facendo prove spezzettando il codice e cercar di capire cosa fa realmente,
puoi vedere come mai mi da quell errore di compilazione?
grazie mille come sempre.
Il codice è commentato passo passo, ci ho messo quasi più a commentarlo bene che a scriverlo 😀
mi esce un errore di compilazione su questa parte di codice, mi dice variabile " i"
non definita,
Può essere, devo aver cambiato nome alla variabile senza dichiararla, ti basta un "Dim i as Long" a inizio codice (questo è il valore aggiunto di Option Explicit e meno male che è così).
puoi vedere come mai mi da quell errore di compilazione?
Però non era difficile risolvere, neh
Mi permetto di rispondere io.
vecchio frac ha semplicemente dimenticato di dichiarare una variabile.
Essendo dichiarato in testa alla Macro Option Explicit, VBA controlla che tutte le variabili siano correttamente dichiarate.
Quindi basta tu aggiunga DIM i as Long
Edit:
Scusa Francesco, postato in contemporanea.
Questo era un errore facilmente risolvibile.
Più subdolo è capire perchè stamattina, facendo girare di nuovo la macro, si inchioda sul primo Worksheets("Giornale_Lavori").Range("A1").Select che trova.
Risposta: se è attivo un foglio diverso, il metodo Select forza l'attivazione della cella A1 di un altro foglio e non funziona (a rigore bisognerebbe usare "Application.Goto foglio").
Soluzione: l'istruzione è ininfluente e si può togliere. Serviva solo a rendere esteticamente immediato il raggiungere subito il foglio col risultato finale. Immagino che Dodi sappia farlo da sè.Poi vedo stamattina che non effettua correttamente un filtro sulle date (potrebbe esserci mescolanza di date e testo in forma di data? possibile ma allora perché ieri sera funzionava? differenze tra Excel 2007 che ho in ufficio e il mio Excel 2013 a casa? mah).
Se capita anche a voi, suggerisco di modificare l'istruzione.AutoFilter field:=2, Criteria1:=CStr(ce)in.AutoFilter field:=2, Criteria1:=CDate(ce)Grazie mille per la vostra disponibilita'
Per quanto riguarda la variabile non dichiarata ero riuscito a risolvere con un tentativo di aver copiato un altro Dim as long e avevo sostituito la i,
Ancora grazie mille
Buon pomeriggio;
leggo solo ora, pensavo di utilizzare un Ciclo VBA "Select case".
Può essere interessante?A disposizione.
Giuseppe
Può essere interessante?
Certo che è interessante. Tutto lo è
Posta pure la tua soluzione!
Cioa Vecchi Frac.
ho seguito le tue indicazioni ma mi va in errore su
Worksheets("Giornale_Lavori").Range("A1").Select
puoi dare un occhio al file e vedi dove mi inceppo?
ho sotituito anche
la stringa
.AutoFilter field:=2, Criteria1:=CStr(ce) in .AutoFilter field:=2, Criteria1:=CDate(ce)
ma niente.
ti riallego il file
Allegati:
You must be logged in to view attached files. -
AutoreArticoli
