Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Gestione due totali

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

Gestione due totali

Postdi danibi60 » 31/12/20 18:19

Ciao a tutti e buon ultimo girono di quest'anno di m.....

Avrei bisogno del Vostro aiuto per creare un automatismo che lavori i due fogli di excel (che vi allego) il tutto partendo da due tabelle che estraggo così pari pari come le vedete collocate nei due file:

Una tabella denominata: Orders - FILE DI PARTENZA collocata nel file PICKING Orders e l'altra tabella denominata Orders - FILE ORIGINE collocata nel file Scarico Magazzino

All'interno poi dei due file avrei già costruito in modo rudimentale e manualmente il risultato che vorrei ottenere (sempre migliorabile s'intende) ma che vorrei avesse questi vincoli:
Ordinare sempre il tutto per:

1) ORDINARE PER ITEM NAME (L'ITEM NAME DI FATTO è IL CODICE ARTICOLO) E NR ORDINE
2) CREARE SUBTOTALE QUANTITA' AL VARIARE DI ITEM NAME
3) AUMENTARE NELLA RIGA DEI SUBTOTALI SIA LA DIMENSIONE DEL CARATTERE + GRASSETTO + FONDO CELLA GIALLO E TOGLIERE SCRITTA TOTALE


Quanto sopra sia per il file "Scarico Magazzino" sia per il file "Picking Orders" in quest'ultimo però il fondo del subtotale dev'esser però grigio anziché giallo.

Non so se per fare questo servirà una macro, il mio obiettivo è semplificare al massimo questa operazione e se qualcuno ha un idea migliore per lavorarli entrambi contemporaneamente ottenendo un risultato migliore e più gradevole nonché utile e preciso del mio (cosa che credo per esperti come voi sarà un gioco da ragazzi) ben venga qualsiasi suggerimento.

Grazie Daniby
PS
Naturalmente nel foglio dei totali è superfluo che sia il riepilogo dei vari articoli
Spero d'esser stao sufficientemente chiaro

BUON ANNO

https://www.dropbox.com/s/jkxx249kqise8 ... .xlsx?dl=0

https://www.dropbox.com/s/f1jgc7aplvnan ... .xlsx?dl=0
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Sponsor
 

Re: Gestione due totali

Postdi Anthony47 » 31/12/20 22:47

Una risposta rapida, mentre guardero' poi con calma per (eventuali) altri suggerimenti.

