Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

cerca dati e copia concatenati

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

cerca dati e copia concatenati

Postdi sspedali » 30/07/09 23:16

Ciao, scusate ma è un po che cerco di creare una macro, ma nonostante abbia letto molti esempi non sono riuscito a venire a capo del mio problema. le mie conoscenze di programmazione sono molto quasi nulle e sono svariate sere che provo senza successo.


Ho un foglio excel composto da 4 colonne
la prima contiene un ID ( che può essere ripetuto su più righe in quanto per ogni ID posso eserre stati emessi più ordini)
La seconda contiene un numero di ordine
la terza il valore dell'ordine
la quarte il fornitore

ho la necessità di scrivere, in un nuovo foglio, per lo stesso ID tutti gli ordini emessi , l'importo totale ed i forntori

la macro deve generare:
una riga per ogni id
nella prima cella ci deve essere l'id
nella seconda cella tutti gli ordini emessi per l'Id (concatenati)
nella terza cella la somma dei valori degli ordini emessi per l'ID
nella quarta i nomi dei fornitori concatenati

Vi ringrazio in anticipo per l'aiuto
Ciao
Sergio
sspedali
Newbie
 
Post: 3
Iscritto il: 30/07/09 23:05

Sponsor
 

Re: cerca dati e copia concatenati

Postdi Anthony47 » 31/07/09 13:48

Ciao sspedali e benvenuto nel forum.
L' output che chiedi non e' proprio quello che io consiglio, perche' assolutamente non piu' processabile; comunque ricordo che c' era stata una richiesta analoga che era stata risolta con una udf (funzione definita dall' utente). Cerchero' piu' tardi e ti mandero' il link.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cerca dati e copia concatenati

Postdi sspedali » 31/07/09 18:52

Caio Antony,

Grazie mille per la risposta, attendo .
Ciao
Sergio
sspedali
Newbie
 
Post: 3
Iscritto il: 30/07/09 23:05

Re: cerca dati e copia concatenati

Postdi ricky53 » 31/07/09 23:05

Ciao,
mi associo a quanto scritto da Anthony ed aggiungo:
perchè non
"ripensi"
la tua esigenza e vedi se un'altra soluzione puoi andare bene?

Per esempio una "Tabella Pivot"

Ciao da Ricky53
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: cerca dati e copia concatenati

Postdi sspedali » 01/08/09 18:49

Ciao ad entrambi
Ho provato ma con la tabella pivot non risolvo il mio problema.
Grazie comunque .
Sergio
sspedali
Newbie
 
Post: 3
Iscritto il: 30/07/09 23:05

Re: cerca dati e copia concatenati

Postdi Flash30005 » 03/08/09 00:57

Ciao Sspedali
Prova ad inserire questa macro in un modulo
Codice: Seleziona tutto
Sub Compila()
Application.ScreenUpdating = False
Application.Calculation = xlManual
Worksheets("Riepilogo").Cells.ClearContents
Sheets("Foglio1").Select
Range("A1:D1").Select
Selection.Copy
Sheets("Riepilogo").Select
Range("A1:D1").Select
ActiveSheet.Paste
Ord = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row

For N = 2 To Ord
Trov = 0
    URR = Worksheets("Riepilogo").Range("A" & Rows.Count).End(xlUp).Row
    For RR = 2 To URR
                If Worksheets("Foglio1").Range("A" & N).Value = Worksheets("Riepilogo").Range("A" & RR).Value Then
                Trov = Trov + 1
                Worksheets("Riepilogo").Range("B" & RR).Value = Worksheets("Riepilogo").Range("B" & RR).Value & " " & Worksheets("Foglio1").Range("B" & N).Value
                Worksheets("Riepilogo").Range("C" & RR).Value = Worksheets("Riepilogo").Range("C" & RR).Value + Worksheets("Foglio1").Range("C" & N).Value
                Worksheets("Riepilogo").Range("D" & RR).Value = Worksheets("Riepilogo").Range("D" & RR).Value & " " & Worksheets("Foglio1").Range("D" & N).Value
                GoTo esci
                End If
    Next RR
                If Trov = 0 Then
                Worksheets("Riepilogo").Range("A" & RR).Value = Worksheets("Foglio1").Range("A" & N).Value
                Worksheets("Riepilogo").Range("B" & RR).Value = Worksheets("Foglio1").Range("B" & N).Value
                Worksheets("Riepilogo").Range("C" & RR).Value = Worksheets("Foglio1").Range("C" & N).Value
                Worksheets("Riepilogo").Range("D" & RR).Value = Worksheets("Foglio1").Range("D" & N).Value
                End If
