Condividi:        

[EXCEL] macro che riunisce diverse macro

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

[EXCEL] macro che riunisce diverse macro

Postdi belsav » 07/10/08 21:02

Salve a tutti, dopo parecchio tempo rieccomi qua a cercare aiuto.
con il generatore di macro, ho creato una macro che mi copia delle celle, riporta i valori (testo, numeri, date) in due distinti prospetti che uso per la stampa. il probelema mi sorge dal fatto che per riempire uno dei due prospetti, (foglio1) ho dovuto fare 20 copie delle macro, cambiando il rigo di destinazione dei valori (i valori vanno copiati sempre in un rigo sotto, in modo da creare un elenco che poi viene ordinato in secondo vari criteri - si tratta di graduatorie), naturalmente ho associato le 20 macro a 20 bottoni. Funziona perfettamente, ma risulta un po scomoda in quanto succede abbastanza facilmente di sbagliare bottone (e quindi dover rifare il rigo già scritto), e chiedevo il vostro aiuto per sapere se, e come si potrebbe riorganizzare utilizzando un solo bottone, che ogni volta mi copia le varie celle di origine dati (nome, data nascita, data conseguimento titolo studio, punti servizio, che non si trovano sullo stesso rigo) e nel foglio1 li metta un rigo sotto l'altro. Spero di essere stao chiaro nell'esposizione, comunque inserisco sotto una delle macro. Grazie per la vostra attenzione Belsav

ActiveWindow.SmallScroll Down:=21
Range("A45:AE85").Select
Selection.PrintOut Copies:=1, Collate:=True
Range("U80").Select
ActiveWindow.SmallScroll Down:=-63
Range("G5").Select
Selection.Copy
Sheets("Foglio1").Select
Range("C11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Foglio3").Select
Range("S5:T5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Foglio1").Select
Range("E11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F11").Select
Sheets("Foglio3").Select
Range("AB5:AD5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Foglio1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("G11").Select
Sheets("Foglio3").Select
ActiveWindow.SmallScroll Down:=63
Range("L90").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Foglio1").Select
Range("D11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Foglio3").Select
ActiveWindow.SmallScroll Down:=-63
Range("C9:D26").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("K9:L26").Select
Selection.ClearContents
Range("S9:T26").Select
Selection.ClearContents
Range("Z9:AA26").Select
Selection.ClearContents
Range("AB5:AD5").Select
Selection.ClearContents
Range("S5:T5").Select
Selection.ClearContents
Range("G5").Select
Selection.ClearContents
ActiveWorkbook.Save
End Sub
saverio
belsav
Utente Junior
 
Post: 45
Iscritto il: 20/10/06 22:17
Località: Bagheria

Sponsor
 

Re: [EXCEL] macro che riunisce diverse macro

Postdi Flash30005 » 07/10/08 21:28

belsav ha scritto:
Codice: Seleziona tutto
Sub Macro1()

ActiveWindow.SmallScroll Down:=21
    Range("A45:AE85").Select
    Selection.PrintOut Copies:=1, Collate:=True
    Range("U80").Select
    ActiveWindow.SmallScroll Down:=-63
    Range("G5").Select
    Selection.Copy
    Sheets("Foglio1").Select
    Range("C11").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Foglio3").Select
    Range("S5:T5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Foglio1").Select
    Range("E11").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("F11").Select
    Sheets("Foglio3").Select
    Range("AB5:AD5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Foglio1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("G11").Select
    Sheets("Foglio3").Select
    ActiveWindow.SmallScroll Down:=63
    Range("L90").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Foglio1").Select
    Range("D11").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Foglio3").Select
    ActiveWindow.SmallScroll Down:=-63
    Range("C9:D26").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("K9:L26").Select
    Selection.ClearContents
    Range("S9:T26").Select
    Selection.ClearContents
    Range("Z9:AA26").Select
    Selection.ClearContents
    Range("AB5:AD5").Select
    Selection.ClearContents
    Range("S5:T5").Select
    Selection.ClearContents
    Range("G5").Select
    Selection.ClearContents
    ActiveWorkbook.Save

Call Macro2
Call Macro3
etc
End Sub


Se come dici tutti i bottoni in sequenza funzionano bene e ognuno è collegato ad una macro allora senza stravolgere tutto puoi fare questo il primo bottone avvia la prima macro che chiamerò macro 1
Codice: Seleziona tutto
Sub Macro1()
....
tutto il codice di macro 1 ' Come riportato nella tua macro
....
call macro2  'alla fine del codice della prima macro e prima dell'End Sub metti l'elenco delle macro in sequenza fino all'ultima macro

call macro3     
call macro4
call macro5
....
call macro20
Ens sub


La prima macro "chiamerà" la seconda e poi la terza e così via (l'elenco delle macro vanno solo sulla prima e tutti i bottoni vanno tolti escluso il primo)
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: [EXCEL] macro che riunisce diverse macro

Postdi Flash30005 » 07/10/08 21:32

Sicuramente conoscendo meglio il problema tutto il lavoro si potrà fare con una sola macro e qui troverai chi ti consiglierà su come fare
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: [EXCEL] macro che riunisce diverse macro

Postdi Tribuno » 07/10/08 21:50

Ciao belsav,

dalla macro ho visto che copi da foglio3 alcune celle nel foglio1 a partire (almeno in questa macro) dalla riga 11 delle colonne da A ad H. Poi i dati in foglio3 li cancelli, immagino per reinserire altri dati.

Alcune domande: in foglio1 parti con l'inserimento da quale riga? Al di sotto ci sono altri dati (in colonna C)?

Avendo delle informazioni maggiori possiamo darti una mano. Sicuramente è necessario prima leggere qual'è l'ultima riga occupata di C, poi copiare nella prima riga libera i dati da foglio3.

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: [EXCEL] macro che riunisce diverse macro

Postdi belsav » 07/10/08 22:10

Ciao Tribuno,
in foglio1, l'inserimento inzia da C11, e teoricamente non non ha limiti (mi auguro che non sia mai cosi')

GRADUATORIA
B C D E F
10 n° Grad COGNOME E NOME Punteggio nato il Data Specializzazione titolo di accesso
11 1 aaaaa 0,500 101/01/60 12/7/80
12 2
13 3 ...... e così via.

si, la macro cancella per inserire nuovi dati (ripeto non so quanti inserimenti saranno, poichè è una nuova procedura nata dalle ultime novità dettate da nuova legislazione riguardante assunzioni a tempo determinato (sic! si potrebbero fare le assunzioni definitive... almeno non avremmo questi problemi 2 volte al mese).
Un rigrazie
belsav
saverio
belsav
Utente Junior
 
Post: 45
Iscritto il: 20/10/06 22:17
Località: Bagheria

Re: [EXCEL] macro che riunisce diverse macro

Postdi belsav » 07/10/08 22:16

messaggio poco chiaro.
colonne usate: B - C - D - E - F rispettivamente B11=n° graduatoria; C11=cognone e nome; D11= punteggio servizio; E11 data nascita; F11= data conseguimento titolo.
nelle righe sottostanti allo stesso modo fino a n volte.
Belsav
saverio
belsav
Utente Junior
 
Post: 45
Iscritto il: 20/10/06 22:17
Località: Bagheria

Re: [EXCEL] macro che riunisce diverse macro

Postdi Tribuno » 11/10/08 10:04

Ciao belsav,

avrei bisogno di qualche informazione. Premesso che devi compilare in modo crescente le colonne da C ad G del Foglio1 a partire dalla riga 11 con i dati del Foglio3, qual'è la giusta corrispondenza? Provando la macro passo-passo ad un certo punto mi cancella alcuni dati che erano stati copiati, immagino che ci possano essere, in Foglio3, alcune celle unite.
Mi serve sapere:
- quale cella di Foglio3 deve essere copiata in C11 (es. a me risulta la cella G5), D11, E11, F11, G11?
- potresti spiegare quali sono i vari passaggi che vuoi ottenere dopo che hai inserito i dati in Foglio3 [es. 1) copia dati in Foglio1, 2) stampa Foglio1, 3) cancella dati in Foglio3), 4) ecc.]

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: [EXCEL] macro che riunisce diverse macro

Postdi belsav » 11/10/08 20:50

ti ringrazio per il messaggio.
Spiego prima quel che volevo fare:
Ho strutturato una pagina in foglio3 un modello (chiamiamolo così) per caricare dei dati: Cognome e nome (G5); data nascita (S5:T5 - celle unite); data conseguimento titotlo studio AB5:AD5 (celle unite). sempre nello stesso foglio seguono diverse righe e colonne che utilizzo per calcolarmi i periodi lavorativi, che vengono valutati in diverso modo, e comunque il totale lo ritrovo nella cella L90.
Tutti questi dati li ricopia (sempre in foglio3) in una scheda "candidato" per la stampa. mi occorre inoltre creare una graduatoria fra i diversi partecipanti.
Quindi ho ragionato in questo modo: 1) faccio la stampa del range che corrisponde alla scheda per ogni singolo candidato; 2) riporto i dati che mi occorrono per la graduatoria in altro foglio (foglio1) ed esattamente Foglio1 - C11 cognome e nome, foglio1 - D11 punteggio, foglio1 - E11 data nascita foglio1 - F11 data conseguimento titolo "Questi dati vengono copiati come valori". Ritorno a foglio3, e cancello le rispettive celle (G5 - S5:T5 - AB5:AD5 e tutte le righe che mi servono per l'inserimento periodi lavorativi (quindi si azzera anche L90, salvo il tutto, e quindi procedendo ad un nuovo inserimento dati relativo ad altro candidato faccio le stesse operazioni, con la differenza che i dati in Foglio1 scendono di un rigo, quindi C12, D12, E12, F12. (quindi per fare ogni ciò ho creato una macro per poter caricare in ogni riga).
Alla fine con altra macro mi seleziono nel foglio1 i dati inseriti (limite 20 righe), li ordino in modo decrescente e stampo quella che è la graduatoria. A fare tutto ciò ci sono riuscito, ma ho creato 20 macro per caricare 20 candidati, ma sorge il problema che ho piu di 20 candidati (potrei arrivare anche a 600 - 1000), e facilmente posso cliccare su un pulsante (creati 1 per ogni macro) che ho già usato, con la conseguenza di calcellare dalla graduatoria i dati già inseriti. quindi mi necessitava far fare tutto il caricamento e la stampa per ogni singolo candidato ad una sola macro, e naturalmente riportare in foglio1 a partire dal rigo 11 (fino a n. rigo), colonne C, D, E ed F i dati in modo da creare la graduatoria. mi auguro di essere stato esauriente nell'esposizione del mio problema, comunque ti ringrazio per la tua gentilezza.
belsav
su foglio3 in G5 -S5:T5 - AB5:AD5 - L90 ( è sempre il risultato che esce fuori da vari calcoli) i dati sono riporati sempre nel foglio 3
saverio
belsav
Utente Junior
 
Post: 45
Iscritto il: 20/10/06 22:17
Località: Bagheria

Re: [EXCEL] macro che riunisce diverse macro

Postdi Tribuno » 11/10/08 22:55

Ciao Belsav,

prova questo codice
Codice: Seleziona tutto
Dim F1 As Object, F3 As Object
Dim NR As Integer

Sub Belsav()
Set F1 = Worksheets("Foglio1")
Set F3 = Worksheets("Foglio3")
Application.ScreenUpdating = False
F3.Range("A45:AE85").Select
Selection.PrintOut Copies:=1, Collate:=True
NR = F1.Range("C65536").End(xlUp).Row
If NR < 11 Then NR = 10
F1.Cells(NR + 1, 3) = F3.Range("G5")
F1.Cells(NR + 1, 4) = F3.Range("L90")
F1.Cells(NR + 1, 5) = F3.Range("S5")
F1.Cells(NR + 1, 6) = F3.Range("AB5")
F3.Range("C9:D26,K9:L26,S9:T26, Z9:AA26, G5:G5, S5:T5, AB5:AD5, L90:L90").ClearContents
F3.Range("G5").Select
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub


Con questo codice, dopo la stampa dell'area A45:AE85 del Foglio3, riporta Cognome/Nome, Punteggio, Data nascita e Data punteggio in Foglio1 a partire dalla riga 11, poi cancella i dati in Foglio 3 e fa il salvataggio. Al successivo inserimento i dati saranno copiati in riga 12 di Foglio1, e così via.

Verifica se è quello di cui avevi bisogno.

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: [EXCEL] macro che riunisce diverse macro

Postdi belsav » 12/10/08 13:49

Ciao Tribuno, intando ti ringrazio per la celerità;
ho provato la tua macro, effettivamente è quello che risponde a ciò che volevo realizzare, ma provandola ho notato che inserisce in foglio1 soltanto cognome/nome in C e data nascita in colonna E, mentre non inserisce il punteggio colonna D e la data conseguimento titolo in F.
Ti sarei grato se puoi apportare le dovute modifiche. Da parte mia oltre che ringraziarti nuovamente, tenterò di capire la macro (ne capisco quasi nulla) e provarmi a modificarla io stesso (ci riuscirò ????????).
Grazie di cuore
belsav
saverio
belsav
Utente Junior
 
Post: 45
Iscritto il: 20/10/06 22:17
Località: Bagheria

Re: [EXCEL] macro che riunisce diverse macro

Postdi belsav » 12/10/08 14:46

:D ho trovato l'inghippo: celle unite (S5:t5) e (AB5:AD5), le ho disunite, inserendo i dati in S5 e in AB5;
e adesso è tutto OK!. Ancora Grazie a Tribuno che oltre a risolvermi un problema mi da modo di imparare altre cose, e fa accrescere la mia curiosità per excel. Ciao
belsav
saverio
belsav
Utente Junior
 
Post: 45
Iscritto il: 20/10/06 22:17
Località: Bagheria


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] macro che riunisce diverse macro":


Chi c’è in linea

Visitano il forum: Nessuno e 60 ospiti