Condividi:        

[EXCEL] Già che con Anthony nulla sembra impossibile...

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] Già che con Anthony nulla sembra impossibile...

Postdi ramset64 » 30/11/08 12:28

Se abbiamo un pulsante, una forma o un oggetto qualsiasi che abbia un nome sopra, è possibile richiamare in una macro quel nome?
Faccio un esempio se su un pulsano scrivo file1, è possibile nella macro avere il richiamo a file1?
Qua siamo nella fantascienza mi sa eh? :D
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Sponsor
 

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi Anthony47 » 30/11/08 21:03

Ti sei scatenato...
Puoi leggere e portare in una variabile il testo di un oggetto con una formula del tipo
Codice: Seleziona tutto
ObjLabl = ActiveSheet.Shapes("Nome-dell'oggetto").TextFrame.Characters.Text


Se la macro e' attivata dallo stesso pulsante, leggerai il "nome-dell'oggetto" con
Codice: Seleziona tutto
ObjNam = Application.Caller

e quindi potrai condensare in
Codice: Seleziona tutto
ObjLabl = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text

Se col valore del testo vuoi aprire un file, userai ObjLbl come hai usato NextName nella macro del quesito "Questa e' difficile..."

Ma anche qui mi permetto di dire che e' una modalita' alquanto poco intuitiva, salvo che il testo non sia fisso e soprattutto sia autoesplicativo.

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

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi ramset64 » 30/11/08 21:22

Sembra alquanto complicato (ma ne sai una più del diavolo :) ).
Ascolta se nella colonna A ho un elenco di file e nella colonna B voglio inserire un pulsante o oggetto o qualsiasi altra cosa che mi permetta di attivare una macro, come posso fare per utilizzare sempre la stessa macro con la sola differenza del nome indicato nella colonna A?
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi Flash30005 » 30/11/08 21:42

ramset64 ha scritto:Sembra alquanto complicato (ma ne sai una più del diavolo :) ).
Ascolta se nella colonna A ho un elenco di file e nella colonna B voglio inserire un pulsante o oggetto o qualsiasi altra cosa che mi permetta di attivare una macro, come posso fare per utilizzare sempre la stessa macro con la sola differenza del nome indicato nella colonna A?
Ciao

Ma questa macro cosa deve fare sulla colonna A? Rinominare il file? aprire il file corrispondente alla riga relativa al pulsante (es. cella B2 attiva file cella A2?)
cerca di essere un tantino più chiaro e la soluzione vedrai che si trova (Anthony la trova di sicuro)

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] Già che con Anthony nulla sembra impossibile...

Postdi Anthony47 » 01/12/08 00:35

Ipotesi 1:
Selezioni la cella col nome, e poi premi un unico pulsante che lancera' la MacroXyz.
Nella macro controllerai subito che la cella selezionata appartiene al range valido, se NO mandi un messaggio ed esci:
Codice: Seleziona tutto
If Intersect(Target, Range("A1:A100")) Is Nothing Or Selection.Count > 1 Then Msgbox("Selezionare il nome di un file") : Exit Sub

Sai associare la macro a un pulsante?

Ipotesi 2:
Intercetti l' evento "doppioclick" con questa macro da inserire nel modulo che raggiungi facendo tasto dx sul tab del nome foglio:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("A1:A100")) Is Nothing Or Selection.Count > 1 Then Msgbox("Selezionare il nome di un file") : Exit Sub
Call MacroXYZ
Cancel = True
End Sub


La "MacroXYZ" invece sara' posizionata su un modulo standard del vba; se non ce ne sono ancora: Menu /Inserisci /Modulo.

Sia su Ipotesi 1 che 2, all' interno della MacroXYZ leggerai il contenuto della cella selezionata con
Codice: Seleziona tutto
Variab=Activecell.value

Poi userai Variab per quello che devi fare.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi ramset64 » 01/12/08 17:56

Anthony ho capito i tuo suggerimenti ma non riesco a mettere insieme la macro.
L'ipotesi giusta è la 1, la macro quindi dovrebbe aprire il file X, eseguire la macro aggiorna (contenuta nel file x) salvare e chiudere. Purtroppo non riesco a metterla su :oops:
Ciao
Ps. (anche per flash30005) Mi scuso per essere stato poco chiaro nella descrizione del problema.
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi Anthony47 » 01/12/08 21:22

Se la macro e' la stessa del quesito "difficile", allora credo che debba modificarla come segue:
Codice: Seleziona tutto
Sub AggiornaTutto()
Dim CopySh As String, CopiedSh As String, NextName As String, StWB As String
Dim FlEx As Integer
If Intersect(Target, Range("A1:A100")) Is Nothing Or Selection.Count > 1 Then Msgbox("Selezionare il nome di un file") : Exit Sub   '<<< Imposta il range con i nomi file
Application.ScreenUpdating = False
StWB = ThisWorkbook.Name
ChDrive Range("O1") 'per cambiare drive
ChDir Range("Q1") 'path per i file da aprire
'
Windows(StWB).Activate
NextName = Activecell.Value
If NextName = "" Then GoTo Exita
Workbooks.Open Filename:=NextName
OWb = ActiveWorkbook.Name
'Qui hai aperto il file selezionato nel tuo elenco
CMacro = "'" & OWb & "'!Foglio1.Aggiorna" '<<< Cioe' ! +il nome della macro
Application.Run (CMacro)
'
Workbooks(OWb).Close SaveChanges:=True
'
Exita:
Application.ScreenUpdating = True
End Sub


Devi poi associarla al pulsante che disegnerai sul foglio.

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

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi ramset64 » 01/12/08 21:56

Mhhh... c'è qualcosa che non va ma non capisco cosa..... mi dice sempre "necessario oggetto".
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi Anthony47 » 02/12/08 13:47

Mhhh... c'è qualcosa che non va ma non capisco cosa..... mi dice sempre "necessario oggetto".
In quale momento (quando copi la macro, quando la lanci)? Riferito a quale istruzione? (se in fase di edit macro, la riga e' rossa; se in fase di esecuzione, premere debug, la linea e' evidenziata)

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

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi ramset64 » 02/12/08 17:22

Allora, quando lancio la macro mi da errore e dice "Errore di run-time '424' Necessario oggetto"
in fase di debug mi da questa riga evidenziata:
If Intersect(Target, Range("A:A")) Is Nothing Or Selection.Count > 1 Then

Grazie
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi Anthony47 » 02/12/08 18:23

Ovviamente ha ragione lui:
Non If Intersect(Target, Range("A:A")) etc etc ma
Codice: Seleziona tutto
If Intersect(Activecell, Range("A:A")) etc etc


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

Re: [EXCEL] Già che con Anthony nulla sembra impossibile...

Postdi ramset64 » 02/12/08 20:10

Eh già... "lui" ha sempre ragione, ma tu pure mica scherzi :) .
Grazie Anthony, sei un grande!
Ciao
ramset64
Utente Senior
 
Post: 396
Iscritto il: 29/10/08 10:41
Località: Torino


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL] Già che con Anthony nulla sembra impossibile...":


Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti