[Excel 2003] Iniziare macro dalla cella in cui si trova il pulsante premuto

Anonimo
2013-01-05T16:56:49+00:00

Buongiorno a tutti.

Ho un elenco di siti e forum con Username e password.

PULSANTE   https://skydrive.live.com   ******@hotmail.it   password

PULSANTE   http://www.google.it/       username               password

Ho registrato una macro in Excel 2003 , con riferimenti relativi, che copia la cella con lo Username e poi avvia il sito web corrispondente (questo per avere il nome utente già pronto da incollare).

Poi ho pensato di inserire un pulsante, a sinistra di ogni riga, per avviare la macro che prenda i dati di quella riga. Purtroppo non riesco a far sì che la macro inizi l'esecuzione dalla cella corrispondente alla posizione del pulsante premuto; devo prima portare il cursore nella cella del pulsante, poi la macro funziona bene.

Ho fatto ricerche con "Active.cell" e "Range", ma non ho concluso niente. Avevo anche pensato ad usare il "rilascio" del pulsante, ma non so come fare...

La Macro è questa:

Sub FILL()

'

' FILL Macro

'

'

ActiveCell.Offset(0, 2).Range("A1").Select

Selection.Copy

ActiveCell.Offset(0, -1).Range("A1").Select

Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

End Sub

Grazie a chi mi vorrà aiutare.

Ciao!

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-01-07T22:24:11+00:00

Ciao dnidny,

ho visto il tuo esempio e ho una buona notizia: ti puoi risparmiare i pulsanti. Visto che ciò che ti proponi sembra essere semplicemente copiare il contenuto della cella a destra di quella contenente il collegamento ipertestuale allora basterà intercettare:

  • Event FollowHyperlink(Target As Hyperlink)

    Membro di Excel.Worksheet

Così:

  1. Clic destro sul nome del Foglio di lavoro (nell'esempio è Foglio1)
  2. Visualizza codice
  3. Seleziona:

Worksheetnella casella Oggetto, quella in alto a sinistra dove si legge: (generale). 4. Seleziona:

FollowHyperlinknella casella Routine, quella in alto a destra dove probabilmente ora si legge: SelectionChange. 5. Ora il cursore è fra le righe della routine, così:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)|End Sub 6. Aggiungi l'istruzione:

Target.Range.Offset(, 1).Copyin modo da ottenere:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

    Target.Range.Offset(, 1).Copy

End Sub

Tutto qui, e i pulsanti non servono più. Fa' sapere se è quello che ti interessava ottenere.

La risposta è stata utile?

6 persone hanno trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2013-01-08T18:16:08+00:00

Ciao dnidny,

grazie del riscontro!

Una "Macro" è una "Routine", perché tutto il codice che scriviamo lo scriviamo in blocchi di istruzioni, di tipo "Sub" o "Function", dette appunto routine. Una macro è una routine, di tipo "Sub", un po' speciale in quanto

  • deve essere accessibile dall'interfaccia utente di Excel (cosa che invece non dovrebbe essere vera per tutte le altre routine di tipo "Sub") allo scopo per esempio di poterla associare a un Pulsante. .
  • non può prevedere parametri, o argomenti.
  • deve essere scritta in un "Modulo", detto anche "Modulo standard", del Progetto VBA.

Anche quella proposta (Worksheet_FollowHyperlink) è una routine, di tipo "Sub", un po' speciale in quanto viene eseguita a seguito dello scatenarsi di un "Evento". È detta appunto routine-evento e può essere scritta solo nel "Modulo di classe" di un oggetto. Nel nostro caso l'oggetto Worksheet.

La risposta è stata utile?

3 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-01-10T17:06:33+00:00

    Ciao dnidny,

    arrivederci! :)

    La risposta è stata utile?

    3 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento