Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Creare pulsanti macro e funziona copia cella.

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

Creare pulsanti macro e funziona copia cella.

Postdi winbet » 15/06/11 10:51

Buongiorno....
Allora mi ritrovo con un foglio excel su cui c'è una macro che mi riporta i dati da un sito web creandomi circa 60fogli...
-Ho creato dei pulsanti con collegamenti ad altre macro sulla riga 1 di ogni foglio ed in base al contenuto del foglio deciderò io quale cliccare...
-1a domanda.: Come faccio a bloccare i pulsanti senza che al successivo riaggiornamento del foglio, non vengano cancellati?
Ho provato a togliere spunta alla casella bloccata su tutte le celle e poi bloccare solo riga A ma evidentemente sbaglio qualcosa..
-2a domanda.: è possibile cliccando su una cella riportare il contenuto di quest'ultima in un nuovo foglio?
In questo modo vorrei riportare in un nuovo foglio quello che io clicco nei 60 fogli.
...Vi ringrazio
winbet
Utente Junior
 
Post: 12
Iscritto il: 31/05/11 09:31

Sponsor
 

Re: Creare pulsanti macro e funziona copia cella.

Postdi Avatar3 » 15/06/11 11:34

1) I pulsanti o forme non vengono cancellati se usi ClearContents di tutte le celle
Se invece selezioni righe o colonne ed elimini, allora i pulsanti possono essere cancellati o spostati di n righe o n colonne

2) inserisci questa macro nel VBa del foglio
(se il foglio ha un nome diverso da Foglio1 cambia il nome del foglio nella macro)

Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
URG = Cells(Rows.Count, 1).End(xlUp).Row
CheckAreaA = "A1:A" & URG  '<<<<< definisci l'area delle celle che vuoi cliccare

Application.ScreenUpdating = False
Application.Calculation = xlManual
If Not Application.Intersect(Target, Range(CheckAreaA)) Is Nothing Then
    Copia = Target.Value
    riga = Target.Row
    colonna = Target.Column
    For F = 1 To Worksheets.Count
        If Sheets(F).Name <> "Foglio1" Then
            Sheets(F).Cells(riga, colonna).Value = Copia
        End If
    Next F
End If
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Creare pulsanti macro e funziona copia cella.

Postdi winbet » 15/06/11 13:46

grazie come sempre per la celerità.....
Punto 1 di quello che mi hai spiegato.Avendo necessità di non cancellare solamente La riga A1 ,dovrei limitarmi a tale codice...posso aggiungerlo nella stessa macro che utilizzo per aggiornare i dati?
Sheets("NOMEdelFoglio??").Range("A1:U30").ClearContents

...Visto che i fogli cambiano di nome ogni volta, metto all.sheets.come nome??
Eventuale risposta mi è utile anche per il punto 2....grazie
winbet
Utente Junior
 
Post: 12
Iscritto il: 31/05/11 09:31

Re: Creare pulsanti macro e funziona copia cella.

Postdi Avatar3 » 15/06/11 15:26

Nella macro hai delle dichiarazione pubbliche nelle quali devi aggiungere come stringa NomeF in questa maniera
Codice: Seleziona tutto
Option Explicit
Dim Coffset As Integer, NomeF As String

e all'inizio della tua macro di aggiornamento inserisci questo codice
Codice: Seleziona tutto
Public NomeF As String

Sub TuaMacroAggiornamento()
    For F = 1 To Worksheets.Count
        If Sheets(F).Name <> Name Then '<<< togliere questa condizione se devi "ripulire anche il primo foglio
            Sheets(F).Cells.ClearContents
        End If                       '<<< togliere questa condizione se devi "ripulire anche il primo foglio
    Next F

End Sub

Se devi cancellare tutte le celle anche del primo foglio non c'è bisogno di dichiarare NomeF
Nel vba del foglio inserisci questa macro
(una è aggiunta e non occorre se devi cancellare anche il primo foglio e l'altra è la precedente modificata)

Codice: Seleziona tutto
Private Sub Worksheet_Activate()  '<<<<< non occorre se devi cancellare anche il primo foglio
NomeF = Name            '<<<<< non occorre se devi cancellare anche il primo foglio
End Sub   '<<<<< non occorre se devi cancellare anche il primo foglio

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
URG = Cells(Rows.Count, 1).End(xlUp).Row
CheckAreaA = "A1:A" & URG
Application.ScreenUpdating = False
Application.Calculation = xlManual
If Not Application.Intersect(Target, Range(CheckAreaA)) Is Nothing Then
    Copia = Target.Value
    riga = Target.Row
    colonna = Target.Column
    For F = 1 To Worksheets.Count
        If Sheets(F).Name <> Name Then
            Sheets(F).Cells(riga, colonna).Value = Copia
        End If
    Next F
End If
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: Creare pulsanti macro e funziona copia cella.

Postdi winbet » 15/06/11 20:31

Perfetto.......ho risolto con i tasti, il prezioso aiuto di avatar è stato ottimo e come sempre non fallisce 1colpo questo forum..... ;)
winbet
Utente Junior
 
Post: 12
Iscritto il: 31/05/11 09:31


Torna a Applicazioni Office Windows


Topic correlati a "Creare pulsanti macro e funziona copia cella.":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti