Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[RISOLTO] Problema macro da Excel a Libreoffice 3.6
#1
Come da titolo ho problemi con una macro che non funziona su libreoffice. Ho letto in rete che l'unico modo è riscriverla ma non so come si fa con il basic di calc, c'è qualcuno che può aiutarmi Cool


Sub elenco()

a = InputBox("titolo del film")
b = InputBox("genere e anno quando è uscito il film")
c = InputBox("attori principali")
For riga = 6 To 2500
If Cells(riga, 1).Value = "" Then
Cells(riga, 2).Value = a
Cells(riga, 3).Value = b
Cells(riga, 4).Value = c

Range("B6:E2500").Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("B6").Select






Exit Sub
End If
Next riga
End Sub
Cita messaggio
#2
Ciao, scusami se rispondo solo ora.
La macro su openoffice 3.2/3.4 funziona perfettamente mentre su libreoffice 3.6 no.
Se usi windows puoi scaricare una versione portable del programma http://www.winpenpack.com/en/download.php?view.1341
Per abilitare la macro prima di aprire il file:
strumenti
opzioni
sicurezza
sicurezza delle macro
medio
ok

La macro non l'ho riscritta (non me ne intendo di liguaggio basic) ma l'ho resa compatibile e ho aggiunto
Codice:
Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1

Ho allegato il file con un pulsante e questa macro:
Codice:
Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Sub elenco()

a = InputBox("titolo del film")
b = InputBox("genere e anno quando è uscito il film")
c = InputBox("attori principali")
For riga = 6 To 2500
If Cells(riga, 1).Value = "" Then
Cells(riga, 2).Value = a
Cells(riga, 3).Value = b
Cells(riga, 4).Value = c

Range("B6:E2500").Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("B6").Select

Exit Sub
End If
Next riga
End Sub


Allegati
.zip   Senza nome 2.zip (Dimensione: 6,78 KB / Download: 9)
Cita messaggio
#3
Grazie per la risposta ma purtroppo non va Piange
appare questo messaggio di errore:

Errore di runtime BASIC '1'
Type.com.sun.star.mo. Runtime Exception
MESSAGE:unsatisfied query for interface of type
ooo.vba.excel.xworksheet!
Cita messaggio
#4
lo so, su openoffice invece non ottengo errori Undecided
Cita messaggio
#5
Sei sicuro che la macro funzioni perfettamente? Ho provato, ma invece di inserire i film in ordine alfabetico via via che li catalogo me li mette tutti nelle stesse celle, in pratica l'ultimo sovrascrive il precedente Huh quando hai tempo potresti provare ad eseguire la macro 5-6 volte per vedere se funziona. Grazie Angel

PS: Ho tolto libre e ho installato open e adesso la macro la esegue anche se non perfettamente, forse c'è da modificare qualcosa ..... boh! Arrendersi
Cita messaggio
#6
Scusami, ho copiato la tua macro anche su microsoft excel e sovrascrive i titoli su cella b6, quindi è errata sia per excel che per openoffice.
Credo che ci sia un errore nel codice che hai postato.
Cita messaggio
#7
Per me è sbagliato il codice che è stato postato già all'inizio; sarebbe il caso che fai un allegato del file EXCEL con la lista di film e poi che spieghi COSA dovrebbe fare esattamente la macro; così a occhio fa apparire dei pop-up (e si può fare meglio e più semplicemente), per poi inserire in ordine in una lista di film preesistenti; lasciando perdere il fatto che sarebbe meglio usare un database devi innanzitutto descrivere cosa vuoi ottenere
Il mio blog: http://zerozerocent.blogspot.it/
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
Cita messaggio
#8
Appena posso vedo se ho ricopiato male il codice. La macro serve ha catalogare i miei dvd, via via che li inserisco me li mette automaticamente in ordine alfabetico. Su excel funziona, da quando l'ho fatta anni fa, ho catalogato quasi 1500 film.
Cita messaggio
#9
se su excel funziona allora non posso essere di ulteriore aiuto, non conosco il linguaggio di calc, pensavo ci fosse un errore "alla base"
Il mio blog: http://zerozerocent.blogspot.it/
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
Cita messaggio
#10
prova così:
Codice:
Sub elenco()
a = InputBox("titolo del film")
b = InputBox("genere e anno quando è uscito il film")
c = InputBox("attori principali")
For riga = 6 To 2500
  If range("A" & riga).Value = "" Then
    range("B" & riga).Value = a
    range("C" & riga).Value = b
    range("D" & riga).Value = c

    Range("B6:E2500").Select
    Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
        xlTopToBottom
    Range("B6").Select
    Exit Sub
  End If
Next riga
End Sub
Un titolo ben azzeccato attira l'attenzione degli esperti in quel campo, fa risparmiare tempo a voi, aumenta la probabilità di successo.
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)