Mi pare che puoi fare quasi tutto in proprio con una macro autoregistrata, usando comandi gia' disponibili in Excel. Il procedimento:
-avvia la registrazione di una nuova macro
-seleziona il foglio Orders - FILE DI PARTENZA, tasto dx sul tab col suo nome, scegli Sposta o Copia, spunta Crea una copia; completa con Ok. Questo ti creera' una copia del tuo foglio
-se vuoi spostare le colonne rispetto alla loro posizione attuale: seleziona l'intera colonna E (per esempio), premi Contr-x (taglia); seleziona A1 (se vuoi mettere la colonna E a sinistra dell'attuale colonna A), premi Enter. Continua spostando cosi' tutte le colonne che vuoi riposizionare
-seleziona tutte le colonne contenenti dati (quindi A:F, nell'esempio) e avvia l'ordinamento dati; spunta "Dati con intestazione", aggiungi la prima chiave di ordinamento (Item Name) e poi la seconda chiave (Order Number); completa l'ordinamento
-sempre con le colonne A:F selezionale, inserisci i subtotali, scegliendo "A ogni cambiamento" di "Item name", la funzione Somma, e la colonna Quantity (lo hai gia' fatto nel tuo file, sarebbe stato inutile ripeterlo; ma se un terzo vuole seguirci ha anche lui tutti gli elementi)
-a questo punto viene inserita la riga del subtotale, nel suo formato standard (grassetto)

Potresti continuare e applicare la formattazione condizionale per aggiungere il Grigio alla cella del subtotale: selezioni da A2 verso il basso; applichi la formattazione condizionale usando la formula =VAL.FORMULA(F1); scegli il colore che vuoi.

Se invece vuoi proprio modificare il testo della riga di subtotale e modificarne la dimensione (cose che non si possono fare con la formattazione condizionale) allora e' inutile applicare la formattazione condizionale per inserire il solo sfondo grigio. Quindi termina la regsitrazione della macro, poi aprila e in coda sostituisci la End Sub con
Codice: Seleziona tutto
Call Formatter
End Sub


Sub Formatter()
Dim I As Long, bgCol As Long
'
For I = 1 To Cells(Rows.Count, "F").End(xlUp).Row
    If Cells(I, "F").HasFormula Then
        bgCol = RGB(250, 250, 200) 'usare 250, 250, 200 per "giallino"          '<<<
        Cells(I, "A").Value = Replace(Cells(I, "A").Value, " Totale", "", , , vbTextCompare)
        Cells(I, "A").Interior.Color = bgCol
        Cells(I, "F").Interior.Color = bgCol
        Cells(I, "A").Resize(1, 6).Font.Size = Cells(I - 1, "A").Font.Size + 4  '<<<
    End If
Next I
End Sub

In pratica, in coda alla macro autoregistrata (che duplica il foglio, ne riarrangia le colonne, ordina e mette i Subtotali) richiami la macro che mette un colore di sfondo, modifica il testo e incrementa la dimensione dei caratteri

Buon anno
Avatar utente
Anthony47
Moderatore
 
Post: 17352
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestione due totali

Postdi Marius44 » 01/01/21 00:20

Buon anno Nuovo a tutti

Visto che l'ho fatto posto anche la mia soluzione (molto, ma molto meno professionale di quella di Anthony).
Codice: Seleziona tutto
Option Explicit

Sub Riporta()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim ur As Long, ur2 As Long, i As Long, j As Long, rg As Long
Dim elenco As String, itm As String

Application.ScreenUpdating = False
Set sh1 = Sheets("Foglio1") '<===== da modificare col nome del Foglio
Set sh2 = Sheets("Orders - FILE DI PARTENZA")
ur = sh2.Cells(Rows.Count, 1).End(xlUp).Row
ur2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
With sh1.Range("A2:F" & ur2 + 100)
  .ClearContents
  .Rows.Ungroup
  .Interior.ColorIndex = xlNone
  .Font.Bold = False
  .Font.Size = 11
End With
On Error GoTo 0
ReDim nItm(1 To ur - 1)
ReDim nNum(1 To ur - 1)
ReDim nDat(1 To ur - 1)
ReDim nSta(1 To ur - 1)
ReDim nSku(1 To ur - 1)
ReDim nQty(1 To ur - 1)
For i = 2 To ur
  With sh2
    nItm(i - 1) = .Cells(i, 5).Value
    nNum(i - 1) = .Cells(i, 1).Value
    nDat(i - 1) = .Cells(i, 2).Value
    nSta(i - 1) = .Cells(i, 3).Value
    nSku(i - 1) = .Cells(i, 4).Text
    nQty(i - 1) = .Cells(i, 6).Value
  End With
Next i
For i = 2 To ur
  With sh1
    .Cells(i, 1) = nItm(i - 1)
    .Cells(i, 2) = nNum(i - 1)
    .Cells(i, 3) = nDat(i - 1)
    .Cells(i, 4) = nSta(i - 1)
    .Cells(i, 5) = nSku(i - 1)
    .Cells(i, 6) = nQty(i - 1)
  End With
Next i
With sh1
  elenco = "A1:F" & ur
  .Range(elenco).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
For i = ur To 2 Step -1
  itm = sh1.Cells(i, 1)
  For j = i - 1 To 2 Step -1
    If sh1.Cells(j, 1) <> itm Then
      rg = j + 1
      Range(Cells(rg, 1), Cells(i, 6)).Select
      Rows(i + 1).EntireRow.Insert
      Range(Cells(rg, 1), Cells(i, 6)).Rows.Group
      Cells(i + 1, 1) = Cells(i, 1)
      Cells(i + 1, 1).Font.Bold = True
      Cells(i + 1, 1).Font.Size = 14
      Cells(i + 1, 1).Interior.ColorIndex = 15
      Cells(i + 1, 6) = Application.Sum(Range("F" & rg & ":F" & i))
      Cells(i + 1, 6).Font.Bold = True
      Cells(i + 1, 6).Font.Size = 14
      Cells(i + 1, 6).Interior.ColorIndex = 15
      i = rg
      Exit For
    End If
  Next j
Next i
Application.ScreenUpdating = True
sh1.Cells(1, 7).Select
End Sub

Ovviamente da associare ad un pulsante (Modulo non AcitevX)

Ciao,
Mario
Marius44
Utente Senior
 
Post: 531
Iscritto il: 07/09/15 22:00

Re: Gestione due totali

Postdi danibi60 » 01/01/21 10:48

Buongiorno Marius, la Tua proposta sembra aver centrato al meglio la mia richiesta, unica segnalazione (che ti allego nel risultato) è il totale evidenziato in grigio dovrebbe raggruppare sopra di esso tutti gli articoli dello stesso modello, per meglio comprendere cosa ti intendo Ti ho evidenziato in verde il modello Ambrosia che come noterai i evidenzia su più righe... mentre invece tutti e 4 gli articoli dovrebbero esser posti sopra il totalone...

https://www.dropbox.com/s/ugx7i0skbpv9i ... .xlsm?dl=0

Infine l'ordinamento della colonna A dev'esser in ordine alfabetico

Inoltre i numeri espressi in colonna E risultano non leggibili nella loro interezza

Ti allego il file


Grazie
Daniby

BUON ANNO!!
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi danibi60 » 01/01/21 10:49

Buongiorno Marius, la Tua proposta sembra aver centrato al meglio la mia richiesta, unica segnalazione (che ti allego nel risultato) è il totale evidenziato in grigio dovrebbe raggruppare sopra di esso tutti gli articoli dello stesso modello, per meglio comprendere cosa ti intendo Ti ho evidenziato in verde il modello Ambrosia che come noterai i evidenzia su più righe... mentre invece tutti e 4 gli articoli dovrebbero esser posti sopra il totalone...

https://www.dropbox.com/s/ugx7i0skbpv9i ... .xlsm?dl=0

Infine l'ordinamento della colonna A dev'esser in ordine alfabetico

Inoltre i numeri espressi in colonna E risultano non leggibili nella loro interezza

Ti allego il file


Grazie
Daniby

BUON ANNO!!
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi danibi60 » 01/01/21 10:52

Anthony47 ha scritto:Una risposta rapida, mentre guardero' poi con calma per (eventuali) altri suggerimenti.

Mi pare che puoi fare quasi tutto in proprio con una macro autoregistrata, usando comandi gia' disponibili in Excel. Il procedimento:
-avvia la registrazione di una nuova macro
-seleziona il foglio Orders - FILE DI PARTENZA, tasto dx sul tab col suo nome, scegli Sposta o Copia, spunta Crea una copia; completa con Ok. Questo ti creera' una copia del tuo foglio
-se vuoi spostare le colonne rispetto alla loro posizione attuale: seleziona l'intera colonna E (per esempio), premi Contr-x (taglia); seleziona A1 (se vuoi mettere la colonna E a sinistra dell'attuale colonna A), premi Enter. Continua spostando cosi' tutte le colonne che vuoi riposizionare
[etc etc]



Antony, innanzitutto BUON ANNO A TE!!!
ti ringrazio di cuore anche e solo per avermi promosso sul campo come uno che con le macro si sbizzarrisce con maestria, ma ho provato a costruirla come da te indicato, ma non funziona... forse i bicchieri della scorsa notte hanno obnubilato la mia lucidità impedendomi di poter gestire una simile impresa con l'attenzione dovuta. Ora riprovo e poi Ti so dire. Grazie
Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi Marius44 » 01/01/21 11:46

Ciao
BUON ANNO ANCHE A TE (speriamo che ci mantenga in buona salute, il resto verrà da solo).

Allora, nel Foglio totali devi mettere le intestazioni in prima riga.
Poi devi aggiustare una mia mia piccola (ma essenziale) svista di ieri sera (saranno state le abbondanti libagioni :lol: )
in questa codice ho saltato un . (punto) - deve essere così
Codice: Seleziona tutto
.....
With sh1
  elenco = "A1:F" & ur
  .Range(elenco).Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
.....

in pratica manca il punto prima di Range dopo Key1

Ho riprovato il codice sul file che hai allegato e a me funziona. Ambrosia sono 4.

https://www.dropbox.com/s/nnnram5otxkr7ow/PICKING%20orders-2020-12-31-12-43-45-Marius.xlsm?dl=0


Ciao,
Mario
Marius44
Utente Senior
 
Post: 531
Iscritto il: 07/09/15 22:00

Re: Gestione due totali

Postdi Anthony47 » 01/01/21 12:56

Mario ha scritto:Buon anno Nuovo a tutti

Visto che l'ho fatto posto anche la mia soluzione (molto, ma molto meno professionale di quella di Anthony).
Buon anno anche a te, Mario.
No, la mi soluzione non e' piu' professionale, visto che invito l'utente a registrarsela da solo. D'altra parte se uno compera una licenza che gli offre un tot di prestazioni penso sia meglio spiegargli come puo' sfruttare a suo vantaggio i soldi spesi, piuttosto che proporgli una equivalente macro probabilmente non manutenibile dall'utente.
D'altra parte registrare una macro e' anche l'occasione per imparare le basi del vba, acquisire immediatamente la capacita' di risolvere i problemi piu' semplici, e da questi esempi imparare a risolvere problemi piu' complessi. Insomma imparare a usare sempre meglio i soldi della licenza.

DaniBy ha scritto:Antony, innanzitutto BUON ANNO A TE!!!
ti ringrazio di cuore anche e solo per avermi promosso sul campo come uno che con le macro si sbizzarrisce con maestria, ma ho provato a costruirla come da te indicato, ma non funziona.
Registrare una macro e' un gioco di pazienza e diligenza. Devi avere chiaro l'elenco delle cose da fare e la loro sequenza; quindi conviene scriverle, fare le prove, e solo alla fine partire con la registrazione.
Per le istruzioni su come registrare una macro e i suggerimenti di base guarda qui:
viewtopic.php?f=26&t=103893&p=622593#p622593

Io ho cominciato ("qualche anno fa") registrando macro; poi ho imparato a modificarle (vedi viewtopic.php?f=26&t=103893&p=647676#p647676); poi ho imparato come assemblare da quei pezzi di codice macro totalmente diverse. Ancora oggi in ogni mia macro non mancano pezzi derivati da codice ottenuto col registratore di macro.

Ciao a tutti

PS: C'e' un messaggio di Mario prima di questo
Avatar utente
Anthony47
Moderatore
 
Post: 17352
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestione due totali

Postdi danibi60 » 01/01/21 14:57

Marius44 ha scritto:Ciao
BUON ANNO ANCHE A TE (speriamo che ci mantenga in buona salute, il resto verrà da solo).

Allora, nel Foglio totali devi mettere le intestazioni in prima riga.
Poi devi aggiustare una mia mia piccola (ma essenziale) svista di ieri sera (saranno state le abbondanti libagioni :lol: )
in questa codice ho saltato un . (punto) - deve essere così
Codice: Seleziona tutto
.....
With sh1
  elenco = "A1:F" & ur
  .Range(elenco).Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
.....

in pratica manca il punto prima di Range dopo Key1

Ho riprovato il codice sul file che hai allegato e a me funziona. Ambrosia sono 4.

https://www.dropbox.com/s/nnnram5otxkr7ow/PICKING%20orders-2020-12-31-12-43-45-Marius.xlsm?dl=0


Ciao,
Mario


Ciao Mario

Ti segnalo che lanciando la Tua macro, la stessa non elabora nulla e presenta quest'errore di debug (vedi foto)

https://www.dropbox.com/s/07bbk5hl5p4qy ... r.png?dl=0

inoltre volevo chiederti come proporre lo stesso risultato per l'altro file ma evidenziando in giallo anziché in grigio i risultati... ho visto che nella macro il colore grigio sembra esser indicato come numero 15, da dove estrai questo numero per abbinarlo al colore? e per il Giallo quale numero corrisponde?

https://www.dropbox.com/s/hb3rh2wwmi57s ... e.jpg?dl=0

Grazie
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi danibi60 » 01/01/21 15:00

Anthony47 ha scritto:
Mario ha scritto:Buon anno Nuovo a tutti

Visto che l'ho fatto posto anche la mia soluzione (molto, ma molto meno professionale di quella di Anthony).
Buon anno anche a te, Mario.
No, la mi soluzione non e' piu' professionale, visto che invito l'utente a registrarsela da solo. D'altra parte se uno compera una licenza che gli offre un tot di prestazioni penso sia meglio spiegargli come puo' sfruttare a suo vantaggio i soldi spesi, piuttosto che proporgli una equivalente macro probabilmente non manutenibile dall'utente.
D'altra parte registrare una macro e' anche l'occasione per imparare le basi del vba, acquisire immediatamente la capacita' di risolvere i problemi piu' semplici, e da questi esempi imparare a risolvere problemi piu' complessi. Insomma imparare a usare sempre meglio i soldi della licenza.

DaniBy ha scritto:Antony, innanzitutto BUON ANNO A TE!!!
ti ringrazio di cuore anche e solo per avermi promosso sul campo come uno che con le macro si sbizzarrisce con maestria, ma ho provato a costruirla come da te indicato, ma non funziona.
Registrare una macro e' un gioco di pazienza e diligenza. Devi avere chiaro l'elenco delle cose da fare e la loro sequenza; quindi conviene scriverle, fare le prove, e solo alla fine partire con la registrazione.
Per le istruzioni su come registrare una macro e i suggerimenti di base guarda qui:
viewtopic.php?f=26&t=103893&p=622593#p622593

Io ho cominciato ("qualche anno fa") registrando macro; poi ho imparato a modificarle (vedi viewtopic.php?f=26&t=103893&p=647676#p647676); poi ho imparato come assemblare da quei pezzi di codice macro totalmente diverse. Ancora oggi in ogni mia macro non mancano pezzi derivati da codice ottenuto col registratore di macro.

Ciao a tutti

PS: C'e' un messaggio di Mario prima di questo


Grazie per il suggerimento Anthony, ci proverò :lo giuro!
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi Marius44 » 01/01/21 16:51

Ciao
Mi son già preso (il 1° dell'anno :( ) il "caz...one di Anthony :oops:

Quello Stop è una pura dimenticanza di precedenti prove. Va eliminato.
Confermo che la macro funziona. Riscarica il file e prova.

Per l'altro problema, ha ragione Anthony. Devi studiare VBA.
Peraltro basta seguir il mio codice ed adattarlo all'altro foglio.
Il colore per il giallo è 6 - cerca in rete Colori per Interior.ColorIndex

Ciao e Buon Anno,
Mario
Marius44
Utente Senior
 
Post: 531
Iscritto il: 07/09/15 22:00

Re: Gestione due totali

Postdi Anthony47 » 01/01/21 20:13

Cazziare chi interviene cerco di limitarlo ai casi gravi; tipo insulti (in chiaro o in codice) e pochi altri reati; e comunque sempre dopo aver messo il cappello di Moderatore.

Il mio messaggio voleva spiegare il perche' del mio approccio, e soprattutto spiegare a daniby che excel e' ben piu' che Somma e Cerca.Vert, e molte cose (compreso le macro) sono veramente a portata di mano di tutti. E per registrare una macro non c'e' bisogno di aver studiato il vba, visto che e' il registratore che ha studiato per noi. Certamente il codice elementare prodotto dal registratore e' invece un buon punto di partenza per capire il linguaggio e ampliare conoscenze e risultati raggiungibili.

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

Re: Gestione due totali

Postdi danibi60 » 02/01/21 15:11

Rispondo ad entrambi

Cari @Anthony e @Marius44,
non Voglio che nessuno né cazzi né tanto meno rimproveri nessuno per responsabilità mie.

In questa occasione, ma probabilmente anche in futuro di certo (inutile negarlo) mi rivolgerò a questo sito per poter avere aiuto/supporto e non sempre - come nel caso specifico - presentando soluzioni - che, data la mia scarsa conoscenza di excell nelle operazioni più complesse vedi VBA ecc. ecc. mi impediscono anche e solo di iniziarne la stesura.

Se qualcuno avrà il piacere di essermi d'aiuto ne sarò felice, altrimenti siete liberi di rifiutarmelo!

Sino ad oggi e grazie al vostro aiuto sempre più operazioni riesco a svilupparle da solo, ma ahimè la totale assenza di conoscenze dell'inglese mi impedisce di comprendere al meglio certe funzioni (vedi linguaggio VBA, Power Query ecc.ecc). In questo caso avevo già predisposto una soluzione attraverso una tabella pivot, ma quanto studiato non mi sembrava un buon lavoro (per onestà ve lo propongo allegandovi il file) da qui l'onesta richiesta di una soluzione alternativa.

https://www.dropbox.com/s/dzccl26k0lnj1 ... .xlsx?dl=0

Ma andiamo oltre, sempre se vi va s'intende!:

Ho alcune richieste di chiarimenti per le soluzioni proposte da Marius e che nonostante vi abbia dedicato del tempo cercando anche di manipolare il codice da lui composto, non riesco a risolvere:

https://www.dropbox.com/s/ucqzjq3iw3qcg ... .xlsm?dl=0

Nel file su allegato in riga due compare un Item Name (evidenziato in verde) che dovrebbe essere posizionato nella alla riga 29 in poi, come mai è finito li?
Inoltre una delucidazione di carattere operativo, nel momento estraggo il file d'origine (Orders - FILE DI PARTENZA) e lo copiassi sopra il file d'origine del giorno prima, la macro funzionerà senza intoppi?

https://www.dropbox.com/s/dsnkgtyp5s868 ... .xlsm?dl=0

Qui la cosa è un pochino più complessa, sono riuscito a mettere il colore giallo è vero, ma rispetto all'altro file la tabella d'origine ha una colonna in più, quindi anche cercando di mantenere la sintassi il più corretta possibile nel codice VBA e manipolando aggiungendo quello che reputavo idoneo ad esser aggiunto non ne vuol sapere di funzionare e si blocca... indi per cui mi arrendo e chiedo aiuto.
Anche in questo come nell'altro in riga A2 compare Item Name (evidenziato in verde) ma senza il totale sotto di esso..

Grazie a prescindere dalla volontà d'essermi d'aiuto o meno.
Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi Anthony47 » 02/01/21 16:01

Nessuno ha cazziato nessuno; io e Mario ci sentiamo spesso e quindi ci permettiamo tra di noi un linguaggio a volte cameratesco che da fuori puo' sembrare rude, ma e' solo dovuto alla confidenza reciproca...
Quindi pace fatta (anzi: guerra mai cominciata), andiamo avanti con la risoluzione delle questioni pendenti
Avatar utente
Anthony47
Moderatore
 
Post: 17352
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Gestione due totali

Postdi Marius44 » 02/01/21 16:30

Ciao
Mi scuso in anticipo con Anthony ma, vista la tua sincerità, ti suggerisco cosa fare:

1°) in entrambi i files correggi un mio errore
For i = ur To 2 Step -1
itm = sh1.Cells(i, 1)
For j = i - 1 To 1 Step -1
il valore in rosso è esatto (correggi da 2 a 1)

2°) anche se non conosci l'inglese le cifre sono scritte in egual maniera.
Pertanto tutte le righe di codice che si riferivano alla colonna 6 devono essere cambiate in 7, cioè
Cells(i + 1,7) = Application.Sum(Range("G" & rg & ":G" & i))
Cells(i + 1,7).Font.Bold = True
Cells(i + 1, 7).Font.Size = 14
Cells(i + 1, 7).Interior.ColorIndex = 6

3°) la riga di codice che fa la somma deve essere riferita alla colonna G, quindi
Cells(i + 1, 7) = Application.Sum(Range("G" & rg & ":G" & i))

4°) prima di assegnare valori ad una matrice la devi dimensionare. Dove vedi il codice con dei ripetuti ReDim inserisci
ReDim nCom(1 To ur - 1)

Apporta le correzioni, prova e fai sapere.
Ciao,
Mario
Marius44
Utente Senior
 
Post: 531
Iscritto il: 07/09/15 22:00

Re: Gestione due totali

Postdi danibi60 » 02/01/21 17:16

Marius44 ha scritto:Ciao
Mi scuso in anticipo con Anthony ma, vista la tua sincerità, ti suggerisco cosa fare:

1°) in entrambi i files correggi un mio errore
For i = ur To 2 Step -1
itm = sh1.Cells(i, 1)
For j = i - 1 To 1 Step -1
il valore in rosso è esatto (correggi da 2 a 1)

2°) anche se non conosci l'inglese le cifre sono scritte in egual maniera.
Pertanto tutte le righe di codice che si riferivano alla colonna 6 devono essere cambiate in 7, cioè
Cells(i + 1,7) = Application.Sum(Range("G" & rg & ":G" & i))
Cells(i + 1,7).Font.Bold = True
Cells(i + 1, 7).Font.Size = 14
Cells(i + 1, 7).Interior.ColorIndex = 6

3°) la riga di codice che fa la somma deve essere riferita alla colonna G, quindi
Cells(i + 1, 7) = Application.Sum(Range("G" & rg & ":G" & i))

4°) prima di assegnare valori ad una matrice la devi dimensionare. Dove vedi il codice con dei ripetuti ReDim inserisci
ReDim nCom(1 To ur - 1)