esci:
Next N
Range("A1").Select
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

Ho considerato i dati nel foglio1 e il risultato della macro nel foglio Riepilogo quindi sostituisci il Nometuofoglio dove trovi Foglio1 nella macro (lasciando le virgolette) puoi utilizzare il Sostituisci del menu Modifica
Poi avvia la macro "Compila"

Fai sapere se Ok
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cerca dati e copia concatenati

Postdi Anthony47 » 03/08/09 01:05

Ah ah...
Ho appena finito di collaudare la soluzione basata su udf, e trovo la macro di Flash! Beh, vuol dire che sceglierai la soluzione che piu' ti piace.

Ho preparato questa "udf" che fa quasi tutto quello che chiedi, meno la preparazione dell' elenco degli Id, che farai tramite un "Filltro avanzato": Menu /Dati /Filtro avanzato; spunta Copia univoca dei record e Copia in altra posizione; nel campo Copia in inserisci l' origine dove vuoi creare il nuovo elenco es M2 (basta cliccare su M2); Ok.
Poi apri l' editor del vba, tramite Alt-F11; Menu /Inserisci /Modulo; copia il seguente codice e incollalo nel frame di dx del vba:
Codice: Seleziona tutto
Function concas(ValSe, ValArea As Range, Operaz As String, Scart As Integer) As Variant
For Each Cell In ValArea
If Cell = ValSe Then
Select Case Operaz
Case "+"
concas = concas + Val(Cell.Offset(0, Scart))
Case ","
If concas = "" Then concas = Cell.Offset(0, Scart) Else concas = concas & Operaz & " " & Cell.Offset(0, Scart)
If concas = 0 Then concas = ""
Case " "
If concas = "" Then concas = Cell.Offset(0, Scart) Else concas = concas & Operaz & Cell.Offset(0, Scart)
If concas = 0 Then concas = ""
End Select
End If
Next Cell
End Function

Quindi torna su excel e nella cella accanto all' elenco degli Id (in N2, ad esempio) usa una formula come questa:
Codice: Seleziona tutto
=concas($M2;$A$1:$A$100;"+";2)
La sintassi della formula e' la seguente:
Codice: Seleziona tutto
=CONCAS(Valore Id da verificare;Area verticale degli Id; Operatore; Scarto)

La formula di esempio crea la somma dei valori di col C (cioe' col A+2), se in col A c' e' l' Id segnato in M2; invece del "+" puoi usare " " oppure "," che rispettivamente concatenano i valori presenti usando come separatore lo "spazio" oppure "virgola + spazio"; il valore 2 nella formula di esempio rappresenta lo scarto (in colonna) rispetto alla colonna originale (col A, nella formula); adatta quindi la formula usando l' operatore che ti serve nelle varie posizioni ("+" per la somma dei valori degli ordini, " " oppure "," per concatenare gli altri campi) e lo scarto del dato da prelevare.

Fai sapere dove arrivi, ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cerca dati e copia concatenati

Postdi carlodag » 21/08/09 08:37

Scusatemi questa cosa non la potrei fare anch'io in Access??? tipo ho una tabella con 5 campi tipo nome, cognome, qualifica ecc.... ora se io creo un casella di testo nel form e inseirsco il cognome lui in automatico mi dovrebbe inserire gli altri dati.

E possibile???
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Re: cerca dati e copia concatenati

Postdi Anthony47 » 21/08/09 13:52

Per sapere se e' possibile e come fare una cosa analoga bisognerebbe conoscere sia access che struttura e sintassi del relativo vba; per me, che a mala pena capisco che cosa e' un db, e' off limits.
Vediamo se altri possono contribuire...

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "cerca dati e copia concatenati":


Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti