Macro da Office a LibreOffice



  • Macro da Office a LibreOffice
    di Carlo (utente non iscritto) data: 09/04/2014 11:22:13

    Salve. Ho questa macro che per Office funziona però la dovrei mettere su un pc che ha LibreOffice; come va modificata e dove va messa? Grazie in anticipo
     
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case LCase(Target.Value)
        
        Case "rossi"
            MsgBox "Fornitore"
        Case "verdi"
            MsgBox "Creditore"
        Case IsNumeric(Target)
            Select Case Target
                Case Is >= 50000
                    MsgBox "Archiviato"
                Case 10500 To 11000
                    MsgBox "Inviato"
            End Select
       
        Case Else 'cioè se non trova una corrispondenza con gli altri casi
        Dim fin As Range
        Set fin = Range("P3:P18").Find(what:=Target, lookat:=xlWhole)
        If Not fin Is Nothing Then
            MsgBox "Lista nera"
        End If
        Set fin = Nothing
        End Select
        If Target Like "*bianchi*" Then
            MsgBox "ITALIA"
        End If
    End Sub



  • di lepat (utente non iscritto) data: 09/04/2014 16:05:33

    non ti sembra un quesito da porre sul forum dedicato ?
    h t t p://it.libreofficeforum.org/forum/apps/calc
    h t t p://forum.openoffice.org/it/forum/viewforum.php?f=9&sid=81d0a23708ad30cdd5b322167557f659

    comunque macro abbastanza semplici funzionano anche su calc, basta non effettuare successive modifiche



  • di Carlo (utente non iscritto) data: 09/04/2014 18:06:06

    Grazie per la risposta. Ho provato su libreoffice ma non funziona, sembra come se non ci fosse. Avrò sbagliato qualcosa? Come sta questa macro dovrebbe funzionare su libreoffice?



  • di lepat (utente non iscritto) data: 09/04/2014 21:19:26

    Io intendevo aprile il file excel con Calc e lanciare la macro, ma come già detto non sempre funziona.



  • di lepat (utente non iscritto) data: 09/04/2014 21:21:57

    Non avevo notato che questa macro gestisce l'evento change del foglio, quindi non rientra nelle macro semplici ed è normale che non funzioni.



  • di lepat (utente non iscritto) data: 10/04/2014 06:25:27

    mi correggo, ho provato ora ad aprire con Calc un foglio Excel con una macro simile e funzionava perfettamente



  • di Carlo (utente non iscritto) data: 10/04/2014 07:08:45

    Io non devo aprire con calc il mio file excel, ma devo inserire questa macro in un file calc che ha dati diversi dal mio file, ho provato ad inserirlo dove dice sub main ma non va, dove dovrei inserirlo?



  • di lepat (utente non iscritto) data: 10/04/2014 09:00:54

    mi sembrava di essere stato chiaro, ma lo ripeto.
    Se apri il file xls con calc hai buone probabilità che funzioni, se vuoi utilizzare la macro su un file ods non funzionerà



  • di Carlo (utente non iscritto) data: 10/04/2014 14:53:12

    Ok. Quindi concretamente come posso fare per utilizzare quella macro in un file calc?



  • di lepat (utente non iscritto) data: 10/04/2014 15:04:08

    Carlo, le leggi le mie risposte ? ho perso tempo a risponderti fino ad ora.



  • di Carlo (utente non iscritto) data: 11/04/2014 07:10:28

    Ho capito, ho sbagliato forum. Grazie lo stesso



  • di lepat (utente non iscritto) data: 11/04/2014 07:38:38

    Te lo avevo detto subito nella prima risposta, qui si parla di excel e Office



  • di Mauro data: 11/04/2014 08:09:00

    E' vero che il regolamento parla chiaro, tuttavia mi sembra che il quesito posto da Carlo possa essere affine alle tematiche trattate nel forum, in certi casi si può essere tolleranti. In ogni caso vi invito ad un tono cordiale e rispettoso. Buon venerdì a tutti!



  • di lepat (utente non iscritto) data: 11/04/2014 10:51:20

    Regolamento:
    Il forum può essere utilizzato solamente per discutere temi, dubbi, perplessità, approfondimenti, studi, situazioni, esempi e domande relative:

    • Linguaggi di programmazione orientati agli applicativi Office.
    • Visual Basic, Visual Basic for Applications
    • Excel e gli applicativi Office.



  • di lepat (utente non iscritto) data: 11/04/2014 10:53:22

    impossibile per me non perdere la pazienza dopo aver visto ignorati tutti i miei post



  • di Mauro data: 11/04/2014 11:35:51

    Qui il confine è labile, si tratta di uno studio che parte da Excel verso Calc, che comunque è un foglio di calcolo. Ad ogni modo stai sereno non vale la pena di arrabbiarsi per queste cose, io penso che l'impegno nel forum deve essere un divertimento ed un passatempo, se no chi te lo fa fare!?



  • di lepat (utente non iscritto) data: 11/04/2014 12:42:10

    mi diverte risolvere problemi, non discutere con sordi



  • di Carlo (utente non iscritto) data: 12/04/2014 10:37:49

    Io con Libreoffice non ho mai avuto a che fare, quindi non lo conosco mentre con excel lavoro ogni giorno. Io chiedevo a chi fosse a conoscenza come inserire quella macro per excel in un foglio calc, se magari fosse sufficiente fare un copia e incolla e se sì dove oppure bisogna modificare il codice. Tutto qua. Comunque sicuramente ci sono altri forum più appropriati per questo problema. Un saluto a tutti



  • di gaetanopr data: 12/04/2014 11:30:35

    Ciao, ho cercato di tradurla, pero' quando si fanno queste richieste, a parte la questione del forum di competenza, è sempre meglio spiegare cosa fa la macro e il risultato che si vuole ottenere.
    La macro va associata all'evento "Contenuto modificato" facendo tasto dx sulla linguetta del foglio - Eventi foglio.


     
    Option Explicit
    Sub LibreOffice(oEv)
    
    If oEv.Type = 2 Then 
       Select Case LCase(oEv.String)
        Case "rossi"
            MsgBox "Fornitore"
        Case "verdi"
            MsgBox "Creditore"
        End Select
    Else 
       Select Case oEv.Value
        Case Is >= 50000
            MsgBox "Archiviato"
        Case 10500 To 11000
            MsgBox "Inviato"
       End Select
    End If
       Dim fin As Object, Rng As Object, oSD As Object, Risc As Object
       Rng = oEv.Spreadsheet.getCellRangeByName("A1:D19")
       oSD = oEv.Spreadsheet.createSearchDescriptor
       oSD.searchWords = True
       oSD.setSearchString(oEv.String)
       Risc = Rng.findFirst(oSD)
       If Not IsNull(Risc) Then
    		MsgBox "Lista nera"
       End if
       If oEv.String Like "*bianchi*" Then
            MsgBox "ITALIA"
       End If
    
     End Sub  
    



  • di Carlo (utente non iscritto) data: 12/04/2014 11:56:13

    Grazie Gaetano per la traduzione. Appena provo in ufficio ti faccio sapere.



  • di Carlo (utente non iscritto) data: 14/04/2014 18:18:24

    Ok, funziona. Gentilissimo