Apporta le correzioni, prova e fai sapere.
Ciao,
Mario


Ciao Mario, ho apportato le modifiche da Te segnalate, non da più errore ma non compare più nulla... ho guardato e riguardato le tue indicazioni e le ho seguite esattamente.... :undecided: :-?

Qui il file
https://www.dropbox.com/s/dsnkgtyp5s868 ... .xlsm?dl=0
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi Marius44 » 02/01/21 17:35

Ciao
Purtroppo Excel-VBA sono molto precisi. Basta una piccola disattenzione e tutto ... va a rotoli.
Sicuramente nel file precedente a quello che hai allegato adesso NON PUO' ESSERCI la riga in rosso
For i = 2 To Step - 1
With sh1
.Cells(i, 1) = nItm(i - 1)
.Cells(i, 2) = nNum(i - 1)
.Cells(i, 3) = nDat(i - 1)
.Cells(i, 4) = nSta(i - 1)
.Cells(i, 5) = nCom(i - 1)
.Cells(i, 6) = nSku(i - 1)
.Cells(i, 7) = nQty(i - 1)
End With
Next i
ma sicuramente quella riga era
For i = 2 To ur

e poi tutto il resto.
Riprova. Ciao,
Mario
Marius44
Utente Senior
 
Post: 531
Iscritto il: 07/09/15 22:00

Re: Gestione due totali

Postdi danibi60 » 02/01/21 18:09

Ecco, proprio con quest'ultimo esempio (che ho poi apportato al file ottenedo ciò che desideravo) si manifesta in pieno la mia incapacità di comprednere il linguaggio VBA.
Ora, mettiamo da parte per un attimo l'inglese, e limitiamoci a capire cosa significa quello che mi hai indicato:

Tu scrivi:

For i = 2 To Step - 1

Mentre invece doveva essere (come lo era infatti)

For i = 2 To ur

Che significa nello specifico tutto questo? Step - 1 che significa? ur sta per cosa?
Per non parlare di queste stringhe di testo:

With sh1
.Cells(i, 1) = nItm(i - 1)
.Cells(i, 2) = nNum(i - 1)
.Cells(i, 3) = nDat(i - 1)
.Cells(i, 4) = nSta(i - 1)
.Cells(i, 5) = nCom(i - 1)
.Cells(i, 6) = nSku(i - 1)
.Cells(i, 7) = nQty(i - 1)


tra le quali comprendo che vi sia dopo la lettera n il nome abbreviato della intestazione della colonna) ma tutto il resto cosa sta a significare? . Cell?? (i, 6 - i, 7 ecc ecc) ??? (i - 1) ??

Qui stanno le mie difficoltà Mario, nel capire queste terminologie da tecnici...

