VBA con riferimenti...
 
Notifiche
Cancella tutti

La consultazione del forum è libera per tutti.

Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).

Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.

[Risolto] VBA con riferimenti variabili al foglio excel

 
Forum 1
(@cesare)
Utente Attivo

ciao,

non so come definire in modo variabile  il riferimento al foglio excel; ad es il comando:

Application.Run "'modello'!Foglio1.ListF"

in modo che se salvo il foglio ad esempio "modello2"

Grazie Mille!!

Versione di Excel
Microsoft 365
Sistema operativo
Windows
Quota
Avviatore di Topic Postato : 09/09/2021 09:36
Etichette discussione
cromagno
(@cromagno)
Excel Guru Moderatore

Ciao,

riformula meglio la domanda perchè si capisce veramente poco di quel che vuoi fare.

"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

RispondiQuota
Postato : 09/09/2021 10:00
Forum 3
(@a-maurizio)
Utente Attivo

Ciao Cesare 

Concordo con quanto detto da Cromagno 

Però se non ho capito male la tua domanda

Tu dovresti creare una cosa di questo genere :

DoEvents

passa il controllo ad altri processi, lascia lavorare in Excel
si usa nel ciclo Timer per permettere di usare Excel durante il conteggio

Application.


Application.Run "nome applicazione" esegue una applicazione esterna
utilizzato per esempio per eseguire le macro di altri file Excel aperti

 

 

 

 

RispondiQuota
Postato : 09/09/2021 11:59
Forum 1
(@cesare)
Utente Attivo

spiego meglio con il file che allego:

1) nel foglio "Riepilogo" è associato un codice ListF(), che fa la lista dei fogli presente nel file.

2) la macro aggiorna_elenco() deve attivare ListF()

non so come definire in modo variabile  il riferimento al foglio excel nella macro, in questo caso:
Application.Run "'prova.xlsm'!Foglio1.ListF"

quindi se si salva il file come prova2, rendere variabile al nome del file il riferimento del comando Application.Run

 

Ho provato scrivendo nella macro:

Dim nome_file As String
Dim nome_sub As String
nome_file = ActiveWorkbook.Name 'Application.ActiveWorkbook.Name
nome_sub = "Foglio1.ListF"

appication.Run nome_file.nome_sub

ma non funziona

 

RispondiQuota
Avviatore di Topic Postato : 10/09/2021 08:50
cromagno
(@cromagno)
Excel Guru Moderatore

Ciao,

forse ho frainteso la tua richiesta ma...non vedo il problema.
Una volta che utilizzi l'istruzione/proprietà ThisWorkbook, il file lo puoi chiamare come ti pare, il codice farà sempre riferimento a quel file.
L'unico problema è come hai impostato e piazzato le sub.

  • La Sub ListF la puoi mettere tranquillamente in un modulo standard, ricorda che se metti una sub all'interno di un modulo di classe (del foglio Riepilogo in questo caso), quella sub sarà "visibile" (e richiamabile) solo all'interno di quel modulo.
  • La Sub ListF la puoi richiamare con l'evento Workbook_Open del modulo di classe Questa_cartella_di_lavoro e con l'evento Worksheet_Activate del modulo di classe del foglio Riepilogo;
    in questo modo puoi fare a meno della Sub aggiorna_elenco.
  • Nel foglio Riepilogo ti conviene eliminare la tabella dati_fogli almeno non dovrai manipolare un oggetto tabella tramite codice.

Il codice, da mettere in un modulo standard, sarà:

Option Explicit

Sub ListF()
    Dim i As Integer
    Dim ActRow As Integer
    
    Range("A3:A" & Rows.Count).ClearContents
    ActRow = 3
    For i = 1 To ThisWorkbook.Worksheets.Count
        If Sheets(i).Name <> ThisWorkbook.ActiveSheet.Name Then
            Range("A" & ActRow).Value = Sheets(i).Name
            ActRow = ActRow + 1
        End If
    Next i
End Sub

Ti riallego il file:

 

P.S.
Abituati ad usare Option Explicit per rendere obbligatoria la dichiarazione delle variabili.

P.P.S.
Quando posti un codice, utilizza gli appositi TAG CODE, per rendere il codice più leggibile:

"Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

RispondiQuota
Postato : 11/09/2021 01:25
Forum 1
(@cesare)
Utente Attivo

@cromagno Grazie Mille! la tabella mi serve perché devo aggiungere colonne con riferimenti sul nome del foglio della colonna che si aggiorna.

Grazie ancora

Cesare

RispondiQuota
Avviatore di Topic Postato : 13/09/2021 14:26
Condividi:

[]
×