dati da file chiuso vba



  • dati da file chiuso vba
    di ire data: 27/02/2015 11:04:28

    Ciao ragazzi!!! avrei bisogno di un'altra indicazione!
    La richiesta dovrebbe essere semplice per voi, a differenza mia! =(
    Nella cella C3 ho la formula =SE.ERRORE(CERCA.VERT(C4;'F:FORGEIRENE[DATI.xlsm]Disegni'!A:C;3;FALSO);""), dove il file [dati.xlsm] è un file che deve rimanere chiuso, estrendone solo i dati.
    Avrei bisogno di mettere ciò nel codice, ma non riesco a trovare il modo! Potete aiutarmi!?
    grazie dell'attenzione!



  • di alfrimpa data: 27/02/2015 11:32:46

    Ciao Irene

    Puoi spiegare meglio cosa intendi quando dici: "Avrei bisogno di mettere ciò nel codice, ma non riesco a trovare il modo!....."

    Non so se sarò in grado di aiutarti ma ci si può provare.

    Alfredo






  • di ire data: 27/02/2015 11:42:43

    Io intendo dire che vorrei inserire nel codice che nella cella c3 ci sia "=SE.ERRORE(CERCA.VERT(C4;'F:FORGEIRENE[DATI.xlsm]Disegni'!A:C;3;FALSO);"") ".
    Io trovo un dato, ma vorrei registrare il tutto nel codice.



  • di alfrimpa data: 27/02/2015 11:48:58

    Cioè intendi dire che il codice deve inserire in C3 la formula?

    Se è così potresti scrivere:

    Range("C3").FormulaLocal = "SE.ERRORE(CERCA.VERT(C4;'F:FORGEIRENE[DATI.xlsm]Disegni'!A:C;3;FALSO);"")"

    Alfredo





  • di ire data: 27/02/2015 12:12:55

    ecco, non esattamente... O meglio io vorrei che nella cella ci fosse il dato prelevato, sia che esso sia numero sia che esso sia una stringa.
    Ciò io cliccando sulla cella , non voglio vedere la formula, ma solo il dato senza la formula in vista! spero di essermi spiegata...
    grazie



  • di ire data: 27/02/2015 12:15:20

    ecco, ultima cosa..
    Il dato prelevato lo dovrei utilizzare come numero (as integer) anche in altre formule.



  • di alfrimpa data: 27/02/2015 12:32:22

    Ciao Irene

    Cerco di capire.

    Supponiamo che tu hai due file file1 e file2.

    File1 è chiuso e tu vorresti che dal file2 (con il codice) sia prelevato, con la formula che hai indicato, il dato presente nel file1?

    Supponiamo che il tale valore sia 3, tu vorresti che in C3 del file2 ci sia 3?

    Alfredo





  • di ire data: 01/03/2015 14:57:52

    Ciao alfredo! Grazie della risposta! esattamente!! =)
    Scusami per il ritardi nella risposta! =)



  • di ire data: 02/03/2015 08:30:16

    alfredo... dici che è possibile creare una cosa del genere!?
    grazie!=)



  • di lepat (utente non iscritto) data: 02/03/2015 09:03:48

    secondo me dovresti spiegare meglio cosa vuoi fare e perché.
    immagino che tu abbia già un codice a cui vuoi aggiungere qualcosa, inoltre sarebbe utile allegare dei file di esempio



  • di ire data: 02/03/2015 09:32:32

    Ecco! Questo è il mio file! =)
    h t t p : / / w w w.filedropper.com/aagiusto
    Io vorrei che le formule contenute nella maggior parte delle celle vengano introdotte tutte nel codice, così da avere le celle vuote sul foglio excel.
    Per esempio, nella cella c3 io ho la formula " =SE.ERRORE(CERCA.VERT(C4;'F:FORGEIRENE[DATI.xlsm]Disegni'!A:C;3;FALSO);"") ", vorrei che la cella sia vuota e la mia formula venga introdotta nel codice di change del mio foglio.
    Cosìcchè appena inserito il numero della commessa (nelle colonne c e ag) quasi tutte le celle di questa riga si compilano!
    Ecco, se hai qualche domanda, chiedimi pure.... Grazie!



  • di lepat (utente non iscritto) data: 02/03/2015 10:05:26

    nella cella c3 non vedo formule, comunque per fare quello che chiedi devi
    1) aprire il file dati
    2) fare un find + un offset per trovare il dato
    3) copiare il dato
    4) chidere il file dati



  • di ire data: 02/03/2015 10:18:32

    In realtà ho sbagliato a scrivere.. Intendevo la cella B4, per esempio, o D4...
    Non è possibile fare un collegamento senza aprire il file?



  • di lepat (utente non iscritto) data: 02/03/2015 10:56:52

    perché non vuoi aprirlo ?



  • di ire data: 02/03/2015 10:59:27

    Perchè è un foglio in cui ho dei fogli con solo i dati.
    Io devo condividere questo file su una rete e ogni utente non può aprire il file..



  • di Vecchio Frac data: 02/03/2015 11:10:19

    Due esempi.
     
    Option Explicit
    
    Sub read_closed_1()
    Dim app As New Excel.Application, wbk As Excel.Workbook, file_name As String
        
    'apre il file ma non lo rende visibile
        
        file_name = "c:users5314495desktoppippo.xlsx"
        
        Set wbk = app.Workbooks.Add(file_name)
        
        '----------------------------------------------------------------
        ' Le operazioni col file cominciano qui
        MsgBox "In cella A1 c'è questo: '" & wbk.Worksheets("foglio1").Range("A1") & "'"
        ' e finiscono qui
        wbk.Close SaveChanges:=False
        app.Quit
        Set app = Nothing
        '-----------------------------------------------------------------
    
    End Sub
    
    Sub read_closed_2()
    Dim sPath As String, sFile As String, s As String
         
    'accede a celle del file chiuso, senza aprirlo
         
        sPath = "c:users5314495desktop"
        sFile = "pippo.xlsx"
        
        s = "'" & sPath & "[" & sFile & "]Foglio1'!R1C1"
        MsgBox "In cella A1 c'è questo: '" & ExecuteExcel4Macro(s) & "'", vbInformation, sFile
         
    End Sub






  • di ire data: 02/03/2015 11:49:28

    Ho provato ad usare la seconda opzione che mi hai dato, ma nella riga: '' MsgBox "In cella A1 c'è questo: '" & ExecuteExcel4Macro(s) & "'", vbInformation, sFile '', mi dà errore di run time '13. tipo non corrispondente.
    Mi sai aiutare?



  • di lepat (utente non iscritto) data: 02/03/2015 12:43:11

    a me funziona bene, hai modificato in modo corretto sPath e sFile ?



  • di Vecchio Frac data: 02/03/2015 13:32:01

    Mi sembrava superfluo dirlo, ma è probabilmente questo il motivo.
    Occhio anche alla corretta notazione R1C1.





  • di lepat (utente non iscritto) data: 02/03/2015 13:52:47

    si può evitare la notazione RC ?



  • di Vecchio Frac data: 02/03/2015 13:59:28

    Non si può evitare, la notazione richiesta è solo R1C1.
    Però non è difficile ricavarla.





  • di giuseppeMN (utente non iscritto) data: 02/03/2015 18:13:15

    Buona sera;
    vorrei proporre il mio pensiero per una possibile soluzione.

    Prima di procedere, una considerazione:
    - nel Campo "ANOMALIA" (Colonna "J") non ho utilizzato una Formula ma semplicemente un riferimento alla Cella in Colonna "C"
    La formula:
    =SE.ERRORE(CERCA.VERT($C2;'C:ProveIrene[DATI.xlsm.xlsx]Anomalie'!$A:$N;1;0);"") non potrà dare altro che il contenuto della Cella "C2"
    Analogamente per le Celle sottostanti nella stessa Colonna.

    Ciò detto, la mia proposta, dovrebbe avvicinarsi alla richiesta di "Ire" (che saluto); non dispenondo del File:
    - DATI.xlsm]
    ho cercato di ricostruirlo per poter eseguire alcuni test.

    Posizionando il Cursore su una cella di una della Riga da valutare, e lanciando il Codice in allegato, dovrebbero, il condizionale è d'obbligo, compilarsi tutti i Campi interessati.

    Sono consapevole che il Codice è migliorabile, ma, se la strada intrappresa è quella desiderata, posso rivedere alcune istruzioni.


    A disposizione.

    Buona serata.

    Giuseppe
     
    Option Explicit
    
    Sub Cerca()
    Application.ScreenUpdating = False
    Dim Cln As Byte
    Dim Riga As Long
    Dim Form As String
        Riga = ActiveCell.Row
        For Cln = 2 To 30
            Select Case Cln
                Case 2
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";'C:ProveIrene[DATI.xlsm.xlsx]Disegni'!$A:$N;" & 3 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 4
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";'C:ProveIrene[DATI.xlsm.xlsx]Disegni'!$A:$N;" & 14 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 7
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";'C:ProveIrene[DATI.xlsm.xlsx]Disegni'!$A:$N;" & 9 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 8
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";'C:ProveIrene[DATI.xlsm.xlsx]Disegni'!$A:$N;" & 8 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 10
                    Form = "=$C" & Riga
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 20
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";'C:ProveIrene[DATI.xlsm.xlsx]Disegni'!$A:$N;" & 5 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 27
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";'C:ProveIrene[DATI.xlsm.xlsx]Disegni'!$A:$N;" & 4 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 30
                    Form = "=SE.ERRORE(SE(STRINGA.ESTRAI(CERCA.VERT($C" & Riga & ";'C:ProveIrene[DATI.xlsm.xlsx]Disegni'!$A:$N;7;0);1;3)=" & Chr(34) & "EXW" & Chr(34) & ";" & Chr(34) & "Cliente" & Chr(34) & ";SE(CERCA.VERT($C" & Riga & ";'C:ProveIrene[DATI.xlsm.xlsx]Disegni'!$A:$N;7;0)=" & Chr(34) & Chr(34) & ";" & Chr(34) & "nn" & Chr(34) & ";" & Chr(34) & "morandini" & Chr(34) & " ));" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
            End Select
        Cells(Riga, Cln).Copy
            Cells(Riga, Cln).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
         Next Cln
            Application.CutCopyMode = False
    Application.ScreenUpdating = True
    End Sub
    



  • di giuseppeMN (utente non iscritto) data: 02/03/2015 18:18:59

    errata corrige:
    se la strada intrappresa = se la strada intrapresa

    I'm sorry



  • di ire data: 03/03/2015 08:56:27

    BuonGiorno a tutti!!!!
    Grazie a tutti coloro che mi hanno dato un suggerimento.
    Per quanto riguarda Vecchio Frac, ho riprovato il tuo codice, ma, come dite voi, probabilmente ho sbagliato a impostare sPath e sFile. Vi riporto la mia modifica, e sicuramente sarà una banalità..
    Per quanto riguarda il codice di giuseppeMN, gRAZIE FES!!!! è proprio ciò che cercavo! =)
    Ho bisogno di una puntualizzazione.. Posso inserire questa parte di codice nel mio Change, così da non dover azionare un modulo per la compilazione dei dati?!
    Altra cosa, io ho inserito appunto il codice in un modulo. Azionando questa macro, si compila tutto perfettamente SOLO dopo aver selezionato il mio file Dati dalla finestra 'aggiorna valori: NOME DEL FILE'.
    Posso fare qualcosa per evitare questo passaggio?
    Grazie infinite!!!
     
    Sub read_closed_2()
    Dim sPath As String, sFile As String, s As String
         
    'accede a celle del file chiuso, senza aprirlo
         
        sPath = "f:forgeirene"
        sFile = "Dati.xlsm.xlsx"
        
        s = "'" & sPath & "[" & sFile & "]Disegni'!R2C3"
        MsgBox "In cella A1 c'è questo: '" & ExecuteExcel4Macro(s) & "'", vbInformation, sDati.xlsm.xlsx
         
    End Sub
    



  • di ire data: 03/03/2015 09:11:10

    Ah, giovanniMN potrei chiederti anche un'altra cortesia?!
    Ovvero spiegarmi in sintesi le funzioni che hai utilizzato, oppure, se preferisci, mettere un apice con i passaggi?
    Così anche io riesco a capire come creare le funzioni... Grazie mille! =)



  • di Vecchio Frac data: 03/03/2015 09:20:58

    Uhm...
    Niente di strano nel tuo codice? :)
    MsgBox "In cella A1 c'è questo: '" & ExecuteExcel4Macro(s) & "'", vbInformation, sDati.xlsm.xlsx







  • di ire data: 03/03/2015 09:52:48

    Credo che il problema sia nella parte in cui esplicito il file ovvero sDati.xlsm.xlsx, giusto?!
    Scusami, ma non so come muovermi!



  • di giuseppeMN (utente non iscritto) data: 03/03/2015 10:44:09

    Buona giornata, Ire;
    non desidero certo sovrappormi a Vecchio Frac (che saluto e, al Quale, esprimo tutta la mia stima); non ne certo l'intenzione e, tanto meno, la competenza.
    Quindi, rispondo solo per correttezza nei Tuoi confronti.
    Come scritto in precedenza, la Procedura andrebbe rivista in diversi punti.

    - Il NomeFile:
    - DATI.xlsm.xlsx
    andrebbe sicuramente rinominato in:
    - Dati.xlsm
    - Dati.xlsx
    Ho utilizzato il NomeFile:
    - DATI.xlsm.xlsx
    non conoscendo la struttura del File originale; supponendo che il File originale contenga Macro, il NomeFile sarà:
    - Dati.xlsm

    La Variabile:
    - sPath
    la definirei come Costante
    - Const Path As String = "'f:forgeirene[DATI.xlsm]"

    Contestualmente, il Codice andrebbe modificato come da ipotesi allegata.

    Per quanto concerne l'evento:
    - Private Sub Worksheet_Change(ByVal Target As Range)
    con Target da Cella "C4" a Cella "Cn" (dove "n" andrebbe calcolato in funzione dell'ultimo Record in Colonna "C").
    Dovendo decidere, scegliere di mantenere il Codice in un Modulo richiamandolo ad ogni evento Change delle Celle del Campo "COMMESSA" (Colonna "C").
    Questo, almeno, fino al termine dei test.

    Ma, molto probabilmente, mi sto allargando troppo invadendo campi che non mi competono.

    Le Funzioni utilizzate sono tutte legate a:
    - FormulaLocal
    alla quale ho ritenuto opportuno non assegnare direttamente la Formula vera e propria ma appoggiarmi ad una Variabile (Form).
    Come puoi vedere, la Formula nel Foglio di lavoro, viene trasformata in Valore assoluto.

    Questo è quanto.


    A disposizione.

    Buon Lavoro e buona serata.

    Giuseppe
     
    Option Explicit
    
    Sub Cerca()
    Application.ScreenUpdating = False
    Dim Cln As Byte
    Dim Riga As Long
    Dim Form As String
    '   Const Path As String = "'C:ProveIrene[DATI.xlsm]"    '  Utilizzata per i miei Test
        Const Path As String = "'f:forgeirene[DATI.xlsm]"    '   Queta dovrebbe essere la Tua Path
        Riga = ActiveCell.Row
        For Cln = 2 To 30
            Select Case Cln
                Case 2
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";" & Path & "Disegni'!$A:$N;" & 3 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 4
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";" & Path & "Disegni'!$A:$N;" & 14 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 7
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";" & Path & "Disegni'!$A:$N;" & 9 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 8
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";" & Path & "Disegni'!$A:$N;" & 8 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 10
                    Form = "=$C" & Riga
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 20
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";" & Path & "Disegni'!$A:$N;" & 5 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 27
                    Form = "=SE.ERRORE(CERCA.VERT($C" & Riga & ";" & Path & "Disegni'!$A:$N;" & 4 & ";0);" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
                Case 30
                    Form = "=SE.ERRORE(SE(STRINGA.ESTRAI(CERCA.VERT($C" & Riga & ";" & Path & "Disegni'!$A:$N;7;0);1;3)=" & Chr(34) & "EXW" & Chr(34) & ";" & Chr(34) & "Cliente" & Chr(34) & ";SE(CERCA.VERT($C" & Riga & ";" & Path & "Disegni'!$A:$N;7;0)=" _
                    & Chr(34) & Chr(34) & ";" & Chr(34) & "nn" & Chr(34) & ";" & Chr(34) & "morandini" & Chr(34) & " ));" & Chr(34) & Chr(34) & ")"
                    Cells(Riga, Cln).FormulaLocal = Form
            End Select
        Cells(Riga, Cln).Copy
            Cells(Riga, Cln).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
         Next Cln
            Application.CutCopyMode = False
    Application.ScreenUpdating = True
    End Sub



  • di ire data: 03/03/2015 12:00:08

    Grazie GiovanniMN, GENTILISSIMO!!!! =)
    allora.. per quanto riguarda il file, ora è riconosciuto e trova i dati..
    Ho poi inserito il Cerca in un modulo così da richiamarlo all'interno del change.
    Ma questa mossa non funziona.
    Riporto qui a seguito il codice! magari sto sbagliando qualche banalità.
    Altra osservazione: Ora succede che, inserendo il numero della commessa nella colonna C, grazie al modulo CERCA mi compila la prima parte del foglio ( da A a AE).
    Mi piacerebbe che, inserendo il numero della commessa nella colonna AG, con CERCA, mi si compili da AF a BI.
    Di solito per ovviare a ciò inserisco una variabile z tale che aggiunga un tot numero di celle, qui dove dovrei inserirla?! pensavo a "=SE.ERRORE(CERCA.VERT($C+z", dopo averla opportunatamente dichiarata.
     
    Private Sub WORKSHEET_change(ByVal TARGET As Range)
     Dim I As Integer
     Dim s As Date
     Dim D As Date
     Dim r As Integer
     Dim gg As String
    
    
      gg = ActiveSheet.Name
      
      
     Select Case UCase(Worksheets(gg).Cells(3, 1))
        Case ("Lunedì")
            r = 0
        Case ("Martedì")
            r = 1
        Case ("Mercoledì")
            r = 2
        Case ("Giovedì")
            r = 3
        Case ("Venerdì")
            r = 4
     End Select
    
      Call Cerca
      
            
      D = DateAdd("d", r, Worksheets("Lunedì").Cells(1, 8))
            
         If TARGET.Cells.Count = 1 And TARGET(1) <> "" And Not Intersect(TARGET, Range("C4:C100")) Is Nothing Then
          If IsDate(Range("AA" & TARGET.Row)) Then
               I = TARGET.Row
               U = Cells(I, 29)
               s = DateAdd("d", U, Cells(TARGET.Row, 27))
                
                  If s <= D Then
                    Call InRITARDO(I, 0)
                    Else: Call InTEMPO(I, 0)
                  End If
             End If
        End If
        
       If TARGET.Cells.Count = 1 And TARGET(1) <> "" And Not Intersect(TARGET, Range("Q4:Q100")) Is Nothing Then
          If IsDate(Range("AA" & TARGET.Row)) Then
               I = TARGET.Row
               U = Cells(I, 29)
               s = DateAdd("d", U, Cells(TARGET.Row, 27))
                
                 If s <= Date Then
                   Call InRITARDO2(I, 0)
                   Else: Call InTEMPO2(I, 0)
                 End If
           End If
        End If
      
      '  If Target.Cells.Count = 1 And Target(1) <> "" And Not Intersect(Target, Range("N4:N100")) Is Nothing Then
       '     If IsDate(Range("N" & Target.Row)) Then
         '    I = Target.Row
        
          '    If S <= Date Then
           '         Call InRITARDO2(I, 0)
            '   End If
            'End If
       ' End If
             
      If TARGET.Cells.Count = 1 And TARGET(1) <> "" And Not Intersect(TARGET, Range("AG4:AG100")) Is Nothing Then
            If IsDate(Range("BE" & TARGET.Row)) Then
                I = TARGET.Row
                s = Cells(TARGET.Row, 57)
                
                 If s <= D Then
                    Call InRITARDO(I, 30)
                    Else: Call InTEMPO(I, 30)
                 End If
            End If
        End If
        
       If TARGET.Cells.Count = 1 And TARGET(1) <> "" And Not Intersect(TARGET, Range("AU4:AU100")) Is Nothing Then
           If IsDate(Range("BE" & TARGET.Row)) Then
              I = TARGET.Row
               U = Cells(I, 59)
                s = DateAdd("d", U, Cells(TARGET.Row, 57))
           
                 If s <= Date Then
                    Call InRITARDO2(I, 30)
                    Else: Call InTEMPO2(I, 30)
                  End If
            End If
         End If
      
    '  If Target.Cells.Count = 1 And Target(1) <> "" And Not Intersect(Target, Range("AH4:AH100")) Is Nothing Then
     '      If IsDate(Range("BE" & Target.Row)) Then
      '         I = Target.Row
       '
        '       Call InRITARDO2(I, 30)
         '  End If
          'End If
      
    End Sub
    
    
    
    



  • di ire data: 03/03/2015 12:41:06

    Altro inghippo! Lanciando il modulo con il mio change mi dà errore di run time 28: spazio dello stack esaurito! cosa significa?



  • di giuseppeMN (utente non iscritto) data: 03/03/2015 13:12:36

    Buona giornata, Ire;
    quello che posso dirti è che mi erano sfuggita la Formula in:
    - BK
    Queste Celle possono essere gestite con lo stesso criterio proposto in Sub Cerca().

    Ire, scrive:
    _________________________________________________________________
    Ho poi inserito il Cerca in un modulo così da richiamarlo all'interno del change.
    Ma questa mossa non funziona.
    _________________________________________________________________

    Ribadisco il mio consiglio, manterrei il codice il un Modulo e lo richiamerei, con Call, nell'Evento Change.

    Ire, scrive:
    ____________________________________________________________________________________________
    Mi piacerebbe che, inserendo il numero della commessa nella colonna AG, con CERCA, mi si compili da AF a BI.
    ____________________________________________________________________________________________

    Non capisco cosa vuoi ottenere nelle Celle AF:BI; nel Tuo File non vedo Funzioni/Formule, ma questa potrebbe essere una mia carenza.
    Mentre, le Celle in "BL" possono essere gestite con lo stesso criterio proposto in Sub Cerca().


    Giuseppe



  • di ire data: 04/03/2015 08:55:28

    Giovanni! buongiorno! =)
    Come al solito mi sono espressa male! Io ho richiamato nel change il mio modulo "CERCA", ma inserendo il numero della commessa mi dà errore di run time 13 'tipo non corrispondente'.
    Ciò si riferisce ad un valore che ho inserito come variabile K. Si tratta di un valore numerico presente nella cella E2 nel mio foglio PARAMETRI sempre nel file DATI.
    Per inserirlo nel modulo già esistente è necessario che faccia tutte le dichiarazioni del caso,
    ( come quelle fatte per inserire il modulo CERCA o è possibile trovare una espressione più snella?!
    La mia variabile K dovrebbe essere la cella del foglio Parametri del file Dati, da considerarsi però come valore numerico perchè è contenuto in una formula dateadd!
    Per quanto riguarda la compilazione da AF a BI, intendevo, dato che il foglio è composto di due parti Uguali praticamente e perciò vorrei inserire una costante z tale che, se si inserisca il numero commessa nella colonna C, compili la riga fino ad AE, Nel caso invece, inserisca nella colonna AG si compili fino da AF a BI.
    Perchè i dati che va a pescare il mio Cerca sono i medesimi per le due parti del foglio.
    Mi sono spiegata!?Grazie!=)



  • di giuseppeMN (utente non iscritto) data: 04/03/2015 10:46:47

    Buona giornata, Ire;
    ti eri espressa benissimo, avevo visto che utilizzavi Call Cerca.
    Quello che volevo dire è che può succedere, come è accaduto nella Tua situazione, che una Procedura inserita in Modulo può non Funzionare se richiamata in un Evento (nel Tuo caso, Worksheet_Change).
    Una soluzione a quanto hai riscontrato è abbastanza complessa da proporre. I Fogli di lavoro nel Tuo File sono, giustamente, protetti; questo potrebbe essere una delle cause degli errori dichiarati.
    Non è un problema togliere le protezioni, ma questo, da parte mia, non credo sia corretto.

    Non coscendo la struttura del File DATI.xlsm, mi è difficile analizzare il contenuto della Cella E2 nel Foglio di lavoro PARAMETRI.
    Ad esempio, il mio File Dati.xlsm, l'ho strutturato con un solo Foglio di lavoro ("Disegni") con Dati nelle Colonne "A:N"; questo mi è servito per i miei test.

    Quello che posso proporti è una chiaccherata in Skype; per esperienza, molti dubbi vengono chiariti con la condivisone dello schermo.
    Se lo ritieni opportuno, indicami il Tuo NikName in Skype.


    A disposizione.

    Buon Lavoro e buona serata.

    Giuseppe



  • di ire data: 04/03/2015 11:17:11

    Guarda GiovanniMN, gentilissimo! =)
    A me farebbe molto piacere, così magari riesco a spiegarmi in maniera più esaustiva.
    Ti chiedo cortesemente se potessimo fare di pomeriggio, anche oggi va benissimo perchè ora sono in ufficio! =)
    Hai per caso qualche orario che preferisci rispetto ad altri?
    Grazie mille!



  • di giuseppeMN (utente non iscritto) data: 04/03/2015 12:29:59

    Buon pomeriggio, Ire;
    l'orario, lo decidi Tu; possibilmente dopo le 17:00

    In altri Forum c'è la possibilità di inviare messaggi privati per evitare che il NickName di Skype sia di dominio pubblico; in questo Forum sinceramente non lo so.


    Buon Lavoro.

    Giuseppe




  • di ire data: 04/03/2015 13:25:31

    Mi accorgo ora di averti sempre chiamato giovanni erroneamente! aiutoooo! scusa!!!
    comunque se vuoi ti lascio la mia mail, dove puoi scrivermi il tuo nickname! così alle 17:00 abbondanti ti chiamo! =) ire.zazi@hotmail.it
    Grazie!!! =)



  • di giuseppeMN (utente non iscritto) data: 04/03/2015 15:27:01

    Buona sera, Ire;
    per il nome, nessun problema, uno vale l'altro.

    Per quanto riguarda Skype, ti invio una mail con il mio Nick; ovviamente rimane il mio impegno a condividere in Forum ogni ulteriore passo avanti relativo alla discussione.


    Giuseppe



  • di giuseppeMN (utente non iscritto) data: 05/03/2015 09:07:06

    Buona giornata a Tutti;
    come promesso, rendo conto dei punti chiariti con Ire in Skype.
    Con la condivisone dello schermo abbiamo chiarito molti dubbi.

    In considerazione del fatto che i Campi (Colonne), in realtà sono 64, ho preferito abbandonare la soluzione con Select Case e gestire il riferimento alle Celle con il Valore assoluto senza la Variabile Cln.

    Per qunto concerne l'attivazione della Macro nell'Evento Worksheet_Change ho condotto alcuni test limitando l'Evento alla sola esecuzione di Call Cerca, escludendo quindi il restante contenuto dell'Evento.
    In questo modo sembra funzionare; cercheremo di capire gli altri problemi connessi all'Evento originale.

    Per quanto riguarda il problema:
    _____________________________________________________________________________________________
    Ire, scrive:
    - Altro inghippo! Lanciando il modulo con il mio change mi dà errore di run time 28: spazio dello stack esaurito!
    _____________________________________________________________________________________________
    Credo di aver risolto con:
    - Application.EnableEvents = False
    - Application.EnableEvents = True

    Non vorrei rubare troppo spazio alla discussione, quindi, credo opportuno fermarmi nel resoconto in Forum degli ulteriori sviluppi; ovviamente, resto a disposizione per eventuali ulteriori precisazioni nel caso in cui qualche Utente lo ritenga utile.


    A disposizione.

    Giuseppe


  • Precisazione
    di Mauro data: 05/03/2015 10:50:58

    Questo forum non prevede la possibilità di inviare messaggi privati. La logica è LA CONDIVISIONE MASSIMA DELLE INFORMAZIONI. Ciò non vieta a due persone che si incontrano nel forum di frequentarsi in altri servizi. Tuttavia vi sarei grato se documentaste una eventuale soluzione al fine di concludere la discussione. Grazie



  • di ire (utente non iscritto) data: 05/03/2015 11:26:14

    Esattamente, GiovanniMN!
    Mauro, capisco.. Non appena ultimiamo il codice, lo posto.
    Per ora ci stiamo lavorando...
    Grazie della precisazione..



  • di Raffaele_53 (utente non iscritto) data: 06/03/2015 07:25:17

    Un saluto a giuseppeMN (non ho letto il tutto, ma sò che te la cavi benissimo)