Ora, come detto prima il file funziona alla perfezione mentre invece devo risolvere quanto detto due messaggi fa:

"Nel file su allegato in riga due compare un Item Name (evidenziato in verde) che dovrebbe essere posizionato nella alla riga 29 in poi, come mai è finito li?
Inoltre una delucidazione di carattere operativo, nel momento estraggo il file d'origine (Orders - FILE DI PARTENZA) e lo copiassi sopra il file d'origine del giorno prima, la macro funzionerà senza intoppi?
"

Devo sostituire nel codice quanto segnalato da te prima? e cioè:

For i = 2 To ur

Attendo, grazie,
Daniby
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi danibi60 » 02/01/21 18:13

danibi60 ha scritto:Ecco, proprio con quest'ultimo esempio (che ho poi apportato al file ottenedo ciò che desideravo) si manifesta in pieno la mia incapacità di comprednere il linguaggio VBA.
Ora, mettiamo da parte per un attimo l'inglese, e limitiamoci a capire cosa significa quello che mi hai indicato:

Tu scrivi:

For i = 2 To Step - 1

Mentre invece doveva essere (come lo era infatti)

For i = 2 To ur

Che significa nello specifico tutto questo? Step - 1 che significa? ur sta per cosa?
Per non parlare di queste stringhe di testo:

