| | Post: 1 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
11/04/2021 11:37 | |
Ciao ragazzi ho provato a creare una routine vba che crea un file di testo e poi seleziona zoc e avvia la routine ma non funziona mi potete aiutare con la vostra conoscenza in qualche modo? Grazie a presto |
|
| | Post: 4.650 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | ONLINE |
|
11/04/2021 11:49 | |
Solo per curiosità cosa è zoc?
Alfredo |
| | Post: 1 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
11/04/2021 12:40 | |
Zoc terminal è un emulatore rs232 |
| | Post: 1.108 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
11/04/2021 15:30 | |
Questa macro lancia l'applicazione: Option Explicit
Sub avvia_applicazione()
Shell("C:\Program Files\ZOC8\zoc.exe") 'path per versione x64
End Sub Non avendo lumi su cosa stai cercando di fare e come, questo è il massimo dell'impegno che ci metterò. [Modificato da rollis13 11/04/2021 15:31]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 2 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
11/04/2021 17:46 | |
Scusami ti spiego meglio sul mio foglio excel ho tante script divise in colonne io dovrei premere un bottone ed inviare ed avviare una script alla volta su zoc per avere la traccia su excel e non perdermi la sequenza delle rutin e poi ritornare sul excel e marcare la rutine eseguita. se creo un unica rutin su zoc rischio di perdere il punto |
| | Post: 3 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
11/04/2021 17:50 | |
Grazie per la pronta risposta secondo te è fattibile? |
| | Post: 1.109 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
11/04/2021 22:14 | |
Consulta nell' Help la voce Command Line Parameters.
In Excel la riga sarà:
Shell("C:\Program Files\ZOC8\zoc.exe" "/RUN:<scriptfile>")
dove al posto del:
<scriptfile>
dovrai mettere una variabile che farà riferimento alle tue celle contenente lo script da lanciare.
Volendo valorizzare una variabile 'cellaconscript' con le coordinate della cella probabilmente la riga operativa sarà:
Shell("C:\Program Files\ZOC8\zoc.exe" "/RUN:" & cellaconscript )
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 4 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
11/04/2021 23:14 | |
Mi dice che la cella è vuota |
| | Post: 1.110 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
11/04/2021 23:55 | |
Certo che è vuota, era solo un esempio; devi crearti il codice per valorizzarla in base alla cella che intendi 'passare' a Zoc.
Dato che non hai allegato nemmeno uno straccio di file esempio o qualche traccia del tuo progetto, vedi che non ho la sfera di cristallo ... e nemmeno voglia di studiarmi l'applicazione Zoc.
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 5 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2021 00:15 | |
Dal momento che inserisco run : cosa devo specificare per fargli leggere il testo scritto nella cella al del foglio1? Scusa per il disturbo |
| | Post: 1.111 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
12/04/2021 09:31 | |
Allega un file con la stessa identica struttura e contenuti (oscurando eventuali dati sensibili) ... poi ti rimarrà solo di gestire l'esatta sintassi (come richiesto da Zoc) per l'invio con il /Run. [Modificato da rollis13 12/04/2021 09:32]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 6 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2021 10:14 | |
Ciao come richiesto ti ho allegato il file
grazie di nuovo |
| | Post: 1.112 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
12/04/2021 11:49 | |
Per ora ti propongo questa soluzione dato che presumo che nella cartella 'Zoc6 Files' hai già i tuoi script salvati e numerati 1.txt ecc. così da verificare la sintassi dello Shell di Excel ed il Run di Zoc.
Per semplificare il test senza utilizzare un bottone ti propongo di utilizzare l'evento 'BeforeDoubleClick' così facendo, con un doppioclick in riga 1 sul nome di uno degli script, fai avviare questa macro da mettere nel modulo del foglio. Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Intersect(Target, Range("B1:AMC1")) Is Nothing Then 'per ora il range è statico
Shell ("C:\Users\d.proietti\Desktop\zoc\zoc.exe /RUN: C:\Users\d.proietti\Documents\ZOC6 Files\" & Target.Value)
End If
End Sub Fatto questo, se il collaudo funziona, propongo di utilizzare una separata macro che generi un nuovo file script, a comando per quando fai una modifica alle righe di codice, oppure, automaticamente quando il file script non esiste nella cartella 'Zoc6 Files' (nuovo script).
PS. ma eventuali righe vuote nel testo dello script sono un problema per Zoc ? [Modificato da rollis13 12/04/2021 11:50]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 7 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
12/04/2021 21:23 | |
ok apre zoc ma non avvia la rutine cliccata |
| | Post: 1.113 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
12/04/2021 21:58 | |
Vabbè, quello ora è un problema tuo, sei tu che conosci Zoc ed i comandi che devono stare nel file parametro; te l'avevo già anticipato nel mio post #11.
Ti allego una versione più completa della macro che ora comprende anche una parte che crea il file script. La macro va messa nel modulo del foglio con i testi. Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'dichiaro le variabili
Dim ur As Long 'ultima riga
Dim ul As Long 'ultima colonna
Dim riga As Long 'riga in esportazione
Dim col As Long 'colonna cliccata
Dim sPath As String 'percorso
Dim sFile As String 'nome file
Dim esiste As Long 'esiste, che faccio ?
'inibisci Modifica alla cella per DoppioClick
Cancel = True
'verifica se siamo nel range dei nomi file (riga 1 da B all'ultima colonna)
ul = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
If Not Intersect(Target, Range(Cells(1, 2), Cells(1, ul))) Is Nothing Then
col = Target.Column
ur = Cells(Rows.Count, col).End(xlUp).Row
sPath = "C:\Users\d.proietti\Documents\ZOC6 Files\"
sFile = Target.Value
'----------eliminare se sta bene sovrascrivere sempre----------
'verifica se esiste il file per non sovrascriverlo
If Dir(sPath & sFile) <> "" Then
esiste = MsgBox("Il file > " & sFile & " < già esiste, lo sovrascrivo ?", vbYesNo)
If esiste = vbNo Then Exit Sub
End If
'--------------------------------------------------------------
'apri in scrittura il file da creare
Open sPath & sFile For Output As #1
For riga = 2 To ur
'Print #1, Cells(riga, col) 'con le righe vuote
If Cells(riga, col) <> "" Then Print #1, Cells(riga, col) 'senza righe vuote
Next riga
'chiudi il file creato
Close #1
'----------eliminare se sta bene sovrascrivere sempre----------
MsgBox "Fatto, script > " & sFile & " < creato in " & sPath
'--------------------------------------------------------------
'apri l'applicazione Zoc con il file come parametro
Shell ("C:\Users\d.proietti\Desktop\zoc\zoc.exe /RUN:C:\Users\d.proietti\Documents\ZOC6 Files\" & Target.Value)
End If
End Sub Mentre se ti basta lanciare il file (quando sei riuscito ad ottenere l'esatta sintassi del Command Line) puoi usare al suo posto questa versione ridotta. Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ul As Long
Cancel = True
ul = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
If Not Intersect(Target, Range(Cells(1, 2), Cells(1, ul))) Is Nothing Then
Shell ("C:\Users\d.proietti\Desktop\zoc\zoc.exe /RUN:C:\Users\d.proietti\Documents\ZOC6 Files\" & Target.Value)
End If
PS. come mai in giro per la rete ho trovato esempi di file .ZRX mentre tu hai usato .TXT ? da dove hai ottenuto quest'informazione ? [Modificato da rollis13 12/04/2021 22:32]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 8 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
13/04/2021 10:30 | |
'apri l'applicazione Zoc con il file come parametro
Shell ("C:\Users\d.proietti\Desktop\zoc\zoc.exe /RUN:" & Target.Value)
questa linea cosi è corretta ma non deve riaprire una nuova finesta zoc con C:\Users\d.proietti\Desktop\zoc\zoc.exe ma deve aprire quella in uso
grazie molte per la tua disponibilita |
| | Post: 1.114 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
13/04/2021 11:26 | |
Dubito che questo sia possibile, in modo 'umano' caricare da Excel uno script in una sessione di Zoc già aperta oserei dire che è proprio un'impresa impossibile. Casomai è il contrario, è una macro specifica (Rexx forse) di Zoc che deve eseguire un determinato percorso caricando in sequenza quello che serve.
Comunque, vedi se tra i Command Line di Zoc vi è un apposito parametro da aggiungere che permetta allo Shell di Excel di sfruttare una sessione già aperta. Secondo me è una prerogativa di Zoc di permettere più sessioni in contemporanea, pertanto ... [Modificato da rollis13 13/04/2021 11:28]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 9 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
17/04/2021 02:01 | |
Ciao ti ringrazio moltissimo per la tua disponibilità ad aiutarmi adesso ho risolto ma devo eliminare la funzione double click dalla macro vba devo inserire un pulsante che scorre colonna per colonna ad ogni click come la macro passo passo che ho inserito sul modulo allegato mi potresti dare una mano ad integrala grazie e a presto😀😀😀 |
| | Post: 1.115 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
17/04/2021 10:53 | |
Scusami ma non sono riuscito ad individuare questa macro:
come la macro passo passo che ho inserito sul modulo allegato
per capire esattamente quello che vorresti fare.
In pratica, vuoi che con il pulsante si avvii un ciclo automatico partendo dal file della cella B1 fino all'ultimo file della riga 1, oppure, un menu a tendina od un menu a scorrimento (spinner) e una volta scelto il nome del file premendo il pulsante si avvii solamente quel file script.
PS. cosa manca tra le tue macro per far funzionare il metodo DDE che hai individuato come soluzione, a me va in errore 13.
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 10 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
17/04/2021 11:56 | |
In pratica quando ogni volta che schiaccio il pulsante deve patire dalla cella selezionata nella prima riga deve verificare se contiene il testo se non lo contiene passa alla successiva colonna la marca in verde ed esegue la macro che abbiamo inserito in precedenza e si ferma. quando ri schiaccio il pulsante passo alla successiva colonna e riesegue il tutto e cosi via ad ogni pressione del pulsante . NOTA.se vedi bene dove è descritta la tua macro sotto è riportata quella passo passo . |
| | Post: 11 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
17/04/2021 12:01 | |
Forse errore 13 che ti da è dovuto alla mancanza di qualche cosa su zoc perché la del presente fa partire la run per elaborazione del file su zoc |
| | Post: 1.116 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
17/04/2021 12:27 | |
No, l'errore 13 è specifico di Excel (tipo non corrispondente), fa niente per il test la by-passo.
Per ora, visto che è quasi ora di è pranzo, inserisci il nome della tua macro subito dopo la riga di lancio di Zoc tramite DDE e per avviare continua a fare doppioclick sulle celle in riga 1 e vediamo come gira.
La tua macro fa cose inutili e poi dovrebbe chiamarsi 'colora...' non 'copia...' ; in pratica deve solo colorare la colonna una volta eseguita (dico io, dopo che è stata eseguita, non prima) dato che non vedo altre parti del progetto che ne facciano uso (poi facciamo un po' di pulizia). ] '--------------------------------------------------------------
'apri l'applicazione Zoc con il file come parametro
ZocDDE = DDEInitiate("ZOC", "Comm-Debug"): DDEExecute ZocDDE, "ZocDoString ^run=" & sFile
coloracolonnepassopasso
End If
End Sub
Sub coloracolonnepassopasso()
ActiveCell.EntireColumn.Offset(0, 0).Select
With Selection.Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub [Modificato da rollis13 18/04/2021 00:20]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 12 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
17/04/2021 13:02 | |
Ok ho implementato quello che mi hai detto.
procediamo con il secondo step?
grazie moltissimo😀😀 |
| | Post: 1.117 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
17/04/2021 15:28 | |
... e non credo che il problema 'errore 13' sia dovuto alla versione di Excel.
Ecco la versione adattata all'uso del Pulsante2_Click e con qualche ritocco. Per un migliore effetto visivo suggerisco di Bloccare la prima colonna. Option Explicit
Sub Pulsante2_Click()
'dichiaro le variabili
Dim riga As Long 'riga in esportazione
Dim col As Long 'colonna in elaborazione
Dim sPath As String 'percorso
Dim sFile As String 'nome file
Dim esiste As Long 'esiste, che faccio ?
'ciclo sui nomi file (riga 1 da B all'ultima colonna)
For col = 2 To Cells(1, Cells.Columns.Count).End(xlToLeft).Column
With Range(Cells(1, col).Address)
If .Value <> "" Then 'verifico se c'è un nome file altrimenti passa oltre
If .Interior.Color <> 5296274 Then 'verifico se già eseguita (colorata)
sPath = "C:\Users\d.proietti\Documents\ZOC8 Files\"
sFile = .Value
'----------eliminare se sta bene sovrascrivere sempre----------
If Dir(sPath & sFile) <> "" Then 'verifica se esiste il file per non sovrascriverlo
esiste = MsgBox("Il file > " & sFile & " < già esiste, lo sovrascrivo ?", vbYesNo)
If esiste = vbNo Then Exit Sub
End If
'--------------------------------------------------------------
'apri in scrittura il file da creare
Open sPath & sFile For Output As #1
'ciclo sulle righe dello script
For riga = 2 To Cells(Rows.Count, col).End(xlUp).Row
'Print #1, Cells(riga, col) 'con le righe vuote
If Cells(riga, col) <> "" Then Print #1, Cells(riga, col) 'senza le righe vuote
Next riga
'chiudi il file creato
Close #1
'----------eliminare se sta bene sovrascrivere sempre----------
MsgBox "Fatto, script > " & sFile & " < creato in " & sPath
'--------------------------------------------------------------
'inoltra all'applicazione Zoc il file script come parametro
ZocDDE = DDEInitiate("ZOC", "Comm-Debug"): DDEExecute ZocDDE, "ZocDoString ^run=" & sFile
.EntireColumn.Interior.Color = 5296274 'colora la colonna appena elaborata
.Select 'seleziona il nome file appena elaborato
'uscita per completata elaborazione dello script
Exit For
End If
End If
End With
Next col
End Sub [Modificato da rollis13 17/04/2021 15:30]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 13 | Registrato il: 19/04/2016
| Città: VELLETRI | Età: 41 | Utente Junior | Office 365 | | OFFLINE | |
|
01/05/2021 11:48 | |
Ti ringrazio moltissimo per la mano che mi hai dato a risolvere questo problema funziona benissimo buon primo maggio |
| | Post: 1.129 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
01/05/2021 12:34 | |
Grazie del riscontro positivo .
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
|
|