Condividi:        

Excel 2007/2010 - Macro per nascondere colonne desiderate

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 2007/2010 - Macro per nascondere colonne desiderate

Postdi lucertolina » 29/09/14 08:45

Buongiorno,
per cortesia avrei bisogno di creare una macro che mi imposti una larghezza diversa per alcune colonne; purtroppo usando le macro automatiche quando le lancio mi nasconde altre colonne e ne lascia visibili altre ancora che non sono quelle di mio interesse...
Qualcuno saprebbe aiutarmi per favore?
Grazie!!
Buona giornata
Lucertolina
Windows 7 + OFF 2013 /// Windows 10 + Office 2010
lucertolina
Utente Junior
 
Post: 89
Iscritto il: 19/03/12 10:17
Località: Bergamo

Sponsor
 

Re: Excel 2007/2010 - Macro per nascondere colonne desiderat

Postdi Flash30005 » 29/09/14 10:18

Non è molto chiaro il quesito
ho capito solo che ti occorre una macro ma non cosa dovrebbe fare questa macro
ovvero
hai delle colonne che devono avere una larghezza specifica oppure è sufficiente che la larghezza si adatti al contenuto?
quali colonne si nascondono e chi le nasconde?
quali sono le colonne che ti interessano?
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 2007/2010 - Macro per nascondere colonne desiderat

Postdi lucertolina » 29/09/14 10:47

Ciao Flash, provo a spiegarmi meglio... sempre partendo da un file .tmp generato dal gestionale, ho creato alcune macro (in automatico) con le dritte che mi avete dato quando riscontravo problemi.
Ora avrei bisogno di creare una macro per nascondere alcune colonne, la larghezza è sufficiente si adatti al contenuto se possibile, e le colonne da nascondere sono: A - B - F - H - L - N, mentre devono restare visibili: C - D - E - G - I - J - K - M - O - P - Q - R.
Solo che utilizzando le macro automatiche, quando la lancio nasconde colonne diverse da quelle selezionate in sede di registrazione della macro...
Spero di essermi spiegata meglio...
Grazie
Ciao
Lucertolina
Windows 7 + OFF 2013 /// Windows 10 + Office 2010
lucertolina
Utente Junior
 
Post: 89
Iscritto il: 19/03/12 10:17
Località: Bergamo

Re: Excel 2007/2010 - Macro per nascondere colonne desiderat

Postdi Flash30005 » 29/09/14 11:19

Prova questa macro da lanciare alla fine di tutti i processi
Codice: Seleziona tutto
Sub FormCol()
    Columns("A:R").EntireColumn.AutoFit
    Columns(1).EntireColumn.Hidden = True
    Columns(2).EntireColumn.Hidden = True
    Columns(6).EntireColumn.Hidden = True
    Columns(8).EntireColumn.Hidden = True
    Columns(12).EntireColumn.Hidden = True
    Columns(14).EntireColumn.Hidden = True
End Sub


ciao
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 2007/2010 - Macro per nascondere colonne desiderat

Postdi lucertolina » 29/09/14 15:48

Ciao Flash... dovendo lasciare la macro suggerita alla fine, mi trovo con un altro problema che si crea quando voglio selezionare dalla cella A6 in giù i dati presenti con Ctrl+Shift e freccia in giù e poi freccia a destra, per poi poterli ordinare secondo colonna G e H...
Errore di Runtime 9 - Indice non presente nell'intervallo
Ti riporto un parziale della macro, dove la quarta riga è quella che risulta evidenziata...

Range("A6").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Worksheets("tmp023986186").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("tmp023986186").Sort.SortFields.Add Key:=Range( _
"G6:G115"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("tmp023986186").Sort.SortFields.Add Key:=Range( _
"K6:K115"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("tmp023986186").Sort
.SetRange Range("A6:Q115")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

C'è un modo per risolvere? Grazie... soprattutto per la pazienza!!
Ciao...
Lucertolina
Windows 7 + OFF 2013 /// Windows 10 + Office 2010
lucertolina
Utente Junior
 
Post: 89
Iscritto il: 19/03/12 10:17
Località: Bergamo

Re: Excel 2007/2010 - Macro per nascondere colonne desiderat

Postdi Flash30005 » 29/09/14 23:12

lucertolina ha scritto:C'è un modo per risolvere? Grazie... soprattutto per la pazienza!!


Hai detto bene "Soprattutto per la pazienza"
sei un po' casinista cara Lucertolina

Ma come pretendi di selezionare con la macro la cella A6
Codice: Seleziona tutto
Range("A6").Select
 Range(Selection, Selection.End(xlDown)).Select

se nel precedente post volevi nascondere le colonne A e B?
lucertolina ha scritto:le colonne da nascondere sono: A - B - F - H - L - N


Ho ben specificato che la macro da me realizzata la devi inserire (avviare) come ultimo step di tutte le macro che hai
altrimenti devi rendere visibili le colonne con questo comando prima di avviare altre macro e poi richiamare la mia macro che le nasconde di nuovo, quindi...
in testa alla macro che hai postato dovrai mettere questo codice
Codice: Seleziona tutto
    Columns("A:R").EntireColumn.Hidden = false
' e poi verranno le righe codice della macro da te postata
Range("A6").Select
 Range(Selection, Selection.End(xlDown)).Select
 Range(Selection, Selection.End(xlToRight)).Select
'...
'...


' alla fine dovrai riavviare la mia macro con la call
FormCol
End sub


Ciao
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 2007/2010 - Macro per nascondere colonne desiderat

Postdi lucertolina » 30/09/14 00:08

Eh..hai ragione! È solo che non so dove/come imparare questo linguaggio, se avessi suggerimenti sono apprezzati!:-)
Mercoledì provo quanto mi hai scritto...c'è solo una cosa che non mi torna. Tu mi hai detto che la macro per nascondere le colonne la devo lasciare alla fine di tutto, il problema che ti ho segnato nell'ultimo post accade prima che io nasconda le colonne...
Comunque provo e ti so dire...
Grazie infinite
Lucertolina
Windows 7 + OFF 2013 /// Windows 10 + Office 2010
lucertolina
Utente Junior
 
Post: 89
Iscritto il: 19/03/12 10:17
Località: Bergamo

Re: Excel 2007/2010 - Macro per nascondere colonne desiderat

Postdi Flash30005 » 30/09/14 00:36

Io non so cosa faccia il tuo codice, per saperlo dovrei avere il file e provarlo, quindi finché tutto ciò è in tuo possesso te la dovrai cavare da sola.
Per quanto riguarda il linguaggio Vba la guida in linea è abbastanza ricca ma soprattutto, a mio avviso, occorre essere molto razionali e buoni osservatori, di ciò che accade (causa/effetto e viceversa effetto/causa) ;)

Ciao
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 2007/2010 - Macro per nascondere colonne desiderat

Postdi lucertolina » 30/09/14 10:38

Ciao Flash... :-( ti devo "rompere" ancora... dimentica tutto quello che ho chiesto, di nascondere le colonne per ora...
Per cercare di capirci qualcosa (causa/effetto e viceversa) ho provato a generare il mio file temporaneo, testo in colonne, e volevo ordinare una selezione che parte dal primo dato nella cella A8 e selezionando per mezzo di Ctrl + Shift, freccina in giù e a destra i dati restanti e ordinando la colonna G e I.
Ma mi evidenzia la riga 16 partendo dal basso " ActiveWorkbook.Worksheets("tmp094033155").Sort.SortFields.Clear " con l'errore di Run-Time 9 - Indice non incluso nell'intervallo.
In questo caso non ho fatto altre operazioni che possano incasinare, cosa non va?
Ti allego la macro:
Sub Forn001()
'
' Forn001 Macro
'

'
Range("A10").Select
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.7)
.RightMargin = Application.InchesToPoints(0.7)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.75)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.25)
.RightMargin = Application.InchesToPoints(0.25)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.75)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.196850393700787)
.BottomMargin = Application.InchesToPoints(0.196850393700787)
.HeaderMargin = Application.InchesToPoints(0.196850393700787)
.FooterMargin = Application.InchesToPoints(0.196850393700787)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Selection.End(xlDown).Select
Columns("A:A").Select
Range("A98").Activate
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 4), Array(5, _
1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 4), Array(10, 4), Array(11, 4), Array(12 _
, 1), Array(13, 1), Array(14, 1)), TrailingMinusNumbers:=True
Range("A8").Select
Selection.End(xlDown).Select
Range("A118:A119").Select
Range("A119").Activate
Selection.ClearContents
Range("A8:A9").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Worksheets("tmp094033155").Sort.SortFields.Clear RIGA EVIDENZIATA
ActiveWorkbook.Worksheets("tmp094033155").Sort.SortFields.Add Key:=Range( _
"G8:G117"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("tmp094033155").Sort.SortFields.Add Key:=Range( _
"I8:I117"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("tmp094033155").Sort
.SetRange Range("A8:M117")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

Ancora grazie!
Ah, la guida di cui parli, dove la trovo?
Ciao
Lucertolina
Windows 7 + OFF 2013 /// Windows 10 + Office 2010
lucertolina
Utente Junior
 
Post: 89
Iscritto il: 19/03/12 10:17
Località: Bergamo

Re: Excel 2007/2010 - Macro per nascondere colonne desiderat

Postdi Flash30005 » 30/09/14 13:31

quando invii codice di macro usa i tag dell'editor voce CODE ma...
cosa dovrei farci con quel codice che hai postato?

ciao

P.s. la guida in linea è disponibile cliccando sul punto interrogativo che trovi sulla destra nel menu posto nella testata del foglio
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 2007/2010 - Macro per nascondere colonne desiderat

Postdi lucertolina » 30/09/14 14:35

Ciao Flash! Ho capito per la guida, tu intendi aprendo Visual Basic! Vista! Grazie! Io usando excel non vedo tutte quelle belle cose che per me sono arabo, ma giuro che mi impegno!! :-)
Quello che io avrei bisogno di fare è dare un comando che mi selezioni le celle partendo dalla A8 selezionando per mezzo di Ctrl + Shift, freccina in giù e a destra tutti i dati presenti e ordinando per la colonna G e I... ma è ovvio che non so come "dirlo" attraverso una macro, se non facendolo da excel e registrando la stessa in automatico, ma che mi da il problema sopra descritto...
Riesci ad aiutarmi anche in questo per favore?
Grazie...
Ciao
Lucertolina
Windows 7 + OFF 2013 /// Windows 10 + Office 2010
lucertolina
Utente Junior
 
Post: 89
Iscritto il: 19/03/12 10:17
Località: Bergamo

Re: Excel 2007/2010 - Macro per nascondere colonne desiderat

Postdi lucertolina » 01/10/14 09:40

Grazie! Ho risolto
Buona giornata
Lucertolina
Windows 7 + OFF 2013 /// Windows 10 + Office 2010
lucertolina
Utente Junior
 
Post: 89
Iscritto il: 19/03/12 10:17
Località: Bergamo

Re: Excel 2007/2010 - Macro per nascondere colonne desiderat

Postdi Flash30005 » 02/10/14 00:03

Continui ad essere sempre poco chiara perché almeno potresti spiegare come hai risolto e il perché prima non andava e dopo si?
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-


Torna a Applicazioni Office Windows


Topic correlati a "Excel 2007/2010 - Macro per nascondere colonne desiderate":


Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti