Condividi:        

macro per sommare automaticamente righe di codici di articol

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

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 15/09/14 09:33

Ok! Grazie mille!Attendo una tua risposta per quell'altro problema!Grazie per il tuo grosso aiuto!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Sponsor
 

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 15/09/14 10:12

Codice: Seleziona tutto
Sub riepzc2()
Dim I As Long, J As Long, LastI As Long, RIEP As Worksheet
Dim myMatch, myTim As Single, myNSh As String
'
myNSh = "ZcRiep_" & Format(Now(), "yy-mm-dd_hh-mm")
'
If Not ShExists(myNSh) Then
    Worksheets.Add after:=Sheets(ThisWorkbook.Sheets.Count)
    ActiveSheet.Name = myNSh
End If
'
Set RIEP = Sheets(myNSh)
'
RIEP.Rows("2:10000").ClearContents      '*** Vedi testo
RIEP.Columns("C:C").NumberFormat = "@"
'
myTim = Timer
For I = 1 To Worksheets.Count
    If Left(Worksheets(I).Name, 7) <> "ZcRiep_" Then
        With Worksheets(I)
            LastI = .Cells(Rows.Count, "I").End(xlUp).Row
            For J = 2 To LastI
                myMatch = Application.Match(Trim(.Cells(J, 9).Value), RIEP.Range("C:C"), 0)
                If IsError(myMatch) Then
                    RIEP.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Value = Trim(.Cells(J, 9).Value)
                    RIEP.Cells(Rows.Count, 3).End(xlUp).Offset(0, -1).Value = .Cells(J, 2).Value
                    RIEP.Cells(Rows.Count, 3).End(xlUp).Offset(0, 1).Value = .Cells(J, 4).Value
                    RIEP.Cells(Rows.Count, 3).End(xlUp).Offset(0, 2).Value = .Cells(J, 5).Value
                    RIEP.Cells(Rows.Count, 3).End(xlUp).Offset(0, 3).Value = .Cells(J, 7).Value
                Else
                    RIEP.Cells(myMatch, 2) = RIEP.Cells(myMatch, 2) + .Cells(J, 2).Value
                End If
            Next J
        End With
    End If
    Next I
Call CompaRieps(RIEP.Index, RIEP)
RIEP.Columns("B:C").NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"    '???
RIEP.Columns("C:C").EntireColumn.AutoFit
MsgBox ("Completato (" & Format(Timer - myTim, "0.00") & "sec)")
renum
End Sub

Function ShExists(ByVal mySh As String) As Boolean
'
On Error Resume Next
ShExists = Len(Sheets(mySh).Name) > 0
'
End Function

Sub CompaRieps(ByVal shIndex As Long, rRiep As Worksheet)
Dim myVarr, LastM1 As Long, L As Long, myMatch
'
If shIndex < 3 Then Exit Sub
If Left(Worksheets(shIndex - 1).Name, 7) <> "ZcRiep_" Then Exit Sub
'
LastM1 = Sheets(shIndex - 1).Cells(Rows.Count, 1).End(xlUp).Row
myVarr = Sheets(shIndex - 1).Range("A1:B" & LastM1).Value
For L = (LBound(myVarr, 1) + 1) To UBound(myVarr, 1)
    myMatch = Application.Match(Trim(myVarr(L, 1)), Sheets(shIndex).Range("C:C"), 0)
        If myVarr(L, 1) <> "ZcMiss" Then
                If IsError(myMatch) Then
                    rRiep.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = "ZcMiss"
                    rRiep.Cells(Rows.Count, 1).End(xlUp).Offset(0, 3).Value = myVarr(L, 1)
                    rRiep.Cells(Rows.Count, 1).End(xlUp).Offset(0, 2).Value = myVarr(L, 2)
                Else
                    If (rRiep.Cells(myMatch, 2).Value <> myVarr(L, 2)) Then
                        rRiep.Cells(myMatch, 3) = myVarr(L, 2)
                        rRiep.Cells(myMatch, 4) = myVarr(L, 1)
                    Else
                        rRiep.Cells(myMatch, 3) = 0
                    End If
                End If
        End If
   
Next L
End Sub
Private Sub renum()
Dim x, C2
'
x = 0
For Each C2 In Range("C:C")
If C2 <> "" Then
C2.Offset(0, -2).Value = x
'Else
'Hl.Offset(0, -7).Value = ""
End If
x = x + 1
Next
End Sub


