Excel: macro per nascondere colonne?

Paola

Utente Junior
Professione: Tecnico
Software: SolidWorks 2007
Regione: Campania
Un saluto a tutti i frequentatori del newsgroup.

Ho una cartella di lavoro con tanti fogli. In ciascun foglio di lavoro ci sono colonne la cui somma (in verticale) dei valori è uguale a zero. Per ragioni di stampa nascondo le colonne a somma nulla; faccio questo per ciascun foglio che devo stampare.
E' possibile automatizzare il processo con una macro?
La macro deve quindi leggere la somma colonna per colonna (e foglio per foglio) e nascondere la colonna se la somma è uguale a zero.

Un grazie vero a quanti mi aiuteranno.
 

Shape

Utente Senior
Professione: Disegnatore Carpenteria
Software: Autocad, VBA-AutoLisp, Tecnometal4D, GIMP
Regione: Friuli
Public Sub Nascondi_Col_Somma_0()
For i = 1 To Worksheets.Count
Worksheets(i).Activate
For a = 1 To 256
Dim myRange As Range
Set myRange = Worksheets(i).Range(Cells(1, a), Cells(65536, a))
answer = Application.WorksheetFunction.Sum(myRange)
If answer = 0 Then
If Worksheets(i).Cells(1, a).Value <> "" Then
Columns(a).Select
Selection.EntireColumn.Hidden = True
End If
End If
Next a
Next i
End Sub


Copia il codice e lo incolli nel tuo file excel, per farlo vai su strument->macro->Visual Basic Editor da li vai su inserisci->modulo e all'interno del modulo copi il codice.

Oppure secomprimi il file allegato e carichi il file modulo1.bas....
spero di aver capito quel che ti serviva...

Buon lavoro
 

Allegati

  • Modulo1.zip
    415 bytes · Views : 18

Shape

Utente Senior
Professione: Disegnatore Carpenteria
Software: Autocad, VBA-AutoLisp, Tecnometal4D, GIMP
Regione: Friuli
Bhè direi che si può chiudere qui, visto l'interessamento...........
 

Er Presidente

Moderatore
Professione: Moderatore
Software: ND
Regione: Italia
Approfitto per chiedere qualche delucidazione.
Premesso che lavoro molto con excel, ma non ho mai programmato in macroliguaggio.
Da quello che vedo hai usato VisualBasic, e' l'unico modo per scrivere macro in excel?

Avrei un problema da risolvere e sono dubbioso se usare Access (lo conosco ma vorrei, se possibile usare solo excel), oppure, speravo di usare le macro di Excel.

Se lo script e' VB, excel cosa fa?
Lancia al volo un runtime oppure lo elabora direttamente?
E' pesante utilizzare VB in Excel?

Il mio problema riguarda una gestione di elenchi file dentro excel, nel caso apro un thread apposito.

P.S.: ti ringrazio per lo script, lo usero' con piacere.
:finger:
 

Shape

Utente Senior
Professione: Disegnatore Carpenteria
Software: Autocad, VBA-AutoLisp, Tecnometal4D, GIMP
Regione: Friuli
Approfitto per chiedere qualche delucidazione.
Premesso che lavoro molto con excel, ma non ho mai programmato in macroliguaggio.
Da quello che vedo hai usato VisualBasic, e' l'unico modo per scrivere macro in excel?

Avrei un problema da risolvere e sono dubbioso se usare Access (lo conosco ma vorrei, se possibile usare solo excel), oppure, speravo di usare le macro di Excel.

Se lo script e' VB, excel cosa fa?
Lancia al volo un runtime oppure lo elabora direttamente?
E' pesante utilizzare VB in Excel?

Il mio problema riguarda una gestione di elenchi file dentro excel, nel caso apro un thread apposito.

P.S.: ti ringrazio per lo script, lo usero' con piacere.
:finger:

Excel ha incorporato il VBA (Visual Basic For Application) come tutto l'ambiente office (access word etc) in pratica anche la semplice registrazione di azioni in excel (registrazione macro) crea e scrive un codice VBA all'interno del file. Pesante non è pesante anzi, credo si possa interfacciare il VB dall'esterno, ma npon saprei come.

In ogni caso io utilizzo il VBA in autocad e li so fare cose carine, in office mi arrangio quindi se hai necessità apri un nuovo trhead e vediamo cosa ne esce insieme a qlc altro compagno di :4410: che si okkupa di office automation.

Sicuramente qlc di buono ne esce.
 

folle76

Utente Standard
Professione: Ex ingegnere meccanico autodeclassatosi a disegnatore
Software: Creo Parametric 6.0, Solidworks 2019
Regione: -
Personalmente trovo che se si è in grado di programmare in VBA e si ha a che fare con problemi di ordinamento, selezioni, filtri ecc... è sempre meglio approcciarsi ad Access.
Se questi dati vanno poi condivisi tra utenti che non hanno la licenza di Access conviene utilizzare Access Developer Toolkit 2007.

http://www.microsoft.com/downloads/details.aspx?familyid=d96a8358-ece4-4bee-a844-f81856dceb67&displaylang=en

Si distribuisce un runtime e così gli altri utenti non hanno bisogno delle licenze.
Per la versione 2003 di Access il Developer Toolkit non è gratis. Tanto più che di una tabella Access tramite VBA fai un'esportazione e diventa un foglio Excel. Reputo che mettersi a fare cose complicate dentro Excel con VBA porti a generare codice verboso e poco pulito. Chiaro poi dipende dal tipo di problema.
 

atorchia

Utente Junior
Professione: Disegnatore
Software: cad
Regione: Lombardia
Shape ho visto la puntuale risposta che hai dato a paola.
Non so se puoi aiutare pre me...stavo cercando su interet qualche info sulle macro e sono "capitato" in questo forum.
Quello che stò cercando di fare è un collegamento tra una scrtitta all'interno di un foglio excel e un file di autocad. Ovvero quando clicco su una scritta in un foglio excel mi si apre un file autocad e che zummi in una data zona del disegno.....non so se quello che stò chiedendo sia possibile...o magari lo è ma non attraverso macro...
Ringrazio comunque anticipatamente tutti per eventuali suggerimenti.
Ale
 

Shape

Utente Senior
Professione: Disegnatore Carpenteria
Software: Autocad, VBA-AutoLisp, Tecnometal4D, GIMP
Regione: Friuli
Shape ho visto la puntuale risposta che hai dato a paola.
Non so se puoi aiutare pre me...stavo cercando su interet qualche info sulle macro e sono "capitato" in questo forum.
Quello che stò cercando di fare è un collegamento tra una scrtitta all'interno di un foglio excel e un file di autocad. Ovvero quando clicco su una scritta in un foglio excel mi si apre un file autocad e che zummi in una data zona del disegno.....non so se quello che stò chiedendo sia possibile...o magari lo è ma non attraverso macro...
Ringrazio comunque anticipatamente tutti per eventuali suggerimenti.
Ale

Si è possibile con le macro ovviamente, se guardi nella sezione di autocad vba avevo fatto qlc del genere. Cmq è possibile lanciare autoacd da excel e poi di conseguenza far fare ad autocad quello che vuoi e viceversa ovviamente, entrambi si appoggiano al VBA.
 

walmic

Utente poco attivo
Professione: aveva pdms admin
Software: pdms pds microstation autocad
Regione: lombardia
mi sono iscritto da poco a questo forum e ho trovato subito
molte cose interessanti (complimenti a tutti); mi rivolgo a te perchè ho visto che sei un master.
Il tuo mini corso l'ho già provato e gli esempi funzionano.
io però ho la necessità di riempire campi di un blocco autocad
utilizzando dati contenuti in un file xls, e poi inserirlo in un disegno.
(la classica tabella di revisioni del disegno)
Da dove posso partire?
 

Statistiche forum

Discussioni
57,934
Messaggi
493,596
Utenti registrati
102,354
Ultimo utente registrato
Massimo p

Utenti online

Nessun utente è online al momento.

Top