Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 14-12-2016, 16.00.20   #1
kilow
Newbie
 
Registrato: 14-12-2016
Messaggi: 3
kilow promette bene
Excel 2016 e Vba "Ricerca file"

Ciao ragazzi, sono nuono e neofita, premette che ho creato un piccolo applicativo Vba seguendo il vostro corso (grazie!!!).
però mi sto incartando su un ultima azione che deve compiere.

vi invio immagini per capire


In definitiva sono 2 UseForm,
La seconda a destra è impostata (solo graficamente) per aprire il file selezionato nella prima, tramite la scelta del percorso (Disco rigido es. C:\, Nome cartella, nome file*, estensione file es. *es.)
*il Nome file è un info che mi porto dalla 2° comboBox della prima UserForm.

"l'idea è quella di creare un percorso specifico per il file"

Ora la domanda è questa come apro tramite il Tasto "indicato" il file selezionato.?

Vi Ringrazio in Anticipo
kilow non è collegato   Rispondi citando
Vecchio 15-12-2016, 09.56.42   #2
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Excel 2016 e Vba "Ricerca file"

quando clicchi sul pulsante devi lanciare un comando del genere

file=textbox2.text & combobox1.text
che indica il nome del file completo di estensione. fai attenzione che ci sia il punto (non si vede dall'immagine) altrimenti lo inserisci prima dell'estensione

file=textbox2.text & "." & combobox1.text

percorso= combobox1.text & textbox1.text

che indica il percorso completo di cartella dove si trova il file. infine lanci il comando per aprire il file

Workbooks.Open Filename:=percorso & file
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 15-12-2016, 15.16.47   #3
kilow
Newbie
 
Registrato: 14-12-2016
Messaggi: 3
kilow promette bene
Rif: Excel 2016 e Vba "Ricerca file"

Ciao Alexsandra e grazie
ho fatto come mi hai detto e in effetti si riesce a comporre il percorso
completo del file
----------------------------------------------
Private Sub CommandButton2_Click()
'composizione percorso
nome = ComboBox1.Value & TextBox2.Text & TextBox4.Text & ComboBox2.Value
'verifica
Sheets("Ricerca").Cells(1, 10).Value = nome
'apertura
Workbooks.Open Filename:=nome
End Sub
---------------------------------------------
da quello che ho capito Workbooks.Open Filename:= apre solo file come cartelle excel.

Si può far un modo che di aprire l'applicazione predefinita a seconda del file:
ad Esempio pensavo di usare questo:
-----------------------------------------
Dim File As Variant
'Launch file
File = Shell("rundll32.exe url.dll,FileProtocolHandler ""C:\Users\EP 001.docx""", vbNormalFocus)

sostituendo C:\Users\EP 001.docx con il percorso nome creato prima

o c'è altro modo? Grazie

Ps...mi sono appena risposto da solo sembra funzionare cosi:
File = Shell("rundll32.exe url.dll,FileProtocolHandler " & (nome), vbNormalFocus)

Grazie Ancora
kilow non è collegato   Rispondi citando
Vecchio 16-12-2016, 09.49.52   #4
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Excel 2016 e Vba "Ricerca file"

puoi fare in vari modi, oltre a quello che hai indicato tu che funziona benissimo.

1) Shell ("Winword.exe " & nome), vbNormalFocus


2) Dim objWord, objDoc As Object

Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open(nome)

objWord.Visible = True

col metodo 2 devi resettare le variabili prima di uscire dalla routine

objWord = Nothing ..... etc.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 19-12-2016, 21.39.30   #5
kilow
Newbie
 
Registrato: 14-12-2016
Messaggi: 3
kilow promette bene
Rif: Excel 2016 e Vba "Ricerca file"

Ok grazie ale
avrei un altra richiesta...

ho utilizzato questa procedura per crearmi una lista dei contenuti di una Directory del pc. questa lista mi scrive in colonna sia file che sotto directory

F2 = TextBox1.Text & "\" 'variabile è = al contenuto della textbox
Dim F1 As String
Dim r As Integer
' directory di cui ottenere in colonna A la lista
F1 = Dir(F2, vbDirectory) 'scrive file e cartelle partendo da A2
r = 2
Do While F1 <> ""
Cells(r, 1) = F1
F1 = Dir
r = r + 1
Loop

ora in un ipotetico ciclo su questa colonna F1 in cui compare nome
se sottocartella (pc) e nome+estensione se file:

1: si può fare in modo che il ciclo si fermi all'ultima colonna con un valore? senza mettere un range fisso (la lista potrebbe essere +/- lunga))

2: si può fare in modo che excel durante il ciclo riconosca i file e le sottocartelle della lista?
es: Ciclo che va da A1 a ultima colonna "scritta":
se cartella fai questo
se file fai questo

"in pratica devo fare un tasto che che mi confronti elemento selezionato nella listbox in cui ho la lista (presa da colonna) di cui sopra e che se è cartella mi crea un altra lista se file lo apre.. es. seleziono un file della lista parte ciclo premendo un tasto e :
se selezionato = file --->apri
se selezionato = subdirectory--->crea lista in Es altra colonna"


ps il testo tra corsivo è per chiarire le domande sono 1 e 2

Grazie in anticipo
kilow non è collegato   Rispondi citando
Vecchio 06-01-2017, 11.13.52   #6
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Excel 2016 e Vba "Ricerca file"

Scusami ma non avevo proprio visto il tuo post.
dal tempo passato magari avrai risolto, comunque ti lascio un input.
Quota:
ora in un ipotetico ciclo su questa colonna F1 in cui compare nome
se sottocartella (pc) e nome+estensione se file:

1: si può fare in modo che il ciclo si fermi all'ultima colonna con un valore? senza mettere un range fisso (la lista potrebbe essere +/- lunga))
certo e senza fare cicli.
Codice:
Sub ultima_3()
Dim ultimaC As Integer
ultimaC = ActiveSheet.Cells(2, Columns.Count).End(xlToLeft).Column
MsgBox ultimaC
End Sub
altri spunti Nel corso VBA


Quota:
2: si può fare in modo che excel durante il ciclo riconosca i file e le sottocartelle della lista?
es: Ciclo che va da A1 a ultima colonna "scritta":
se cartella fai questo
se file fai questo

"in pratica devo fare un tasto che che mi confronti elemento selezionato nella listbox in cui ho la lista (presa da colonna) di cui sopra e che se è cartella mi crea un altra lista se file lo apre.. es. seleziono un file della lista parte ciclo premendo un tasto e :
se selezionato = file --->apri
se selezionato = subdirectory--->crea lista in Es altra colonna"


ps il testo tra corsivo è per chiarire le domande sono 1 e 2

Grazie in anticipo
quì è più delicata la cosa. devi prima identificare i componenti (cartelle - file) e poi fare le tue scelte. Io ti consiglio prima di trovare le cartelle e poi le sottocartelle e infine i file.

per esempio potresti inserire un combo nel foglio (o usare una form) e associare all'evento click del combo un codice del genere

Codice:
Private Sub ComboBox2_Click()
On Error Resume Next
If Cells(5, 1) = "" Then GoTo 10
Range(Cells(5, 1), Cells(5, 1).End(xlDown)).ClearContents

10:
[A4] = "Sottocartelle Presenti"  'etichetta nel foglio per il combo 
X = "C:\"
W = ComboBox2.Text

folderspec = "" & X & ":" & "\" & W & "\"

Dim fs, f, f1, fc
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)

Set fc = f.SubFolders
r = 5
For Each f1 In fc

Cells(r, 1) = f1.Name
r = r + 1

Next
Set fs = Nothing
Set f = Nothing
Set f1 = Nothing
Set fc = Nothing
Resume
End Sub
Nota: l'intervallo (5,1..... messo a caso) è dove scrivi i dati e con la variabile X ho ipotizzato la ricerca nel solo disco C

altri spunti
li puoi trovare nel corso vba

___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Corso VBA Alexsandra Guide 85 16-11-2016 12.11.51
Europei di Calcio 2016 con Excel Alexsandra Office suite 30 25-06-2016 00.14.08
Laboratorio di VBA: Programmi e file sorgenti Alexsandra Guide 17 16-03-2016 21.33.27
[Guida] Crea e invia file PDF da Excel con VBA Alexsandra Guide 0 18-02-2012 16.47.31

Orario GMT +2. Ora sono le: 12.37.23.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.