utilizzare txt nel codice vba



  • utilizzare txt nel codice vba
    di FA-BA (utente non iscritto) data: 08/02/2017 16:33:21

    Salve!
    Vorrei sapere se possibile come utilizzare dati contenuti in (file txt) in stringa di codice vba e Formula!

    Esempio: vba.

    If Sheets("GIOCO").Range("AB47") = "1" Then Call sndPlaySound32("F:GIOCOLA BATTAGLIA DEI POTENTILA BATTAGLIA DEI POTENTI (definitivo)SuoniERRORE.wav", 0)

    Esempio: formula.

    ='F:GIOCOLA BATTAGLIA DEI POTENTILA BATTAGLIA DEI POTENTI (definitivo)[Carte.xlsx]CARTE'!$Q$1

    --- Domanda: Se la posizione non è statica ma dinamica ( c: / d: / e: / f: ) o comunque potrebbe cambiare come posso (al posto della lettera Percorso fargli leggere un file che contiene la lettera del dispositivo) ?

    O magari esiste un altro modo per farli sapere dove cercare il file (path).

    Grazie in anticipo...!



  • di patel data: 08/02/2017 16:51:22

    sempre confusionaria la domanda, anche leggere un file di testo implica sapere il percorso da cui leggerlo, quindi cosa ti cambia ? meglio usare una cella di qualsiasi foglio oppure usare

     
    percorso = thisworkbook.path
    unità = left(percorso,3)






  • di FA-BA (utente non iscritto) data: 08/02/2017 17:07:06

    in effetti anche il file stesso deve essere cercato... ma non trovavo scappatoie....

    Perdonami Patel ... le tue istruzioni vba in che modo dovrei utilizzarle perdonami... Prima di inserirla e fare pasticci vorrei dei chiarimenti....

    è una nuova macro?



  • di FA-BA (utente non iscritto) data: 08/02/2017 17:20:23

    non voglio fare ulteriore confusione ma ho trovato questa centra qualcosa con quello che hai appena postato?

    LEFT è l'istruzione che hai citato?

    Find ???
     
    =LEFT(CELL("filename"),FIND("[",CELL("filename"),1)-1)



  • di FA-BA (utente non iscritto) data: 08/02/2017 17:31:37

    di patel (Utente esperto) data: 08/02/2017 16:51:22 



    sempre confusionaria la domanda, anche leggere un file di testo implica sapere il percorso da cui leggerlo, quindi cosa ti cambia ? meglio usare una cella di qualsiasi foglio oppure usare

     
    percorso = thisworkbook.path
    unità = left(percorso,3)

    Non ho capito come applicarle?!



  • di FA-BA (utente non iscritto) data: 08/02/2017 17:51:19

    path ----> formula Excel
    path ----> nel codice vba

    Resto in attesa di risposta !



  • di patel data: 08/02/2017 20:17:20

    non posso dirti come applicare i suggerimenti non avendo capito cosa vuoi fare e perché





  • di FA-BA (utente non iscritto) data: 08/02/2017 21:35:03

    La domanda è semplice... le stringe scritte (formule) e (codice vba) le ho scritte con F: e il resto (dell'istruzione) ma se volessi eseguirlo in c: o in altri dispositivi con lettere diverse dalla F: attuale come dovrei fare? Mi stavi rispondendo avevi scritto qualcosa e ti avevo chiesto come dovevo applicare il tuo suggerimento. Non so cosa altro scrivere. Avevi detto di utilizzare una cella di un foglio mi stava bene ma come ottengo il path automaticamente nella cella da poter utilizzare.



  • di patel data: 09/02/2017 06:55:02

    il percorso da utilizzare per una formula lo puoi ottenere conm questa formula
    =SINISTRA(CELLA("nomefile");RICERCA("[";CELLA("nomefile"))-1)
    quello per vba te l'ho già detto
    percorso = thisworkbook.path






  • di FA-BA (utente non iscritto) data: 09/02/2017 15:10:50

    Quindi per usarla in vba dovrei fare scrivere PERCORSO al posto della lettera ho capito bene
     
    If Sheets("GIOCO").Range("AB47") = "1" Then Call sndPlaySound32("PERCORSO:GIOCOLA BATTAGLIA DEI POTENTILA BATTAGLIA DEI POTENTI (definitivo)SuoniERRORE.wav", 0) 
    



  • di FA-BA (utente non iscritto) data: 09/02/2017 15:19:55

    =SINISTRA(CELLA("nomefile");RICERCA("[";CELLA("nomefile"))-1)

    L'ho iserita e non mi da la lettera ma tutto il percorso... meglio ancora!

    Ecco il risultato : F:GIOCOLA BATTAGLIA DEI POTENTILA BATTAGLIA DEI POTENTI (definitivo)

    l'ho inserita nella formula =Foglio1!F18[Carte.xlsx]CARTE]Foglio1!F18[Carte.xlsx]CARTE!$Q$1 ho provato in vari modi ma non funziona
    con ' con [ ma nulla come devo applicarle.



  • di FA-BA (utente non iscritto) data: 10/02/2017 17:01:36

    Siccome non si trova la risposta posso fare questa domanda ad un altro forum (sito) senza essere accusato di crossposting , non obbligo nel rispondere (domandare è lecito rispondere è cortesia) ma siccome ho una certa urgenza posso fare questa domanda in altri forum (sito)??? attendo risposta o il vostro lasciapassare!

    Grazie!



  • di patel data: 10/02/2017 17:29:14

    questo forum non controlla il crossposting, ma altri sì, quindi scegli bene, comunque come al solito non hai allegato un PICCOLO file di esempio da testare per trovare la sintassi corretta





  • di FA-BA (utente non iscritto) data: 10/02/2017 17:40:28

    SE INSERISCO UN ALLEGATO SARESTI INGRADO DI RISPONDERE?

    Appena posso lo invio, o più tardi o domani.... comunque la mia rabbia che tra le righe spunta è perché volevo imparare con visuale studio della Microsoft e un bel giorno la Microsoft mi dice che non sono più io e quindi alcune funzioni win10 sono state disabilitate e non posso utilizzare visual studio , l'ho installato e disinstallato oltre 10volte senza successo li ho contattati e dicono di non potermi aiutare .. ti giuro che ho win 8.1 pro aggiornato al 10 (prenotato) e mi negano l'accesso , mio avevano bloccato anche la posta ma poi con l'aiuto di altri sono riuscito a farla funzionare. quindi se ogni tanto mi senti nervoso è perché sto costruendo questo gioco su Excel che per carità è ottimo nulla da dire ma rispetto ad un linguaggio di programmazione è tutt'altra camminata. quindi sto facendo fatica perché vorrei far sparire tutti i comandi Excel e tutto il resto e rendere il mio progetto il + professionale possibile. Mi viene spontaneo pensare ai form che dovrebbero visualizzarsi come programma (se stante) ma non sono mai riuscito a visualizzarli e ha crearli. Con questo chiedo comprensione e se magari sapete come farmi utilizzare Visual Studio vi sarei grato davvero moltissimo!!!!!



  • di patel data: 10/02/2017 18:23:46

    domanda inutile, se inserisci un allegato posso provarci a rispondere e con me possono provarci altri che non hanno risposta in mancanza del file, ormai dovresti saperlo.
    Anche io sto provando Visual Basic e ti assicuro che è moooolto più complicato del VBA, quindi pensaci bene.





  • di AA8 (utente non iscritto) data: 10/02/2017 18:29:29

    Ciao Patel!
    puoi dare una mano anche a me per favore? Ho già una discussione. Si chiama "Selezione con somma"



  • di FA-BA (utente non iscritto) data: 11/02/2017 08:52:57

    Ho allegato il file di esempio ultra sintetico che contiene una formula sotto (1) e una macro.

    La lettera del percorso come vedrai è fissa ma vorrei che si adattasse alla posizione attuale.



  • di patel data: 11/02/2017 10:10:15

    hai allegato un file che il centro di protezione segnala come pericoloso, la cella AB47 è inaccessibile, è così che agevoli il lavoro di chi vorrebbe aiutarti ?





  • di FA-BA (utente non iscritto) data: 11/02/2017 17:37:19

    Non so di cosa stai parlando!!!! Io non ho nessuna segnalazione. Qualunque cosa tu veda non dipende da me. Non so cosa dire! Ti ho mandato l'allegato come hai chiesto , che tra l'altro l'allegato sarebbe il mio file funzionante (pulito) ovvero con molte meno formule e macro proprio per essere dentro al 1Mb e per agevolare la lettura non so altro vuoi un altro allegato???



  • di patel data: 12/02/2017 08:39:03

    te lo ripeto in altre parole, la macro che vuoi modificare fa riferimento alla cella AB47 che è nascosta e non riesco ad accederci.
    Un file di esempio con 14 moduli ti sembra ridotto ?
    Un file di esempio senza i menù è facile da esaminare ?
    un foglio pieno di immagini è utile per esaminare il contenuto delle celle ?






  • di FA-BA (utente non iscritto) data: 12/02/2017 10:43:35

    Allora non hai capito la domanda..... grazie del tuo tempo...



  • di patel data: 12/02/2017 19:18:22

    io credo che dovresti leggere le mie domande e non tirare avanti per la tua strada se vuoi ottenere risposte.
    Se sei troppo preso dal tuo lavoro e non hai tempo da sprecare con chi cerca di darti una mano evita di postare sul forum





  • di FA-BA (utente non iscritto) data: 13/02/2017 14:37:00

    Se NON vuoi aiutarmi sei libero!
    La domanda è semplice e te la ripeto per l'ultimissima volta.

    Vorrei sapere come è possibile ottenere il percorso da poter utilizzare in una formula e anche come poterla utilizzare in una macro (vba).
    Spiego meglio sto costruendo una applicazione in Excel "Finché" la utilizzo nella cartella (dove la sto creando ovvero F:) tutto funziona a dovere ma appena la metto in es: ( C: D: ) quindi la utilizzo in altre posizioni non va'.

    Sapreste dirmi come per esempio dovrei modificare questa formula affinché funzioni in atre posizioni?

    ='F:GIOCOLA BATTAGLIA DEI POTENTILA BATTAGLIA DEI POTENTI (definitivo)[Carte.xlsx]CARTE'!$Q$1

    Come modificare quindi : ("F:
    ---Non mi occorre il percorso completo mi basta anche solo come cambiare la lettera (mi basta).
    e... come ottenere la lettera da utilizzare in (vba) es:
    If Sheets("GIOCO").Range("AB47") = "1" Then Call sndPlaySound32("F:GIOCOLA BATTAGLIA DEI POTENTILA BATTAGLIA DEI POTENTI (definitivo)SuoniERRORE.wav", 0)

    Non vi serve sapere cosa fanno le istruzioni non vi occorre un file di esempio , solo DIRMI ( SE VOLETE ,A VOSTRO COMODO )come ottenere la lettera (A: B: C: D:) ovvero la posizione attuale.




  • di FA-BA (utente non iscritto) data: 13/02/2017 18:15:54

    Qualcosa del genere per VBA peccato che non da il risultato desiderato .
     
    Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
    (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Sub Auto_open()
    Foglio4.ScrollArea = "A1:AO97"
    Foglio479.ScrollArea = "A1:M28"
    Application.DisplayFullScreen = True
    n = Sheets("GIOCO").Range("AF70")
    fname = "F:GIOCOLA BATTAGLIA DEI POTENTILA BATTAGLIA DEI POTENTI (definitivo)Voci(PC)AVVIO" & n & ".wav"
    Call sndPlaySound32(fname, 0)
    
    
    Call sndPlaySound32("WAVfileColonna_sonora.wav", 9)
    
    
      WAVFile = ThisWorkbook.Path & "Suoni"
    
    
    
    
    End Sub



  • di FA-BA (utente non iscritto) data: 21/02/2017 21:27:41

    Per colpa di ---> Option Explicit

    indirizzo = ActiveWorkbook.Path ( non funziona) compare messaggio " variabile non definita ".

    Come dovrei dichiarare la variabile...! Grazie!
     
    Option Explicit
    Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
    (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Sub CicloConMatriceValori()
    Sheets("GIOCO").Protect Password:="", UserInterFaceOnly:=True '<--- Toglie protezione (Macro)
     indirizzo = ActiveWorkbook.Path



  • di patel data: 21/02/2017 22:14:58

    Hai 2 alternative
    1) eliminare Option Explicit
    2) Dim indirizzo as string





  • di FA-BA (utente non iscritto) data: 22/02/2017 14:36:42

    OPTION EXPLICIT mi è stato fatto mettere sai bene che io chiedo e mi è stato detto di inserirla ora non ricordo per quale istruzione.

    utilizzando Dim l'ho provata ho provato anche set ma mi viene restituito l'errore variabile non definita!
     
    Option Explicit
    Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
    (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Sub CicloConMatriceValori()
    Dim indirizzo As ActiveWorkbook.Path
    Sheets("GIOCO").Protect Password:="", UserInterFaceOnly:=True '<--- Toglie protezione (Macro)



  • di FA-BA (utente non iscritto) data: 22/02/2017 14:42:47

    mi son sbaghliato mi da invece questo errore ... errore di compilazione tipo definito dall'utente non definito



  • di Luca73 data: 22/02/2017 15:06:01

    Dim indirizzo As ActiveWorkbook.Path => è l'errore:

    dim definisce il tipo di variabile pertanto poi devi assegnare la variabile pertanto

    Ciao
    Luca
     
    Dim indirizzo as string
    
    indirizzo=ActiveWorkbook.Path






  • di FA-BA (utente non iscritto) data: 22/02/2017 16:26:12

    luca------ GRAZIE GRAZIE GRAZIE GRAZIE NON NE USCIVO !!!!!


    QUINDI SERVIVANO TUTTE E DUE...... io ne facevo o una o l'altra ... !!!! Anche questa è risolta!



  • di Luca73 data: 22/02/2017 16:41:00

    Comunque è lo stesso che ti aveva scritto patel...

    PS Option Explicit messo all'inizio fa sì che il sistema non accetti variabili che non siano state esplicitamente dichiarate con una istruzione "Dim" ovvero obbliga il programmatore (aiutandolo) a dichiarare tutte le variabili.