Ho modificato la sub riepzc2 per inserire in colonna A la numerazione progressiva degli item. Il piccolo problema è che la colonna A si riempie dopo che si visualizza il messaggio" completato in...". L'altro problema è che ora per il confronto con un altro riepilogo in colonna C non avrò più le differenze.Come modifico per ora il codice riepzc2 per il confronto?Grazie mille
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 16/09/14 16:13

Buon pomeriggio a tutti! Scusatemi per l'insistenza, ma ho bisogno del vostro aiuto! Potreste dirmi come fare a visualizzare sul foglio riepilogo in quale foglio è riportato il codice con relativa q.tà e differenza di q.tà? Come si modifica la riepzc2? Su internet sto vedendo un pò, sto provando con la funzione collegamento ipertestuale, ma non so come definire bene il range di indirizzamento! Forse sono fuori strada! Questo deve essere riportato nel file template. Un altro problema è come aggiornare il file riepilogo con due colonne in più nel caso dovessi avere input esterni al file.Aspetto una vostra risposta, grazie davvero per tutto l'aiuto che mi darete!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 18/09/14 21:35

Buonasera a tutti c'è qualcuno che può aiutarmi? Sono bloccata! Grazie mille!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi Flash30005 » 19/09/14 02:09

Per il pimo problema (messaggio che appare prima della numerazione in colonna A
devi spostare le due righe codice esistenti (invertendo l'ordine)
Attuale
Codice: Seleziona tutto
MsgBox ("Completato (" & Format(Timer - myTim, "0.00") & "sec)")
renum

Dopo modifica si devono presentare così
Codice: Seleziona tutto
renum
MsgBox ("Completato (" & Format(Timer - myTim, "0.00") & "sec)")


Per il resto dovrei capire meglio il problema perché la descrizione di ciò che ti accade ora non so avviene per una tua nuova esigenza oppure non è stato risolto il problema iniziale (all'origine del topic).
Sappi che non è conveniente per nessuno iniziare a dire solo una parte del problema per poi continuare a spiegare per farsi risolvere nuove esigenze perché prima di "imbastire" una o più macro si deve sapere sin dall'inizio il fine da raggiungere e non spostare questo "fine" all'infinito oppure, altro dubbio è che non avevi idee chiare nemmeno tu all'inizio e la cosa sarebbe ancora più grave.

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 19/09/14 14:01

Buon pomeriggio, il mio problema è dato dalla modifica della macro riepzc2 scritta da Anthony, che andava benissimo. Ora è sorto un nuovo problema, derivato dal fatto che bisognerebbe aggiungere delle colonne che sono mostrate nel file di esempio denominato template. Vorrei sapere come far risultare nel file di output, cioè Zcriep, il foglio nel quale si trova il codice, e indicarmi nella sottocolonna la q.tà, le note, e la differenza di quantità, sempre rifacendomi alla macro riepzc2, che parla appunto della differenza. Dovrebbe essere modificato quel codice, ma non so da dove incominciare!Grazie mille a tutti voi, e scusatemi, ma ora mi sto approcciando a questo linguaggio. Grazie per la vostra disponibilità!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 19/09/14 14:27

Scusami Flash per la mia grande ignoranza! Spero di essermi spiegata meglio e grazie per tutto!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 21/09/14 19:45

Buonasera a tutti, scusatemi per la mia insistenza, ma ho urgentemente bisogno del vostro grande aiuto! Io non riesco più ad andare avanti. Aspetto vostre e grazie infinitamente!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi Anthony47 » 21/09/14 23:09

Il mio ultimo messaggio, ora "penultimo", (viewtopic.php?f=26&t=102426&start=20#p596410) era una richiesta di chiarimento circa la tua segnalazione "mi escono in una sola riga tutti i dati delle colonne D, E, G", e non ho capito la risposta; quindi al momento non sono in grado di dire niente.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 22/09/14 09:55

Buongiorno Anthony, ho fatto come mi dicevi, e ho riportato nelle colonne D, E e G i dati dei fogli di calcolo. Ora il mio problema è riportare nel foglio di riepilogo una colonna che mi indichi a quale foglio della stessa cartella di lavoro appartiene quel codice. La cosa può essere pensata con 5 colonne che rappresentano i 5 fogli , contrassegnati da una X che indica che quel codice è riportato in quel foglio, e che mi indichi anche la q.tà e le note di quel foglio in cui è presente il codice. I files che ho postato riuscite a vederli? Non riesco a scrivere il codice che faccia questo. Grazie di tutto!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 23/09/14 15:21

Buon pomeriggio a tutti! Vorrei chiedervi un consiglio, se posso. Dato che devo riportare nella colonna del foglio riepilogo creato con la macro riepzc2 il nome del foglio in cui si trovano i codici riportati in colonna c, posso usare la funzione find? Non so però come inserirla nel codice della riepzc2 potreste darmi un input?Grazie!!!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi Anthony47 » 24/09/14 00:18

Codice: Seleziona tutto
    For J = 2 To LastI
        myMatch = Application.Match(Trim(.Cells(J, 9).Value), RIEP.Range("A:A"), 0)
        If IsError(myMatch) Then
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Trim(.Cells(J, 9).Value)
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Value = .Cells(J, 2).Value
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 3).Value = .Cells(J, 4).Value     '+++
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 4).Value = .Cells(J, 5).Value     '+++
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 5).Value = .Cells(J, 7).Value     '+++
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 8).Value = Worksheets(I).Name     '^^^^^
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 7).Value = .Cells(J, 2).Value     '^^^^^
        Else
            RIEP.Cells(myMatch, 2) = RIEP.Cells(myMatch, 2) + .Cells(J, 2).Value
            nextc = RIEP.Cells(myMatch, Columns.Count).End(xlToLeft).Offset(0, 1).Column    '^^^^^
            RIEP.Cells(myMatch, nextc + 1).Value = Worksheets(I).Name                       '^^^^^
            RIEP.Cells(myMatch, nextc).Value = .Cells(J, 2).Value                           '^^^^^
        End If
    Next J

