› Sviluppare funzionalita su Microsoft Office con VBA › messaggio in un pulsante
-
AutoreArticoli
-
Ciao a tutti,
nel foglio allegato c'è un pulsante verde per cancellare la colonna A.
E' possibile che se mi avvicino nel pulsante compaia un messaggio con il testo che c'è in F2 ?
Grazie
Allegati:
You must be logged in to view attached files.Ciao
Prova a passare il mouse sull'immagie col cestino. Vedi cosa è diventato visibile?
Il codice utilizzato è il seguente:
Option Explicit Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Dim farXmargin As Single, farYmargin As Single Dim marginSize As Single Application.EnableEvents = False marginSize = 5 farXmargin = Image1.Width - marginSize farYmargin = Image1.Height - marginSize If X < marginSize Or Y < marginSize Or X > farXmargin Or Y > farYmargin Then Foglio1.Shapes("mInfo").Visible = False Else Foglio1.Shapes("mInfo").Visible = True End If Application.EnableEvents = True End SubVedi se è quello che cercavi. Fai sapere. Ciao,
Mario
Allegati:
You must be logged in to view attached files.Grazie Mario,
come soluzione va bene ma come adattarla al pulsante verde?
Ciao
Non puoi adattarla! Cioè devi capire come ho fatto ed adeguarti. Mi spiego.
I due oggetti che vedi sono due immagini (ActiveX). Nella prima, che ho lasciato come denominazione Image1, ho inserito l'immagine del cestino. Nella seconda, che ho denominato mInfo, ho inserito la tua dicitura che ho salvato come immagine .jpg. La macro dà l'effetto di nascondere/scoprire la seconda immagine.
La materiale cancellazione del contenuto della colonna A (cioè il lavoro della tua macro) andrebbe inserito dopo:
Foglio1.Shapes("mInfo").Visible = True
Prova e fai sapere. Ciao,
Mario
Ciao,
per semplificare ho inserito nel pulsante verde un collegamento ipertestuale.
Ora se avvicino il mouse compare il messaggio popoup ma la macro collegata al pulsante non funziona più
Un aiuto?
Allegati:
You must be logged in to view attached files.Modifica il collegamento ipertestuale cambiando la destinazione dalla cella A1 alla cella C2 (perché nascosta dal pulsante); poi metti questo codice nel modulo del Foglio1
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$C$2" Then Application.EnableEvents = False Range("A1").Select cancella Application.EnableEvents = True End If End SubE modifica così il codice della sub cancella():
Sub cancella() '<<<---- ok Dim avviso As VbMsgBoxResult avviso = MsgBox("cancello tutto?", vbInformation + vbYesNo + vbDefaultButton2, "AVVISO") If avviso = vbYes Then Range("A3:A1006").ClearContents End SubGrazie scossa, funziona.
Ora devo adattarla a un workbook più grande.
In questo workbook ci sono vari pulsanti per cancellare varie colonne e come l'ho modificato non funziona.
Non capisco poi perchè nell'allegato l'avviso popup compare vicino al proprio pulsante invece nel workbook
che devo modificare compare in alto a sx sotto la barra del nome.
Allegati:
You must be logged in to view attached files.Ciao ho modificato questa macro, se è esatto, ora funziona con 3 pulsanti
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$2" Then Application.EnableEvents = False Range("A1").Select cancella_1 'cancella_2 Application.EnableEvents = True End If If Target.Address = "$D$2" Then Application.EnableEvents = False Range("D1").Select 'cancella_1 cancella_2 Application.EnableEvents = True End If If Target.Address = "$F$2" Then Application.EnableEvents = False Range("F1").Select 'cancella_1 cancella_3 Application.EnableEvents = True End If End Subnon capisco perchè nel workbook originale il messaggio non compare sotto il pulsante come scritto nel post #54933
Allegati:
You must be logged in to view attached files.Potresti semplificare usando un solo If:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("A2, D2, F2")) Is Nothing Then Application.EnableEvents = False Target.EntireColumn.Cells(1, 1).Select cancella Target Application.EnableEvents = True End If End Subed usare una sola sub cancella
Sub cancella(ByRef trg As Range) '<<<---- ok Dim avviso As VbMsgBoxResult avviso = MsgBox("cancello tutto " & Split(trg.Address, "$")(1) & "?", vbInformation + vbYesNo + vbDefaultButton2, "AVVISO") If avviso = vbYes Then trg.EntireColumn.Rows("3:1006").ClearContents End SubIn questo modo puoi aggiungere altri pulsanti semplicemente aggiungendo le relative celle nella riga
If Not Intersect(Target, Range("A2, D2, F2, H2, Z2")) Is Nothing Then
Grazie sempre più semplice, solo che la macro cancella nel workbook originale è diversa per ogni pulsante.
Comunque grazie ancora.
Per il popup che non si visaulizza nel workbook originale sotto i pulsanti si può risolvere?
solo che la macro cancella nel workbook originale è diversa per ogni pulsante.
Almeno usa il costrutto
If ... Then ... ElseIf .... Then ... Else.Per il popup che non si visaulizza nel workbook originale sotto i pulsanti si può risolvere?
Senza il file originale non sono in grado di rispondere.
Nel workbook originale ci sono dei blocca riquadri e se li tolgo i popup si visulizzano correttamente.
Anche nell'allegato c'è un blocca riquadri e i popup si visualizzano a sx.
Allegati:
You must be logged in to view attached files.Se clicco in una cella sopra il blocca riquadri i messaggi popup si visualizzano correttamente sotto i pulsanti
Non si riesce a risolvere?
Ciao
Io mi sono perso. All'inizio chiedevi di far apparire un messaggio al passaggio del mouse sopra un pulsante. Poi che il msgbox apparisse in un determinato punto dello schermo (cosa che ritengo non fattibile col MsgBox ma con una UserForm si), poi dici che i messaggi si visualizzano correttamente sotto i pulsanti, dici ancora che c'è qualche problema se nel foglio ci sono dei "blocca riquadri".
Potresti fare un po' di chiarezza (almeno per me) e specificare cosa vuoi ottenere facendo riferimento ad un reale Foglio Excel (con o senza blocca-riquadri? Grazie.
Ciao,
Mario
Ciao,
nel workbook allegato ci sono dei pulsanti e dei bloccariquadri,
Se clicchi in una cella sotto i bloccariquadri i messaggi popup dei pulsanti si visualizzano a sx sotto la barra di nomi e non va bene .
Se clicchi in una cella sopra i bloccariquadri i messaggi popup si visualizzano sotto i pulsanti e va bene
Se non ci sono i bloccariquadri i messaggi popup si visualizzano sotto i pulsanti e va bene.
I messaggi pop con i bloccariquadri devo essere visibili sempre sotto i pulsanti anche senza cliccare in una cella.
Spero di essermi spiegato.
Allegati:
You must be logged in to view attached files.Non si riesce a risolvere?
... Se clicchi in una cella sotto i bloccariquadri i messaggi popup dei pulsanti si visualizzano a sx sotto la barra di nomi e non va bene .
A me li mostra sempre sotto ai rispettivi pulsanti, blocco o non blocco e indipendentemente dalla cella attiva.
Ma no so cosa dire, a me se clicco in una cella sotto i blocca riquadri i popup si visualizzano a sx sotto la barra dei nomi.
Nelle foto allegate
1 = clicco sopra i riaquadri i popup sotto i pulsanti
2= clicco sotto i riquadri i popup a sx sotto la barra dei nomi.
Forse colpa della versione di excel?
La mia 2007.
Allegati:
You must be logged in to view attached files.2007
vedi mia risposta precedente #54960
Grazie scossa
-
AutoreArticoli
