Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 05-04-2012, 21.18.30   #1
spider0
Newbie
 
Registrato: 30-01-2012
Messaggi: 16
spider0 promette bene
EXCEL AIUTO PER CICLO FOR e creazione indice

Ciao a tutti.
Sto cercando disperatamente di creare una macro che consenta di:

- leggere tutti i fogli di un file (in modo dinamico). Cioè vorrei poter Far leggere i nomi di alcuni fogli del file o direttamente da una sezione di un foglio elenco oppure leggendoli direttamente perchè spesso cambiano denominazione.

- riportare il contenuto di un range di celle in altro foglio.


Mi piacerebbe anche trovare un sistema per creare un sommario che riporta denminazione di alcuni fogli del file e il numero di pagine progressivo.
Grazie a tutti
spider0 non è collegato   Rispondi citando
Vecchio 05-04-2012, 23.31.22   #2
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Lo strumento "Registra macro" in Excel (anche Word ne è provvisto) è molto utile perchè scrive da solo parte del codice VBA che ti serve. Controlla il codice presente nel modulo, una volta che hai terminato la registrazione delle azioni compiute.
Purtroppo, tale strumento non è presente in Access. (Questo perchè necessita di quel pizzico di professionalità in più che per Word ed Excel non è richiesto)
I fogli sono identificati sia numericamente, sia letteralmente, cioè se Excel contiene foglio1,foglio2,foglio3 i fogli saranno 1,2,3
Leggi il codice generato nel modulo per identificare quale classe e di conseguenza quali metodi e proprietà richiamare; Fai accesso agli oggetti attraverso il tasto F2 all'interno di VBA e sperimenta fino a trovare quelli confacenti al tuo obiettivo.
Buon divertimento.
LoryOne non è collegato   Rispondi citando
Vecchio 06-04-2012, 09.02.23   #3
spider0
Newbie
 
Registrato: 30-01-2012
Messaggi: 16
spider0 promette bene
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Ciao Lory, ti ringrazio per la segnalazione.

Prima di postare avevo già provato ma purtroppo non sono riuscito a trovare una soluzione sia pur scrivendo il codice direttamente in VBA.

Rinnovo la richiesta di aiuto aperta a tutti per il ciclo complesso di selezione solo di un range di fogli predefinito ma chenon comprende TUTTI i fogli del file. Inoltre mi piacerebbe che la macro potesse selezionare l'elenco dei fogli stessi, direttamente da una sezione di un foglio dove sono già elencati e da cui potrei scegliere la "selezione" di quelli da attivare volta per volta.
Es.: elenco fogli da selezionare per una azione nella macro: "Alfa", "Beta"... "gamma".

Per l'indice da creare mi riferisco ovviamente solo ad excel.

Grazie a tutti.
spider0 non è collegato   Rispondi citando
Vecchio 07-04-2012, 10.28.09   #4
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Quota:
Inviato da spider0 Visualizza messaggio
.... il ciclo complesso di selezione solo di un range di fogli predefinito ma che non comprende TUTTI i fogli del file.
difficile così !! si deve passare dei parametri per poter compiere delle azioni, per cui devi definire meglio il tuo progetto, o perlomeno descrivi meglio quello che ti serve.

esempio :
Codice:
Sub name_f()
n = 2
Cells(n, 4).Select
For g = 1 To Sheets.Count
   Cells(n, 4).Value = Worksheets(g).Name
     n = n + 1
 Next
End Sub
con questo codice scrivo il nome dei fogli nelle celle D2, D3 etc.. ma li scrivo, non li seleziono.... o forse tu intendi di poter selezionare determinati fogli per nasconderli/visualizzarli e/o proteggerli?
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 07-04-2012, 19.11.05   #5
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

In effetti non è molto chiaro.
Alexsandra ti ha postato una Sub procedure che itera tra i nomi delle schede (Sheets), in modo che ti riallacci al concetto di insieme per quanto concerne i fogli di lavoro. Come vedi, esiste una proprietà .count che identifica il numero di sheets. Ogni sheet, è gestita da diverse classi con diversi metodi e proprietà ognuna, Selection compresa.
Se tu provassi a selezionare più sheets con Ctrl, ti ritroveresti nel codice VBA prodotto dal registratore di macro un'array di sheets all'interno di Selection, cosa piuttosto utile poichè l'istruzione Array può creare un insieme di oggetti di tipo variant...
LoryOne non è collegato   Rispondi citando
Vecchio 07-04-2012, 20.59.08   #6
Zer0Kelvin
Guest
 
Messaggi: n/a
EDIT: risposta cancellata.
  Rispondi citando
Vecchio 24-04-2012, 14.01.11   #7
spider0
Newbie
 
Registrato: 30-01-2012
Messaggi: 16
spider0 promette bene
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Ciao,
cerco di spiegarmi meglio.
Ho un file con molti fogli denominati diversamente.
Vorrei poter selezionare con una macro alcuni di questi fogli indipendentemente dalla loro posizione nel file. Es. "Pippo", "Pluto"...
Ciò perche ad ogni sottoinsieme di fogli vorrei far eseguire una operazione.
Ad es.: Alcuni fogli selezionati saranno stampati, per un'altra selezione di fogli procedi con altre attività..
Però, poichè i nomi dei fogli cambiano spesso per esigenze di lavoro, vorrei fare in modo che la selezione avvenga prelevando i nomi dei fogli direttamente da un elenco aggiornato (range di celle) dove manutengo tutti i nomi dei foglietti.
Ritengo che il ciclo sia il modo più efficace.
Spero di essere stato chiaro! Scusate e grazie.
Attendo un vostro aiuto.
spider0 non è collegato   Rispondi citando
Vecchio 24-04-2012, 16.18.17   #8
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Il codice di Alexsandra è molto chiaro ed è un po il contrario di quello che vorresti fare tu, sebbene ci siano un po tutti gli elementi per indirizzarti verso la soluzione: Tu devi verificare se il nome del foglio contenuto in una cella corrisponde a quello di uno dei fogli di Excel. In caso affermativo, devi selezionare l'intero foglio. Devi utilizzare IF THEN [ELSE] END IF, oppure SELECT CASE END SELECT.
Le proprietà di un oggetto possono essere lette oppure impostate.
Non so a che livello tu conosca VBA, ma uno spezzone di codice da te prodotto potrebbe essere d'aiuto per indirizzarti meglio.
LoryOne non è collegato   Rispondi citando
Vecchio 24-04-2012, 17.03.27   #9
spider0
Newbie
 
Registrato: 30-01-2012
Messaggi: 16
spider0 promette bene
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Ciao,
si in effetti ho notato che il codice segnalato fa l'esatto opposto di quello che vorrei, legge i nomi dei fogli e li riporta in sequenza in un range di celle.
Io vorrei che l'istruzione leggesse i nomi riportati nelle celle (e che corrispondono ai nomi dei fogli) per eseguire una istruzione.
Sto cercando di imparare il codice VBA poichè lo conosco pochissimo.
Vi posto un esempio del lavoro.


Sub areaprint()

Application.ScreenUpdating = False

Sheets("BR-Bdt").Select
ActiveSheet.PageSetup.PrintArea = _
"B1:L125,N1:V125,X1:AF125,AH1:AP125,AR1:AZ125,BB1: BJ125,BL1:BT125,BV1:CD125, CF1: CO125 , CP1: CX125 , CZ1: DH125,DJ1R125,DT1:EB125,ED1:EL125,EN1:EV125, EX1:FF125,FH1:FP125, FR1:FZ125,GB1:GJ125,GL1:GT125,GV1:HD125,HF1:HN125, HP1:HX125,HZ1:IH125"

Sheets("BR-Cib").Select
ActiveSheet.PageSetup.PrintArea = _
"B1:L125,N1:V125,X1:AF125,AH1:AP125,AR1:AZ125,BB1: BJ125,BL1:BT125,BV1:CD125, CF1: CO125 , CP1: CX125 , CZ1: DH125,DJ1R125"

Sheets("SOC-Bdt").Select
ActiveSheet.PageSetup.PrintArea = _
"B1:L125,N1:V125,X1:AF125,AH1:AP125,AR1:AZ125,BB1: BJ125,BL1:BT125,BV1:CD125, CF1: CO125 , CP1: CX125 , CZ1: DH125,DJ1R125,DT1:EB125"

End Sub
spider0 non è collegato   Rispondi citando
Vecchio 24-04-2012, 17.29.39   #10
booty island
Guarda dietro di te... una scimmia a tre teste!
Top Poster
 
Registrato: 05-11-2002
Loc.: 127.0.0.1
Messaggi: 4.688
booty island è nella strada per il successobooty island è nella strada per il successo
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Per evitare errori nella trascrizione del codice utilizza la funzione CODE
Codice:
Sub areaprint()

Application.ScreenUpdating = False
    
Sheets("BR-Bdt").Select
ActiveSheet.PageSetup.PrintArea = _
 "B1:L125,N1:V125,X1:AF125,AH1:AP125,AR1:AZ125,BB1:BJ125,BL1:BT125,BV1:CD125, CF1: CO125 , CP1: CX125 , CZ1: DH125,DJ1:DR125,DT1:EB125,ED1:EL125,EN1:EV125, EX1:FF125,FH1:FP125, FR1:FZ125,GB1:GJ125,GL1:GT125,GV1:HD125,HF1:HN125,HP1:HX125,HZ1:IH125"

Sheets("BR-Cib").Select
ActiveSheet.PageSetup.PrintArea = _
 "B1:L125,N1:V125,X1:AF125,AH1:AP125,AR1:AZ125,BB1:BJ125,BL1:BT125,BV1:CD125, CF1: CO125 , CP1: CX125 , CZ1: DH125,DJ1:DR125"

Sheets("SOC-Bdt").Select
ActiveSheet.PageSetup.PrintArea = _
 "B1:L125,N1:V125,X1:AF125,AH1:AP125,AR1:AZ125,BB1:BJ125,BL1:BT125,BV1:CD125, CF1: CO125 , CP1: CX125 , CZ1: DH125,DJ1:DR125,DT1:EB125"

End Sub
booty island non è collegato   Rispondi citando
Vecchio 24-04-2012, 17.31.37   #11
spider0
Newbie
 
Registrato: 30-01-2012
Messaggi: 16
spider0 promette bene
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

come attivo la funzione code?
spider0 non è collegato   Rispondi citando
Vecchio 24-04-2012, 19.26.33   #12
booty island
Guarda dietro di te... una scimmia a tre teste!
Top Poster
 
Registrato: 05-11-2002
Loc.: 127.0.0.1
Messaggi: 4.688
booty island è nella strada per il successobooty island è nella strada per il successo
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

E' il quart'ultimo pulsante in alto, il cancelletto #
booty island non è collegato   Rispondi citando
Vecchio 27-04-2012, 10.55.10   #13
spider0
Newbie
 
Registrato: 30-01-2012
Messaggi: 16
spider0 promette bene
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

scusate c'è qualche contributo? Grazie
spider0 non è collegato   Rispondi citando
Vecchio 27-04-2012, 18.07.33   #14
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Il codice di Alexsandra lo hai provato per vedere che cosa fa ?

Codice:
Sub areaprint()

Application.ScreenUpdating = False

If Worksheets(indexworksheets).Name = Cells(indexcells, 4).Value Then
Sheets(Worksheets(index).Name).Select
ActiveSheet.PageSetup.PrintArea = _
 "B1:L125,N1:V125,X1:AF125,AH1:AP125,AR1:AZ125,BB1:BJ125,BL1:BT125,BV1:CD125, CF1: CO125 , CP1: CX125 , CZ1: DH125,DJ1:DR125,DT1:EB125,ED1:EL125,EN1:EV125, EX1:FF125,FH1:FP125, FR1:FZ125,GB1:GJ125,GL1:GT125,GV1:HD125,HF1:HN125,HP1:HX125,HZ1:IH125"

End If

ecc,ecc
In una determinata cella alla riga index, colonna 4 ci deve essere scritto "BR-Bdt". Se il foglio nominato BR-Bdt che si trova al valore di indexcells che è anche il valore di indexworksheets, allora esegui la stampa dell'area definita da "B1:L125,N1:V125,X1:AF125,AH1:AP125,AR1:AZ125, ecc"
LoryOne non è collegato   Rispondi citando
Vecchio 27-04-2012, 21.29.37   #15
spider0
Newbie
 
Registrato: 30-01-2012
Messaggi: 16
spider0 promette bene
Rif: EXCEL AIUTO PER CICLO FOR e creazione indice

Grazie Alex provo subito!!!
spider0 non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Corso VBA Alexsandra Guide 85 16-11-2016 12.11.51
Aiuto per excel Hanger.85 Office suite 1 21-01-2009 23.59.47
Aiuto con Excel! nike2cc Office suite 3 23-11-2007 14.36.59
Excel 2000 e VBA :problema con ciclo For...Next damiano Office suite 11 29-06-2007 23.37.20
Aiuto su Excel MEGS Office suite 2 08-09-2006 10.52.13

Orario GMT +2. Ora sono le: 14.56.19.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.