With sh1
.Cells(i, 1) = nItm(i - 1)
.Cells(i, 2) = nNum(i - 1)
.Cells(i, 3) = nDat(i - 1)
.Cells(i, 4) = nSta(i - 1)
.Cells(i, 5) = nCom(i - 1)
.Cells(i, 6) = nSku(i - 1)
.Cells(i, 7) = nQty(i - 1)


tra le quali comprendo che vi sia dopo la lettera n il nome abbreviato della intestazione della colonna) ma tutto il resto cosa sta a significare? . Cell?? (i, 6 - i, 7 ecc ecc) ??? (i - 1) ??

Qui stanno le mie difficoltà Mario, nel capire queste terminologie da tecnici...

Ora, come detto prima il file funziona alla perfezione mentre invece devo risolvere quanto detto due messaggi fa:

"Nel file su allegato in riga due compare un Item Name (evidenziato in verde) che dovrebbe essere posizionato nella alla riga 29 in poi, come mai è finito li?
Inoltre una delucidazione di carattere operativo, nel momento estraggo il file d'origine (Orders - FILE DI PARTENZA) e lo copiassi sopra il file d'origine del giorno prima, la macro funzionerà senza intoppi?
"

Devo sostituire nel codice quanto segnalato da te prima? e cioè:

For i = 2 To ur

Attendo, grazie,
Daniby


Perdona ho visto solo ora che per una parte mi avevi risposto già nel tuo penultimo messaggio scrivendo:

1°) in entrambi i files correggi un mio errore

resta solo da chiarire questo dubbio:

Inoltre una delucidazione di carattere operativo, nel momento estraggo il file d'origine (Orders - FILE DI PARTENZA) e lo copiassi sopra il file d'origine del giorno prima, la macro funzionerà senza intoppi?

sorry
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Gestione due totali

Postdi danibi60 » 02/01/21 18:20

Ho modificato il file ma in riga 2 e 3 riporta l'Iten Name Calza Epifashion con il relativo totale (te le ho evidenziate in giallo)
mentre invece questo articolo dovrebbe esser inserito come è giusto che sia tra le righe 30 e 40...

https://www.dropbox.com/s/ucqzjq3iw3qcg ... .xlsm?dl=0

Ciao
"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
Win 10 & Office365 Premium
danibi60
Utente Senior
 
Post: 372
Iscritto il: 11/07/13 09:21
Località: Bergamo

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Gestione due totali":

Gestione Dispositivi
Autore: crisge73
Forum: Assistenza Hardware
Risposte: 36

Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti