Condividi:        

[EXCEL] Creazione pulsante sempre attivo + 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] Creazione pulsante sempre attivo + macro

Postdi cd7019 » 28/11/12 19:58

Salve,
vorrei porVi 2 quesiti che non ho trovato nel forum:
1) Vorrei creare un pulsante che sia sempre attivo nella barra degli strumenti a cui è collegata una macro che esegua una serie di formattazioni dei vari fogli, la macro non è presente nei fogli aperti (ad esempio come il pulsante grassetto).

2) vorrei ordinare 11 colonne con un certo ordine, ad esempio:

1° foglio di origine: a1: via b1: cognome c1: nome d1: data ......
2° foglio di origine: a1: data b1: nome c1: nome d1: data ......
.............

ordine voluto e relativa colonna: a1: nome b1: cognome c1: data d1: via ......

cioè vorrei mettere la colonna con la cella contenente "nome" nella 1° colonna, la cella contenente "cognome" nella 2° colonna,la cella contenente "data" nella 3° colonna, la cella contenente "via" nella 4° colonna, ecc.... la disposizione delle colonne nei file di origine è casuale.

grazie 1000.
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Sponsor
 

Re: [EXCEL] Creazione pulsante sempre attivo + macro

Postdi Flash30005 » 28/11/12 21:20

Quale versione di office hai?
è opportuno inserire queste informazioni nella "firma" in pannello controllo account
vedi qui

I fogli con dati sparsi casualmente da una colonna all'altra hanno una testata (prima riga: data, nome, etc)?

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] Creazione pulsante sempre attivo + macro

Postdi cd7019 » 28/11/12 21:42

Si, La prima riga è l'intestazione con: "nome", "cognome", "via", "data", ecc.... e non cambia mai nei vari fogli di calcolo, però le colonne sono disposte con ordine casuale.


Grazie.
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Re: [EXCEL] Creazione pulsante sempre attivo + macro

Postdi Flash30005 » 28/11/12 22:33

Ma questi fogli sono in un unico file o sono fogli singoli su più file?
Nel secondo caso i file hanno un percorso specifico?
dove vorresti inserire i dati importati in un foglio del file contenente i foglio dati-origine oppure in un nuovo file con foglio di riepilogo?

potresti inviare uno o più file con i fogli-tipo?

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] Creazione pulsante sempre attivo + macro

Postdi cd7019 » 28/11/12 23:01

Ci sono tanti files con un unico foglio.
I files sono nella stessa directory.
Procedura:
1) apro il file
2) clicco sul pulsante nella barra degli strumenti che esegue:
3) eseguo la formattazione (colore, ecc...)
4) ordino le colonne secondo l'intestazione, cioè la 1° riga ( "nome", "cognome", "data", "via" ...)
5) sovrascrivo il file
6) chiudo il file

Non riesco ad allegare un file, ma è molto semplice, 1° riga: intestazione, righe successive: dati con nominativi e via, data, ecc...

Grazie.
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Re: [EXCEL] Creazione pulsante sempre attivo + macro

Postdi Flash30005 » 29/11/12 00:41

Apri una nuova cartella (file di excel)
inserisci in un modulo questa macro
Codice: Seleziona tutto
Sub TestElencoFile()
ElencoFile Direct:=ActiveWorkbook.Path, Estens:="*.xls*", Inicell:=ActiveCell
End Sub

Sub ElencoFile(Direct As String, Estens As String, Inicell As Range)
Dim i As Integer, f As String
ChDir Direct
perc = ThisWorkbook.Path & "\"
f = Dir(Estens)
If f = "" Then Exit Sub
While f <> ""
If f <> "MasterNorm.xls" Then  '<<<<< nome foglio con macro
    Workbooks.Open(perc & f).Activate
    Foglio = ActiveSheet.Name
    UC = Sheets(Foglio).Cells(1, Columns.Count).End(xlToLeft).Column
    Sheets.Add.Name = "Normalizzato"   '<<<<<<<< nome foglio dati normalizzati
    For CC = 1 To UC
        Campo = Worksheets(Foglio).Cells(1, CC).Value
        Select Case Campo
        Case "Nome"
        Col = 1
        Case "Cognome"
        Col = 2
        Case "Data"
        Col = 3
        End Select
        Worksheets(Foglio).Columns(CC).Copy Destination:=Worksheets("Normalizzato").Columns(Col)
    Next CC
    'Application.DisplayAlerts = False  '<<<<<<<<<<< togliere il commento a queste 3 righe-codice
    'Sheets(Foglio).Delete
    'Application.DisplayAlerts = True
    Workbooks(f).Close savechanges:=True
End If
f = Dir
Wend
End Sub

Potrai inserire nel foglio un qualsiasi comando, bottone, pulsante per attivare la macro
Aggiungi i campi nella Select della macro con i riferimenti colonna destinazione (io ne ho inseiti solo 3, ma con lo stesso procedimento ne potrai inserire molti altri)

Salvi questo file con nome "MasterNorm.xls" in caso contrario cambiare il nome di riferimento nella macro
Il salvataggio va fatto nella stessa cartella dei file che devi normalizzare

Avvii la macro che ti creerà un foglio con nome "Normalizzato" in ogni file (nome che potrai cambiare nella macro)
Se vorrai eliminare il foglio origine dati togli i commenti alle tre righe evidenziate

Fai sapere se tutto ok
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] Creazione pulsante sempre attivo + macro

Postdi cd7019 » 29/11/12 15:13

grazie mille, sei stato molto gentile.
Ho provato il programma e funziona molto bene.
Però vorrei creare un pulsante su excel che sia sempre attivo cioè come ad esempio il tasto grassetto , quando premo questo tasto mi esegue una serie di operazioni (cambio colore, grassetto, corsivo, colore sfondo,ordina colonne) in modo sequenziale e senza aprire un nuovo foglio e una macro. E' possibile?

Per l'ordinamento delle colonne ho provato a scrivere questo programma. Che ne dici?
via nome data cognome
Via Mazzini Luigi 02/12/60 Bianchi
Via Roma Giuseppe 04/06/50 Verde
Via Arno Albero 07/05/45 Rosso
Via Milano Stefano 12/09/46 Conti


Sub Macro1()
Application.AddCustomList ListArray:=Array("nome", "cognome", "via", "data")
Range("A1:D8").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=6, MatchCase:=False, Orientation:=xlLeftToRight
End Sub

grazie
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Re: [EXCEL] Creazione pulsante sempre attivo + macro

Postdi Flash30005 » 30/11/12 15:31

La macro da te postata funziona egregiamente

Per quanto riguarda la personalizzazione della barra multifunzione posso solo linkarti il sito della Casa Madre
Personalizzazione Barra Multifunzione
perché credo che tu possa personalizzare tale barra con i soli comandi di default (Microsoft)

Un'alternativa potrebbe essere quella di crearti un modello già formattato secondo i tuoi desideri

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] Creazione pulsante sempre attivo + macro

Postdi cd7019 » 15/12/12 19:46

ho trovato il metodo x creare una macro sempre attiva, quando apro excel, però mi manca l'ultimo passaggio.
Descrivo la procedura che ho adottato x EXCEL 2003:
1) ho creato la mia macro su un modulo:
Sub FORMAT()
ActiveCell.Select
With Selection
.Interior.ColorIndex = 44
.Interior.Pattern = xlSolid
.Font.ColorIndex = 5
.Font.Bold = True
.Font.Italic = True
.HorizontalAlignment = xlLeft
End With
End Sub

2) ho salvato il file in formato SETUP.xla (aggiunta microsoft excel con salva con nome) in una mia directory di lavoro
3) ho caricato il file tramire STRUMENTI > AGGIUNTE > SFOGLIA > SETUP.xla
4) ho attivato la spunta di SETUP
5) ho chiuso EXCEL per conferma
6) ho riaperto EXCEL
7) il file SETUP è sempre attivo quando apro EXCEL

mi manca l'ultimo passaggio: non riesco collegare un punsante (della barra degli strumenti) con la macro esistente e perfettamente funzionante, ma non visibile.

Richiedo il Vostro prezioso aiuto.
Ho proprio necessità di collegare un pulsante con questa macro "nascosta".

Grazie
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Re: [EXCEL] Creazione pulsante sempre attivo + macro

Postdi Anthony47 » 17/12/12 01:32

Ma questo lo devi fare in Excel2003 o altra versione?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Creazione pulsante sempre attivo + macro

Postdi cd7019 » 18/12/12 13:37

Si deve eseguire questa macro in excel 2003.

Mi manca solo il collegamento di un pulsante con questa macro.
La macro è caricata sempre quando apro EXCEL, funziona perfettamente su tutti i fogli che io apro successivamente
però non riesco a collegare un pulsante, sono costretto a lanciarla aprendo Visual Basic > selezionare il file > selezionare il modulo > lanciare la macro.


La mia stampante ha creare un una voce nel menù File di Excel (con macro componente aggiuntivo, identico al mio esempio) , riporto una porzione del listato:

Private Sub SetupMenuItems()
Set myitem = CommandBars("Worksheet Menu Bar").Controls.Item(1) ' the File menu
If myitem.CommandBar.NameLocal = "File" Then
Set exititem = CommandBars("File").Controls.Item("Exit")
USE_ITALIAN_SETUP:
' Italian
lang = 5
strItemExit = "Esci"
strItemAcquire = "Acquisisci testo (" + SSFTAppName + ")..."
strItemAcquireTip = "Acquisisci testo"
strItemSettings = "Acquisisci impostazioni del testo (" + SSFTAppName + ")..."
strItemSettingsTip = "Acquisisci impostazioni del testo"

End Sub

Public Sub Auto_Open()
On Error Resume Next
SetupMenuItems

Set oaitem = CommandBars("File").Controls.Item(strItemAcquire)
If oaitem.Caption <> strItemAcquire Then
itemindex = CommandBars("File").Controls.Item(strItemExit).Index
Set newitem = CommandBars("File").Controls.Add(Type:=msoControlButton)
With newitem
.Move Before:=itemindex
.Caption = strItemAcquire
.ToolTipText = strItemAcquireTip
.Style = msoButtonCaption
.Visible = True
.BeginGroup = True
.FaceId = 0
.OnAction = strActionAcquire
.Tag = strTagAcquire
End With
End If

Set oaitem = CommandBars("File").Controls.Item(strItemSettings)
If oaitem.Caption <> strItemSettings Then
itemindex = CommandBars("File").Controls.Item(strItemAcquire).Index
Set newitem = CommandBars("File").Controls.Add(Type:=msoControlButton)
With newitem
.Caption = strItemSettings
.ToolTipText = strItemSettingsTag
.Style = msoButtonCaption
.FaceId = 0
.OnAction = strActionSettings
.Move Before:=itemindex + 1
.Tag = strTagSettings
End With
End If

mycount = CommandBars("File").Controls.Count
Set exititem = CommandBars("File").Controls.Item(mycount)
exitIndex = exititem.Index
With exititem
.BeginGroup = True
End With

End Sub

E' possibile creare un pulsante + collegamento modificando qualche istruzione nella macro precedente?
Grazie
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38

Re: [EXCEL] Creazione pulsante sempre attivo + macro

Postdi Anthony47 » 18/12/12 14:49

Io farei cosi':
1) metti la macro nel tuo PERSONAL.xls
2) poi crei una barra di strumenti "personalizzata" in cui inserisci il richiamo alla macro

Come fare:
1)
a)nell' editor delle macro, guarda se hai nel frame Progetto-VBAProject un riferimento a VBAProject(Personal.xls)
b) se Si, vai a d
c) se No, torna in Excel e avvia la registrazione di una macro; dalle un nome a piacere, e nella scelta "Memorizza macro in.." scegli Cartella macro personale; seleziona una cella a piacere e interrompi la registrazione. Torna nell' editor delle macro, e dovresti trovare ora il "progetto(Personal.xls)"
d) posizionati in un "Modulo" di Personal.xls e carica il codice della tua macro (se hai appena registrato la macro del punto c dovresti vederne il codice, che puoi cancellare senza remore)
e) torna su Excel

2)
a) Menu /Visualizza /Barra degli strumenti /Personalizza; premi Nuova
b) assegna un nome, e ti visualizza una bozza di toolbar
c) nel DialogueBox "Personalizza", premi il tab Comandi e seleziona la categoria Macro
d) trascina una delle icone disponibili sulla nuova barra, es la faccina
e) tasto dx sulla faccina, scegli "Cambia icona" e mettine una che ti piace di piu'; eventualmente anche cambia Nome e passa a "Icona e testo"
f) infine tasto dx e Assegna macro; la nuova toolbar e' pronta
g) trascina la toolbar in alto, accanto a una dell toolbar gia' visualizzate
h) chiudi Excel (probabilmente ti sara' chiesto se vuoi salvare le modifiche a Personal.xls e tu risponderai ovviamente Si), e riaprilo.
La tua toolbar col suo pulsante sara' presente nel tuo ambiente di lavoro; potrai nasconderla o spostarla come fai con tutte le altre toolbar.
Il file Personal.xls e' in file che si apre in modalita' nascosta tutte le volte che apri excel, potrai usarlo come repository di funzioni e macro che vuoi tenere sempre a portata di mano.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Creazione pulsante sempre attivo + macro

Postdi cd7019 » 18/12/12 19:14

Sei un genio.

grazie mille.
EXCEL 2003
cd7019
Utente Senior
 
Post: 232
Iscritto il: 26/06/12 21:38


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Creazione pulsante sempre attivo + macro":


Chi c’è in linea

Visitano il forum: Nessuno e 40 ospiti