Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

APRI CHIUDI FILE CON LA STESSA LETTERA

Ultimo Aggiornamento: 23/09/2017 12:31
Post: 4
Registrato il: 04/09/2017
Città: GENOVA
Età: 47
Utente Junior
Excel 2016 / 2011
OFFLINE
16/09/2017 10:20

Ciao a tutti

mi rivolgo a voi perchè avrei un desiderio che mi piacerebbe realizzare

se fosse realizzabile desidererei , partendo da questo fie , selezionando una cella della colonna H vengano aperti tutti i file elencati in colonna F che contengono la stessa lettera in colonna D

esempio : selezionando H9 si dovrebbero aprire i file F9,F19,F23 ( che contengono la stessa lettera in questo caso " A "
in seguito se seleziono un corrispondente diverso esempio H17 dovrebbero chiudersi quelli aperti in precedenza e aprisi i nuovi
corrispondenti ,in questo caso , F17,F27 e così via

se in più si aprono direttamente in modalità tutto schermo con le macro gia abiitate penso che sarebbe assolutamente meraviglioso

Al momento i file sono tutti contenuti in una cartella chiamata "archivio"

Un saluto a tutti
Elvis
Post: 1.612
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
16/09/2017 11:57

Ciao
nel vb del foglio interessato, utilizza l'evento doppio click di colonna H:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("H:H")) Is Nothing Then
    If Cells(Target.Row, 4) = "" Then GoTo xit
    CloseOpened
    mPath = "C:\ARCHIVIO\" '<<<<< VARIARE
    Range("AA:AA").ClearContents 'range appoggio file aperti
    k = 1
    ur = Range("D" & Rows.Count).End(xlUp).Row
    lettera = Cells(Target.Row, 4)
    For r = 9 To ur
        If Cells(r, 4) = lettera Then
            Cells(k, 27) = Cells(r, 6)
            k = k + 1
        End If
    Next r
End If
For i = 1 To k - 1
    On Error Resume Next
    Workbooks.Open mPath & Cells(i, 27)
Next i
xit:
Cancel = True
End Sub

Sub CloseOpened()
Dim xWB As Workbook
Application.ScreenUpdating = False
For Each xWB In Application.Workbooks
    If Not (xWB Is Application.ActiveWorkbook) And InStr(xWB.Name, "Personal") = 0 Then
        xWB.Close True ' false per non salvare i documenti aperti
    End If
Next
Application.ScreenUpdating = True
End Sub


Nota: al doppio click vengono chiusi tutti i file xlsx/m aperti a prescindere che li abbia aperti la macro o no, tranne il file contenente la macro.
In caso contrario correggi la Sub CloseOpened.

Saluti
[Modificato da dodo47 16/09/2017 12:02]
Domenico
Win 10 - Excel 2016
Post: 4
Registrato il: 04/09/2017
Città: GENOVA
Età: 47
Utente Junior
Excel 2016 / 2011
OFFLINE
16/09/2017 15:26

Grazie infinite dodo 47

ho inserito la tua macro nel foglio e ho notato che al doppio click in colonna H i gruppi dei file da aprire vengono riportati esattamente in colonna AA ma non si aprono sapresti da cosa possa dipendere?

come Nota hai scritto che al doppio click vengono chiusi tutti i file xlsx/m aperti a prescindere che li abbia aperti la macro o no, tranne il file contenente la macro.
In caso contrario correggi la Sub CloseOpened.

effettivamente se apro manualmente dei file , al doppio click in colonna H, i file si chiudono

un saluto
Elvis
Post: 3.950
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
16/09/2017 16:50

dodo47 ha scritto
mPath = "C:\ARCHIVIO\" '<<<<< VARIARE
sul mac i percorsi non scrivono con \ ma con / quindi modificalo di conseguenza

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 1.613
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
16/09/2017 16:54

Ciao
Non è semplice risponderti

Hai modificato il percorso dei file?
I nomi nel foglio sono giusti?

Se l'errore persiste, togli l'istruzione :
On Error resume next
e guarda che errore ti dà.

Saluti


[Modificato da dodo47 16/09/2017 16:54]
Domenico
Win 10 - Excel 2016
Post: 5
Registrato il: 04/09/2017
Città: GENOVA
Età: 47
Utente Junior
Excel 2016 / 2011
OFFLINE
17/09/2017 15:23

ciao a tutti

ho rinominato tutti i nomi dei file e del foglio ma non sono ancora riuscito a farli aprire al doppio click in colonna H
come indicato ho provato a togliere l’istruzione “ On Error resume next “ effettivamente mi da errore di percorso !
di seguito ho provato a trascinare la cartella nel prompt dei comandi in modo da visualizzare il percorso, dopodichè ho copiato il percorso come segue nel vba “C:﹨users ﹨ELVIS ﹨ documents ﹨ARCHIVIO”

restituisce :
errore runtime 1004 :
“C:﹨users ﹨ELVIS ﹨ documents ﹨ARCHIVIO” non è stato trovato .verificare che il file non sia stato spostato rinominato o eliminato
mi da lo stesso errore anche se trascino i singoli file

potreste consigliami cosa provare per capire dove sbaglio ?


grazie un saluto a tutti
Elvis
[Modificato da Elvis.77 17/09/2017 15:26]
Post: 3.951
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
17/09/2017 18:21

Re:
patel45, 16/09/2017 16.50:

dodo47 ha scritto
mPath = "C:\ARCHIVIO\" '<<<<< VARIARE
sul mac i percorsi non scrivono con \ ma con / quindi modificalo di conseguenza


ho parlato al vento ? devi vedere come si scrivono i percorsi sul mac, clicca col destro su un file e vedi le proprietà,
Sul mac i dischi non si chiamano con lettere, probabilmente qualcosa del genere:
/home/ELVIS/archivio

[Modificato da patel45 17/09/2017 22:20]

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 1.614
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
18/09/2017 19:35

Ciao
non mi sembra di aver letto che hai il "Mac" quindi leggi attentamente quanto ti ha detto Patel (saluti).

Quando avrai trovato il modo corretto di dire al "tuo mac" il percorso, ricordati che alla fine ci deve andare comunque la barra separatrice (/)

saluti
[Modificato da dodo47 18/09/2017 19:35]
Domenico
Win 10 - Excel 2016
Post: 3.953
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
19/09/2017 05:15

ciao dodo, aprendo lo zip si vede una cartella di nome mac

----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 6
Registrato il: 04/09/2017
Città: GENOVA
Età: 47
Utente Junior
Excel 2016 / 2011
OFFLINE
21/09/2017 11:35

ciao a tutti

si il file l’ho creato e postato con mac , non l’ho specificato perché possedendo entrambi per me é sufficente che funzioni almeno su uno dei 2 sistemi comunque visto che all’inizio non riuscivo a farlo funzionare ho aproffittato anche delle indicazioni di patel nel caso che sarei riusito a farlo funzionare su mac
Finalmente ora sono riuscito a farlo funzionare su pc
l’unico problema visto che la lista è molto lunga ho un po di difficoltà nel gestire i gruppi di file che vanno aperti al doppio click in colonna H
vorrei chiedervi vista la necessità massima di aprire 3 file contemporaneamente ,sarebbe possibile modificare la macro in modo che riconosce i file da aprire direttamente sulla stesa riga della cella cliccata in colonna H ?
Riallego il file di esempio con indicato il cambiamento desiderato

un saluto a tutti

Elvis
Post: 1.626
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
21/09/2017 12:10

ciao
sostituisci la Private Sub Worksheet_BeforeDoubleClick(....) con la seguente:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("H:H")) Is Nothing Then
    CloseOpened
    mPath = "C:\TuaCartella\" '<<<<< VARIARE
