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

Importare script da una colonna excel a zoc terminal

Ultimo Aggiornamento: 01/05/2021 12:34
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...' [SM=g27823]; 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 [SM=g27811].

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 10:50. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com