L' aggiunta, nel codice della Sub riepzc2, delle righe marcate "^^^^^" consentira' di aggiungere a ogni codice un tot di coppie di colonne contenente Quantita' /Nome Foglio, come mostrato in questa immagine:
Immagine
upload immagini gratis
(sono le colonne dalla H in avanti; fai tasto dx sull' immagine /visualizza immagine per vedere l' immagine completa)

Nota che se quel codice compare N volte nello stesso foglio allora compariranno N coppie di valori, come succede con le prime 3 righe dell' immagine.

Spero che possa essere di qualche utilita'.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 25/09/14 10:03

Grazie mille Anthony!Ma volevo chiederti con la modifica fatta alla riepzc2 in colonna d non ho più i codici prelevati dal riepilogo precedente? Scusami se te lo chiedo, ma se volessi riportare anche le note di ogni foglio, oltre al nome del foglio e alla q.tà, cosa dovrei aggiungere al codice?Grazie davvero tanto!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi Anthony47 » 25/09/14 14:18

Se guardi l' immagine inserita nel mio messaggio precedente si vede che le colonne D-E-F sono compilate con le info prelevate dai Fogli; e' possibile che non sei stata indietro alle modifiche man mano che le introducevamo?
Versione iniziale: viewtopic.php?f=26&t=102426&start=20#p594931
Modifica1 viewtopic.php?f=26&t=102426&start=20#p596228
Modifica2 viewtopic.php?f=26&t=102426&start=40#p597031

La Sub riepzc2() risultante corrisponde a questo codice
Codice: Seleziona tutto
Sub riepzc2()
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=102426
'--rivista1 per importare anche Descriz, Part Numb e Note (la chiave e' il CodiceAzienda)
'--rivista2 per inserire i Fogli di appartenenza del codice

Dim I As Long, J As Long, LastI As Long, RIEP As Worksheet
Dim myMatch, myTim As Single, myNSh As String
'
myNSh = "ZcRiep_" & Format(Now(), "yy-mm-dd_hh-mm")
'
If Not ShExists(myNSh) Then
    Worksheets.Add after:=Sheets(ThisWorkbook.Sheets.Count)
    ActiveSheet.Name = myNSh
End If
'
Set RIEP = Sheets(myNSh)
'
RIEP.Rows("2:10000").ClearContents      '*** Vedi testo
RIEP.Columns("A:A").NumberFormat = "@"
'
myTim = Timer
For I = 1 To Worksheets.Count
    If Left(Worksheets(I).Name, 7) <> "ZcRiep_" Then
        With Worksheets(I)
            LastI = .Cells(Rows.Count, "I").End(xlUp).Row
    For J = 2 To LastI
        myMatch = Application.Match(Trim(.Cells(J, 9).Value), RIEP.Range("A:A"), 0)
        If IsError(myMatch) Then
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Trim(.Cells(J, 9).Value)
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 1).Value = .Cells(J, 2).Value
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 3).Value = .Cells(J, 4).Value     '+++
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 4).Value = .Cells(J, 5).Value     '+++
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 5).Value = .Cells(J, 7).Value     '+++
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 8).Value = Worksheets(I).Name     '^^^^^
            RIEP.Cells(Rows.Count, 1).End(xlUp).Offset(0, 7).Value = .Cells(J, 2).Value     '^^^^^
        Else
            RIEP.Cells(myMatch, 2) = RIEP.Cells(myMatch, 2) + .Cells(J, 2).Value
            nextc = RIEP.Cells(myMatch, Columns.Count).End(xlToLeft).Offset(0, 1).Column    '^^^^^
            RIEP.Cells(myMatch, nextc + 1).Value = Worksheets(I).Name                       '^^^^^
            RIEP.Cells(myMatch, nextc).Value = .Cells(J, 2).Value                           '^^^^^
        End If
    Next J
        End With
    End If
    Next I
Call CompaRieps(RIEP.Index, RIEP)
RIEP.Columns("B:C").NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"    '???
RIEP.Columns("A:A").EntireColumn.AutoFit
MsgBox ("Completato (" & Format(Timer - myTim, "0.00") & "sec)")
End Sub

Sostituisci interamente il codice della riepzc2 che usi con questo aggiornato.

Il codice delle altre macro:
Function ShExists(ByVal mySh As String) As Boolean
Sub CompaRieps(ByVal shIndex As Long, rRiep As Worksheet)
non e' invece cambiato

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 26/09/14 08:49

Ciao Anthony, grazie e scusami se ti ho chiesto una cosa un pò "scontata"! Vorrei chiederti, se posso, come fare a evidenziare, cioè colorare, le differenze tra i due riepiloghi. Se nell'ultimo riepilogo creato dovessi aggiungere in colonna N, O dei dati manuali, come posso con una macro tenere traccia di questa aggiunta? Ho visto il topic viewtopic.php?f=26&t=82607&start=40, nel quale si parla di vecchio e nuovo catalogo, potrebbe fare al caso mio?In colonna A e B ho, come nel topic, Codice e q,tà, potrei adattarlo?Grazie mille e scusatemi tanto!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 29/09/14 10:08

Buongiorno a tutti, scusatemi ancora se vi disturbo, ma ho bisogno ancora del vostro aiuto. Mi è stato chiesto di aggiungere nel foglio riepilogo le note di ogni foglio relative al codice che si considera. Quindi nell'ultima riepzc2 dovrei avere non solo due colonne relative alla q.tà e foglio, ma anche una colonna delle note di ogni foglio. Non so se posso, ma vorrei sapere se è possibile colorare le celle che hanno un contenuto che è cambiato tra i due riepiloghi a confronto. Grazie di tutto!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 29/09/14 10:39

Sto provando a cambiare gli offset di colonna ma mi sto incasinando! Potreste aiutarmi?Grazie davvero!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 29/09/14 12:17

RIEP.Cells(myMatch, nextc+2).Value = .Cells(J, 7).Value
Scusate, io metto questo comando perchè voglio riportare le note di ogni foglio in corrispondenza di ogni codice, ma perchè non vengono riportarte tutte le note di tutti i fogli in corrispondenza del codice che considero? Dove sbaglio?
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 29/10/14 10:52

Ciao a tutti!Potreste darmi un grosso aiuto? Nella Sub CompaRieps(ByVal shIndex As Long, rRiep As Worksheet) vorrei visualizzare i nuovi codici non più nella colonna D ma nella colonna A dove compare la scritta Zcmiss. Vorrei che non comparisse più la scritta Zc Miss ma i nuovi codici che risultano dal confronto. Grazie mille!per favore è urgente!Grazie
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

Re: macro per sommare automaticamente righe di codici di art

Postdi vale2882 » 05/11/14 11:20

Buongiorno a tutti!!Vorrei chiedervi un aiuto!Sono bloccata!Nella macro scritta da Anthony, nella parte in cui si fa il confronto tra due riepiloghi, i codici nuovi sono stati evidenziati con la scritta ZcMiss in colonna A e riportati in colonna D i rispettivi codici. Vorrei che la scritta ZcMiss non ci fosse e al posto di questa, in colonna A, dovrebbero essserci i codici riportati in col D, e in colonna D riportare la desrcizione di ogni codice presa dai singoli fogli(nei singoli fogli la descrizione è in colonna D), riportare in colonna E le note (che nei singoli folgi è in colonnaG). Per favore, potreste darmi una mano???Grazie!!!
vale2882
Utente Junior
 
Post: 98
Iscritto il: 29/07/14 18:41

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "macro per sommare automaticamente righe di codici di articol":


Chi c’è in linea

Visitano il forum: Ricky0185 e 44 ospiti