feed
top
crea forum
cerca
feed
forum
supporto
discussione
cerca
È soltanto un
Pokémon con le armi
o è un qualcosa di più? Vieni a parlarne su
Award & Oscar!
Excel Forum
Per condividere esperienze su Microsoft Excel
Cerca
Soluzioni Excel Domande e Risposte
Accedi
VBA - AIUTO MACRO
Messaggi
OFF
LINE
stellablu79
Post: 34
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
0
0
17/10/2019
22:03
ciao
ho un pivot e nei pivotTable field un filtro che si chiama market
ho associato una macro che mi seleziona il primo valore nel fields market poi copia tutto il pivot e lo incolla come value in uno shette che ha lo stesso nome del primo market selzionato; poi mi seleziona il secondo valore nel campo market, copia tutto il pivot e lo incolla come value in un nuovo sheet che ha lo stesso nome del secondo market selezionato e cosi via fino a selezionare tutti i market e copiare in tutti sheet differenti.
i dati a cui punta il pivot ovviamente puo cambiare di mese in mese quindi puo succedere che un market non lo trovi ... e li il problema xke mi si blocca la macro.
come faccio a dirgli che se non trova quel market passa al successivo ?
questa la macro ( solo dei primi 3 market perche sono tantiiii )
grazie a tutti ....
Sub emeaITA()
Sheets("Italy").Select
ActiveWindow.SmallScroll Down:=-20
Range("A15:AJ15").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
ActiveWindow.LargeScroll ToRight:=-1
Range("A15").Select
Sheets("DSO").Select
ActiveWindow.SmallScroll Down:=-16
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[ALL INVOICE].[MARKET].[MARKET]").VisibleItemsList = Array( _
"[ALL INVOICE].[MARKET].&[Italy]")
Range("A14:AJ14").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Italy").Select
Range("Table57[[#Headers],[Customer Number]]").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=-64
Range("J10").Select
Sheets("CentralEurope").Select
ActiveWindow.SmallScroll Down:=-20
Range("A15:AJ15").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
ActiveWindow.LargeScroll ToRight:=-1
Range("A15").Select
Sheets("DSO").Select
ActiveWindow.SmallScroll Down:=-16
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[ALL INVOICE].[MARKET].[MARKET]").VisibleItemsList = Array( _
"[ALL INVOICE].[MARKET].&[Central Europe]")
Range("A14:AJ14").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("CentralEurope").Select
Range("Table578[[#Headers],[Customer Number]]").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=-64
Range("J10").Select
Sheets("USA").Select
ActiveWindow.SmallScroll Down:=-20
Range("A15:AJ15").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
ActiveWindow.LargeScroll ToRight:=-1
Range("A15").Select
Sheets("DSO").Select
ActiveWindow.SmallScroll Down:=-16
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[ALL INVOICE].[MARKET].[MARKET]").VisibleItemsList = Array( _
"[ALL INVOICE].[MARKET].&[USA]")
Range("A14:AJ14").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("USA").Select
Range("Table30[[#Headers],[Customer Number]]").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=-64
Range("J10").Select
OFF
LINE
rollis13
Post: 882
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
0
0
17/10/2019
22:27
Dato che dici che la macro va in errore se manca un Market puoi fruttare l'istruzione "On Error GoTo" per passare al market successivo. Per i dettagli puoi anche fare una ricerca in rete.
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
OFF
LINE
stellablu79
Post: 34
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
0
0
18/10/2019
08:51
grazie ...
provo a cercare in rete ...
OFF
LINE
stellablu79
Post: 35
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
0
0
18/10/2019
09:38
... non riesco ad inserirlo nella macro sopra ... mi aiutate per favore ?
in che punto lo dovrei inserire ? e come ?
OFF
LINE
locatevaresino
Post: 2.180
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
0
0
18/10/2019
12:00
ciao
Sub emeaITA()
On Error Resume Next
Sheets("Italy").Select
Ciao da locate
excel 2007 / 13
OFF
LINE
dodo47
Post: 2.422
Registrato il: 06/04/2013
Utente Veteran
2010
1
0
18/10/2019
12:47
ciao
lo vedo un po' pericoloso quel "on error resume next".....
Poniamo il caso che il foglio USA non esiste, tutte le istruzioni che seguono: Sheets("USA").Select, verranno eseguite comunque creando un bel po' di problemi....
A mio avviso (ma senza file di esempio è un po' complesso), dovresti mettere tutto all'interno di un loop che legge i vari fogli; se il foglio risulta assente salti al successivo.
L'alternativa (bruttina) sarebbe impostare tanti riferimenti quanti sono i fogli ed utilizzare l'on error goto "riferimento" del successivo foglio.
Per esempio:
prima di
Sheets("CentralEurope").Select
ci metti:
CentralEurope:
e prima di:
Sheets("Italy").Select
ci metti:
on error goto CentralEurope
e così via...ripeto: alquanto farraginoso
saluti
[
Modificato da dodo47 18/10/2019 12:54
]
Domenico
Win 10 - Excel 2016
OFF
LINE
stellablu79
Post: 36
Registrato il: 29/06/2008
Città: ACQUAFONDATA
Età: 44
Utente Junior
excel 2007
0
0
18/10/2019
13:55
gli sheet sono sempre gli stessi .... non cambiano mai ... cambiano solo le informazioni da incollare sopra ogni sheet e queste informazioni vengono da un pivot filtrato presente sul primo sheet ... quindi filtro "italia" copio i dati e li incollo su sheet italia; poi filtro centraleurope copio i dati e li incollo su sheet central europe .... e cosi via .... certo se potessi migliorare la macro con un loop come dici te sarebbe meglio ... io non essendo esperta ho registrato la macro e l'ho adattata.
OFF
LINE
dodo47
Post: 2.423
Registrato il: 06/04/2013
Utente Veteran
2010
1
0
18/10/2019
16:05
ciao
questo si era capito.
In sintesi hai un foglio DSO con una pivot alla quale di volta in volta applichi un filtro il cui risultato copy nel foglio che ha lo stesso nome del filtro applicato.
Non puoi pretendere che qualcuno ricrei il tuo documento per creare una macro più adatta.
Visto che tu hai già il tutto predisposto, invia un esempio senza dati sensibili e vedrai che si troverà una soluzione.
Curiosità: perchè usi tabelle che sono sempre problematiche da elaborare con la programmazione e (azzardo) anche con le formule?. ??
saluti
[
Modificato da dodo47 18/10/2019 19:02
]
Domenico
Win 10 - Excel 2016
1
5
MediaObject
5,00
2
8
2
Tag discussione
vba
aiuto
macro
Registrati
Accedi
Soluzioni Excel Domande e Risposte
Accedi
IL MIO PROFILO
LE MIE DISCUSSIONI
FORUM CHE SEGUI
LA MIA FORUM-CARD
MODIFICA FORUM-CARD
FAQ
TRADUCI
LOGOUT
Accedi
Registrati
FAQ
TRADUCI
Scatta o carica foto
Allega file
Inserisci link da url (card)
Incorpora url (YouTube/Twitter/...)
ACCETTA
RIFIUTA
Anteprima