Compilazione automa...
 
Notifiche
Cancella tutti

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.

Compilazione automatica celle di una tabella da un elenco generale

83 Post
5 Utenti
6 Reactions
8,237 Visualizzazioni
Forum 1
 vitt
(@vitt)
Post: 0
New Member
Avviatore di Topic
 

Buongiorno

Ho un elenco generale di componenti meccanici sul foglio "Materiali" e sulla base di questo devo compilare - su un altro foglio - diverse tabelle su cui saranno elencati solo alcuni di essi.

Nell'elenco generale, i componenti sono elencati in base a diametro, descrizione, spessore e peso unitario.

Sul foglio delle tabelle dovrò poi inserire la quantità, il diametro (possibilmente da un elenco a tendina che faccia riferimento all'elenco generale) e la descrizione (sempre da un elenco a tendina).

Ciò di cui necessito è una formula da inserire in tabella nella cella dello spessore e del peso unitario.

Premetto che al tabella è sufficientemente completa ma che potrebbe essere anche ampliata con altri componenti non ancora inseriti, per cui il campo di ricerca nel foglio "Materiali" sarebbe bene non fosse limitato al numeri di righe attualmente scritte ma andasse ben oltre.

Avrei poi un altro paio di domande da fare per affinare ulteriormente la compilazione delle tabelle ma per il momento sarebbe già tanto risolvere questo problema.

Ringrazio anticipatamente chi riuscisse ad aiutarmi

 

Versione di Excel
Sistema operativo
 
Postato : 04/06/2021 09:58
emme
 emme
(@emme)
Post: 0
Moderatore
 

Buongiorno. Il post andrebbe spostato in Macro e Vba.

Qualche buon samaritano si prenderà certamente in carico la richiesta.

 
Postato : 04/06/2021 10:35
D@nilo
(@dnilo)
Post: 0
New Member
 

Buongiorno 

.....riallega il file mettendo qualche risultato atteso scritto a mano nelle celle dove lo vuoi ottenere....e spiega come ci arrivi 

 
Postato : 04/06/2021 10:40
Forum 1
 vitt
(@vitt)
Post: 0
New Member
Avviatore di Topic
 

@dnilo:

allego un esempio di come dovrebbe essere compilata la tabella. Ho messo cose a caso (i valori di spessore e peso unitario però sono quelli corretti) tanto per intenderci.

 

 
Postato : 04/06/2021 11:07
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

bisogna estrapolare 

tubi

curve

ec...

 

creare delle liste univoche

 

da li con indiretto richiamarle sul primo foglio come convalida

ma a mio avviso ti serve una colonna in più sul foglio

piping

dove mettere la convalida con tubi-curve ecc...

 

troppi dati per non farlo con il vba

 
Postato : 04/06/2021 11:18
Forum 1
 vitt
(@vitt)
Post: 0
New Member
Avviatore di Topic
 

ragazzi... non vi seguo. Fatemi voi un esempio

Considerate che la mia conoscenza di excel è limitata alle funzioni base

 
Postato : 04/06/2021 11:30
D@nilo
(@dnilo)
Post: 0
New Member
 

Ciao

Per la prima tabella in D5 da trascinare in basso

 

=SE(E($D5="";$B5="");"";INDICE(Materiali!$B$2:$B$13266;CONFRONTA(1;INDICE((Materiali!$C$2:$C$13266=$D5)*(Materiali!$D$2:$D$13266=$F5)*(Materiali!$E$2:$E$13266=$G5);;);0)))

 

Adatta i riferimenti per eventuali altre

 
Postato : 06/06/2021 07:25
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

migliorabile ma è l'idea che avevo

se poi dei vbaisti la sistemano è meglio  ma funziona

ho sfruttato il difetto delle convalide che non azzerano quanto scritto al cambio.

 

clicca con il dx su una cella da D5 a D37

ti si apre una inputbox

scrivi le prime lettere del prodotto che cerchi  tipo tub

tubo -ridu-rid  quello che ti serve  più scrivi più filtra.

all'invio tutte le convalide saranno popolate da quel che cerchi.

compresa quella dei diametri che saranno filtrati in base a quello che cerchi.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("D5:D37")) Is Nothing Then
Tipo = InputBox("Inserisci prime lettere")
If Tipo = "" Then Exit Sub
Range("M1").Value = Tipo & "*"
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("M1")) Is Nothing Then
Application.EnableEvents = False
Sheets("Materiali").Select
Call FiltraECopia_in_altra_colonna
 Call altracolonna
Sheets("Piping Class 1 (Dettaglio)").Select
End If
Application.EnableEvents = True
End Sub

il filtro avviene in foglio Materiali

è molto migliorabile ma non sono un vba dipendente?

la formula per il calcolo è

=SE.ERRORE(SE(O($C5="";$D5="");"";INDICE(Materiali!D$2:D$20000;CONFRONTA(1;INDICE((Materiali!$C$2:$C20000=$D5)*(Materiali!$B$2:$B$20000=$C5);;);0)));"")

 

prova e facci sapere

 

Sub FiltraECopia_in_altra_colonna()

 ActiveSheet.Range("$C$1:$C$20000").AutoFilter Field:=1
Range("$N$1:$N$20000").ClearContents
    ActiveSheet.Range("$C$2:$C$20000").AutoFilter Field:=1, Criteria1:=Sheets("Piping Class 1 (Dettaglio)").Range("m1"), _
        Operator:=xlAnd
   
Range("C2:C20000").SpecialCells(xlCellTypeVisible).Copy

    ActiveSheet.Range("I1").PasteSpecial Paste:=xlPasteValues
   Range("I1:I" & Rows.Count).AdvancedFilter Action:= _
        xlFilterCopy, CopyToRange:=Range("N1"), Unique:=True
       Application.CutCopyMode = False
    Range("$I$1:$I$20000").ClearContents

 
End Sub


Sub altracolonna()

 ActiveSheet.Range("$C$1:$C$20000").AutoFilter Field:=1
Range("$m$1:$m$20000").ClearContents
    ActiveSheet.Range("$C$2:$C$20000").AutoFilter Field:=1, Criteria1:=Sheets("Piping Class 1 (Dettaglio)").Range("m1"), _
        Operator:=xlAnd
   
Range("C2:C20000").SpecialCells(xlCellTypeVisible).Offset(0, -1).Copy

    ActiveSheet.Range("I1").PasteSpecial Paste:=xlPasteValues
   Range("I1:I" & Rows.Count).AdvancedFilter Action:= _
        xlFilterCopy, CopyToRange:=Range("M1"), Unique:=True
       Application.CutCopyMode = False
    Range("$I$1:$I$20000").ClearContents

        
End Sub
 
Postato : 06/06/2021 18:54
Forum 1
 vitt
(@vitt)
Post: 0
New Member
Avviatore di Topic
 

@dnilo:

Ho provato ad inserire la stringa che mi hai suggerito ma quando al incollo nella cella D5 mi restituisce il messaggio "sono presenti uno o più riferimenti circolari ... "

clicco su Invio e nella cella compare uno 0 (zero) allineato a destra. Se poi provo a compilare il contenuto della cella con una delle descrizioni (tubo, curva, ecc.) mi scrive il testo come se nella cella non ci fosse nessuna formula.

 
Postato : 07/06/2021 08:12
Forum 1
 vitt
(@vitt)
Post: 0
New Member
Avviatore di Topic
 

@gianfranco55

Mi sembra che funzioni! Bisognerebbe che l'elenco che hai riprodotto in colonna N nel foglio materiali sia completo di tutti i componenti.

Anche la colonna M dei diametri andrebbe implementata (per fare un esempio, le riduzioni possono essere contrassegnate come 4"x3", ecc.)

 
Postato : 07/06/2021 08:19
D@nilo
(@dnilo)
Post: 0
New Member
 

Ciao

Sicuramente il file dove la stai incollando non è  uguale all esempio sul quale ho lavorato 

 

 
Postato : 07/06/2021 08:27
Forum 1
 vitt
(@vitt)
Post: 0
New Member
Avviatore di Topic
 

@dnilo

Hai ragione. Però trovo delle difficoltà nell inserimento delle descrizioni e dei diametri.

Cioè, se incollo la strinaga nella cella D5 quando poi inserisco una descrizione, mi sostutuisce il contenuto della cella con ciò che sto scrivendo

 
Postato : 07/06/2021 08:44
D@nilo
(@dnilo)
Post: 0
New Member
 

Ciao

Io non sono nel tuo pc....con la struttura dell esempio si ottengono i risultati attesi....

Allega il file con l errore

 
Postato : 07/06/2021 08:49
Forum 1
 vitt
(@vitt)
Post: 0
New Member
Avviatore di Topic
 

Ciao.

Ho fatto quanto dici ma quando provo ad inserire le descrizioni inserico i dati come se scivessi in una cella vuota e nella corrisopndente cella del diametro compare #N/D

 

 
Postato : 07/06/2021 09:01
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

fermi tutti ? 

Danilo tu cerchi il diametro avendo spessore e peso

io cerco spessore e peso avendo il diametro

qual'è la cosa da fare? ? 

 

Vitt

guarda che i diametri inerenti al filtro ci sono tutti

e i componenti ci sono tutti solo in forma univoca

è stupido scrivere TUBO SMLS SCH.5S - ASME B36.10M

per 20 volte in convalida

ti basta una volta e poi scegli il diametro

ed è finita.

 

regola uno

 

allegare il file con la struttura uguale all'originale

righe colonne uguali pena

non riuscire a variare formule/macro

proposte.

 

 
Postato : 07/06/2021 09:02
Pagina 1 / 6
Condividi:
My Agile Privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.
Attenzione: alcune funzionalità di questa pagina potrebbero essere bloccate a seguito delle tue scelte privacy
     Scarica il nostro ebook gratuito     

Unisciti a oltre 35.000 professionisti
che hanno già scelto di semplificare il proprio lavoro
e aumentare la produttività con la nostra newsletter!

Scarica l’ebook con i
migliori trucchi e suggerimenti per Excel
selezionati per te da Excel Academy

Download