End If
On Error Resume Next
For c = 2 To 6 Step 2
    Workbooks.Open mPath & Cells(Target.Row, c)
Next
xit:
Cancel = True
End Sub


Saluti



[Modificato da dodo47 21/09/2017 12:14]
Domenico
Win 10 - Excel 2016
Post: 7
Registrato il: 04/09/2017
Città: GENOVA
Età: 47
Utente Junior
Excel 2016 / 2011
OFFLINE
21/09/2017 17:28

Grazie dodo SIETE MAGNIFICI [SM=x423030]

visto che il ferro è ancora caldo vi chiederei un piccolo optional
la macro salva le modifiche e chiude correttamente i file , la sola cosa che quando li riapre visualizza l’ultimo foglio aperto mentre
desidererei che li aprisse visualizzando sempre il foglio 1 nominato “ indice “ che si trova in ogni file

saluti
Elvis
Post: 1.629
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
21/09/2017 19:05

Ciao
perchè non ci provi da solo?

Altrimenti questa diventa solo una continua richiesta senza che tu sottoponi nulla di tuo anche se non funziana.

In questo modo non impari mai.

Non mi sembra difficile: dopo l'apertura fai la "select" del foglio desiderato

saluti


Domenico
Win 10 - Excel 2016
Post: 8
Registrato il: 04/09/2017
Città: GENOVA
Età: 47
Utente Junior
Excel 2016 / 2011
OFFLINE
23/09/2017 12:31

scusate il disturbo ma se vi va avrei ancora bisogno di un vosrto aiutino
per ridurre la lunghezza finale della lista che supera le 1000 righe ho provato a dividerla affiancando la seconda tranche a lato della prima.

Ho provato a doppiare la macro aggiornando le posizioni delle colonne e Funziona ! , ma ogni tanto si blocca e per ripristinarla devo riavviare il computer . per favore potreste dirmi se è scritta correttamente e se esiste eventualmente un’alternativa che potrei provare ?

vi sono molto grato per tutto

Elvis




Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
If Not Intersect(Target, Range("H:H")) Is Nothing Then
    CloseOpened
    mPath = “C:\Users\Elvis\desktop\ARCHIVIO\”
End If
On Error Resume Next
For c = 2 To 6 Step 2
    Workbooks.Open mPath & Cells(Target.Row, c)

Next

If Not Intersect(Target, Range(“K:K”)) Is Nothing Then
    CloseOpened
        mPath = “C:\Users\Elvis\desktop\ARCHIVIO\”
End If
On Error Resume Next
For c = 11 To 18 Step 2
    Workbooks.Open mPath & Cells(Target.Row, c)
Next
xit:
Cancel = True
End Sub
[Modificato da Elvis.77 23/09/2017 13:07]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:42. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com