Macro de Openoffice Calc

Claire -  
bordelaplage Mensajes publicados 16 Fecha de registro   Estado Miembro Última intervención   -
Je viens de transférer un fichier Excel sous OpenOffice, j'avais un bouton de macro me permettant d'ajuster la hauteur des lignes qui ne fonctionne plus. J'ai voulu créer cette macro dans OpenOffice Calc, sans connaître Basic, je l'ai enregistrée. Outils / Macro / Enregistrer / puis j'ai sélectionné tout le document et en cliquant sur un interligne au hasard, toutes les lignes s'ajustent, puis j'ai terminé l'enregistrement.
Ensuite, lorsque j'exécute la macro, rien ne se passe. Est-ce un problème de fonctionnalité, de langage ou autre...
Merci de votre aide.
Nb : si vous voulez m'envoyer la macro écrite, je serai ravie.

58 respuestas

  • 1
  • 2
  • 3
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
 
Hola,

si pones esta opción al principio de tu macro

OPTION VBASupport 1

el código vba podrá ejecutarse en ooopenoffice.org ;-)

así que no hay necesidad de una conversión
--
106485010510997108
7
boyington
 
Bonjour,
Tengo el siguiente problema, toda mi macro muestra 'Rem' al inicio de cada línea. Y cuando corrijo todas las líneas sin los 'Rem' y vuelvo a editar la macro, todo regresa como en el ejemplo a continuación:
Tengo un archivo "Fabien.XLT"
Gracias

Rem Attribute VBA_ModuleType=VBAFormModule
OPTION VBASupport 1
Sub Commande
Rem Private Sub CommandButton6_Click()
Rem
Rem End Sub
Rem
Rem Private Sub CommandButton8_Click()
Rem Sheets("Data").Select
Rem ActiveSheet.Shapes("WordArt 4").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem Range("E1").Select
Rem ActiveSheet.Paste
Rem Selection.ShapeRange.IncrementLeft -70.5
Rem Selection.ShapeRange.IncrementTop -8.25
Rem Range("E3").Select
Rem Dim vFichier As String, vChemin As String
Rem vChemin = "d:\FG entreprise\Factures\"
Rem vFichier = vChemin & ("F") & ("_") & ActiveSheet.Range("H1") & ("_") & ActiveSheet.Range("F8")
Rem ActiveWorkbook.SaveAs Filename:=(vFichier)
Rem End Sub
Rem
Rem Private Sub arretroyal_Click()
Rem
Rem End Sub
Rem
Rem Private Sub DEVIS_Click()
Rem Sheets("Data").Select
Rem ActiveSheet.Shapes("WordArt 3").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem Range("F1").Select
Rem ActiveSheet.Paste
Rem Selection.ShapeRange.IncrementLeft -76.5
Rem Selection.ShapeRange.IncrementTop -9.75
Rem Selection.ShapeRange.IncrementLeft -3#
Rem Selection.ShapeRange.IncrementTop -0.75
Rem Range("H1:I1").Select
Rem End Sub
Rem
Rem Private Sub devisrenvoyer_Click()
Rem With ActiveSheet.PageSetup
Rem .BlackAndWhite = False
Rem End With
Rem ActiveSheet.PrintOut
Rem With ActiveSheet.PageSetup
Rem .BlackAndWhite = True
Rem End With
Rem ActiveSheet.PrintOut
Rem End Sub
Rem
Rem Private Sub Facture_Click()
Rem Sheets("Data").Select
Rem ActiveSheet.Shapes("WordArt 4").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem Range("E1").Select
Rem ActiveSheet.Paste
Rem Selection.ShapeRange.IncrementLeft -35.25
Rem Selection.ShapeRange.IncrementTop -11.25
Rem Range("H1:I1").Select
Rem End Sub
Rem
Rem Private Sub Image1_Click()
Rem
Rem End Sub
Rem
Rem Private Sub print_couleur_bw_Click()
Rem With ActiveSheet.PageSetup
Rem .BlackAndWhite = False
Rem End With
Rem ActiveSheet.PrintOut
Rem With ActiveSheet.PageSetup
Rem .BlackAndWhite = True
Rem End With
Rem ActiveSheet.PrintOut
Rem With ActiveSheet.PageSetup
Rem .BlackAndWhite = False
Rem End With
Rem End Sub
Rem
Rem Private Sub Sfacture_Click()
Rem Dim vFichier As String, vChemin As String
Rem vChemin = "c:\MN entreprise\Factures\"
Rem vFichier = vChemin & ("F") & ("_") & ActiveSheet.Range("H1") & ("_") & ActiveSheet.Range("F8")
Rem ActiveWorkbook.SaveAs Filename:=(vFichier)
Rem End Sub
Rem
Rem Private Sub Svdevis_Click()
Rem Dim vFichier As String, vChemin As String
Rem vChemin = "d:\FG entreprise\Devis\"
Rem vFichier = vChemin & ("D") & ("_") & ActiveSheet.Range("H1") & ("_") & ActiveSheet.Range("F8")
Rem ActiveWorkbook.SaveAs Filename:=(vFichier)
Rem End Sub
Rem
Rem Private Sub TVA21_Click()
Rem ActiveWindow.ScrollRow = 20
Rem Range("G47").Select
Rem Sheets("Data").Select
Rem Range("A4").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem ActiveSheet.Paste
Rem Application.CutCopyMode = False
Rem Range("H47:I47").Select
Rem Sheets("Data").Select
Rem Range("B4").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem ActiveSheet.Paste
Rem Application.CutCopyMode = False
Rem Sheets("DF").Select
Rem End Sub
Rem
Rem Private Sub TVA6_Click()
Rem Range("G47").Select
Rem Sheets("Data").Select
Rem Range("A3").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem ActiveSheet.Paste
Rem Application.CutCopyMode = False
Rem Range("H47:I47").Select
Rem Sheets("Data").Select
Rem Range("B3").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem ActiveSheet.Paste
Rem Application.CutCopyMode = False
Rem Range("A48").Select
Rem End Sub
Rem
Rem Private Sub TVACC_Click()
Rem Range("G47").Select
Rem Sheets("Data").Select
Rem Range("A6").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem ActiveSheet.Paste
Rem Application.CutCopyMode = False
Rem Range("H47:I47").Select
Rem Sheets("Data").Select
Rem Range("B6").Select
Rem Selection.Copy
Rem Sheets("DF").Select
Rem ActiveSheet.Paste
Rem Application.CutCopyMode = False
Rem Range("B46").Select
Rem Sheets("Data").Select
Rem Sheets("DF").Select
Rem End Sub
Rem
Rem Private Sub UserForm_Click()
Rem
Rem End Sub
Rem
End Sub
0
loks
 
¡Hola a todos!

Sí, he probado la OPCIÓN VBASupport 1 y funciona de maravilla.
Sin embargo, ¿funciona para todos los programas de VB?
¡Gracias por su ayuda!
Paralelamente, tengo otra pregunta:

¿Pueden ayudarme con un punto particular que me bloquea enormemente?
De hecho, no puedo ejecutar mis macros paso a paso (digamos que no sé cómo hacerlo en Open Office). Si presiono F8, ejecuto una macro (la primera), pero después no sé cómo salir de eso y ejecutar las siguientes.

¡Gracias por su atención!
0
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571 > loks
 
Hola,

sin embargo, ¿funciona para todos los programas VB??
No confundas VB con VBA.

Para la segunda pregunta, se necesitan un poco más de detalles.
--
106485010510997108
0
Dark Tigrou Mensajes publicados 1 Fecha de registro   Estado Miembro Última intervención   2
 
Es lamentablemente normal... Las macros son difícilmente importables en OpenOffice.
Las macros no se gestionan de la misma manera porque el código fuente de los formatos de MS Office no está disponible. Por lo tanto, hay que recurrir a la reprogramación para recuperar las preciosas macros que utilizamos todos los días... :(

Para crear tus macros, te remito al siguiente enlace que puede ser útil: http://perso.wanadoo.fr/pedagologic/documents/MacroOOo.pdf

Esperando que esto te ayude.
2
didou
 
Entonces, tengo la solución para tu problema, es muy simple en realidad. Una vez que hayas hecho todo, es decir, la grabación y la macro, solo tienes que ir al botón que creaste, hacer clic derecho sobre él, seleccionar "asignar una macro" y allí especificar de cuál macro se trata y validar con "OK" y debería funcionar.
Espero que te salga bien. ¡Hasta pronto!
0
marquantdidier Mensajes publicados 4 Fecha de registro   Estado Miembro Última intervención  
 
Hola, el enlace no funciona: la página ya no existe.
0
OOoForum Mensajes publicados 3871 Fecha de registro   Estado Miembro Última intervención   965
 
Sí, es un poco normal cuando se recompone temas de 2005.
0
Doudou95 Mensajes publicados 1897 Fecha de registro   Estado Miembro Última intervención   275
 
+1 pero al menos eso significa que él busca antes de publicar :)
0
jackryan195 Mensajes publicados 25 Fecha de registro   Estado Miembro Última intervención   6
 
Buenas noches a todos
En el marco de mi trabajo, tengo que transferir un copiar en una hoja de calc a un documento de writer en un lugar específico
Lo mejor sería tener una macro en calc con un botón de acción.
Gracias de antemano.
2
boyington
 
Hola Lami20j
¿Sería posible enviarte el archivo completo? ¿y por qué medio? ¿en el sitio?
JM
2
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
 
Buenas noches Claire,

¿Es un problema de funcionalidad, de lenguaje u otro..?

Sí, es un problema de lenguaje. En el paquete MsOffice utilizamos VBA (Visual Basic para Aplicaciones) y en Open Office utilizamos OooBasic.

Aquí tienes tu macro.
 Sub ajustar_líneas() ThisComponent.currentController.activeSheet.Rows.Height = 400 End Sub 
La macro ajusta las filas de la hoja activa (400 es para una altura de 0,40 cm)

Si no sabes dónde debes escribir el código, dímelo y te explicaré.

lami20j
1
loks
 
En realidad, Open Office tiene un soporte limitado para VBA y aunque puedes utilizar "OPTION VBASupport 1" para aumentar la compatibilidad, es probable que necesites modificar algunos códigos debido a diferencias en la implementación entre Excel y Open Office. No todos los comandos y funciones de VBA en Excel son compatibles con Open Office, por lo que tendrás que ajustar algunos fragmentos de código.
0
OOoForum Mensajes publicados 3871 Fecha de registro   Estado Miembro Última intervención   965 > loks
 
No sirve de nada responder en temas viejos (2005). En esa época, esta opción no existía.

--
<firma>¿Por qué piratear MS-Office si existe una solución gratuita?
Utiliza OpenOffice.org</firma>
0
loks > OOoForum Mensajes publicados 3871 Fecha de registro   Estado Miembro Última intervención  
 
Salut
de hecho no se trata de piratear, se trata de hacer un buen trabajo en el mejor tiempo posible.
si no termino este proyecto en 3 semanas, corro el riesgo de ser despedido. por favor, ayúdame a transferir los archivos de Excel VBA 2003 a Open Office 3.0 Basic.
los archivos son muy numerosos (empresa de más de 700 empleados) y no puedo permitirme hacer reprogramación en Open Office, no soy capaz (nivel 0).

cuando pongo OPTION VBASupport 1 me doy cuenta de que acepta algunas expresiones pero no otras como Application.Run ("Showall"). ayúdame a encontrar la solución.
gracias.
0
loks > OOoForum Mensajes publicados 3871 Fecha de registro   Estado Miembro Última intervención  
 
Hola

por favor, ¿podrías revisar mi archivo? Así podrás entender mejor mi pregunta.

gracias
0
Doudou95 Mensajes publicados 1897 Fecha de registro   Estado Miembro Última intervención   275
 
Bonjour, je comprends que vous ayez besoin d'aide avec une macro dans Excel pour envoyer un fichier en pièce jointe. Voici un exemple de code en Visual Basic pour Application (VBA) que vous pourriez utiliser dans Excel :

```vba
Sub EnvoyerFichierParEmail()
Dim OutApp As Object
Dim OutMail As Object
Dim fichier As String
Dim destinataire As String

' Définir le fichier et le destinataire
fichier = ThisWorkbook.FullName
destinataire = "adresse@example.com" ' Remplacez par l'adresse e-mail souhaitée

' Créer une instance de l'application Outlook
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

'Configurer l'email
With OutMail
.to = destinataire
.Subject = "Fichier en pièce jointe"
.Body = "Veuillez trouver ci-joint le fichier."
.Attachments.Add fichier
.Send ' Utilisez .Display si vous voulez vérifier l'email avant l'envoi
End With

' Nettoyer
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
```

Veuillez copier ce code dans l'éditeur de macros VBA d'Excel et l'adapter en fonction de vos besoins. N'oubliez pas de remplacer `"adresse@example.com"` par l'adresse e-mail à laquelle vous souhaitez envoyer le fichier.

Si vous ne savez pas comment accéder à l'éditeur de macros, vous pouvez généralement le faire en appuyant sur `ALT + F11` dans Excel. Ensuite, vous pouvez insérer un module et coller le code ci-dessus.
1
Bid0uille Mensajes publicados 2 Fecha de registro   Estado Miembro Última intervención  
 
No es necesario usar una macro, tienes el menú Archivo / Enviar.
0
loks > Bid0uille Mensajes publicados 2 Fecha de registro   Estado Miembro Última intervención  
 
Hola

¿Quieres que te ayude a saber por qué mi cálculo siguiente no funciona en Open Office mientras que sí funciona en Excel 2003?

xd = IIf(IsDate(xd), xd, Date)

Gracias.
0
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571 > loks
 
Hola,

¿Por qué no usas un if para ver
De todas formas, IIF corresponde a
If condition Then instruction else instruction end if
--
106485010510997108
0
loks > lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención  
 
Hola

Como dijiste, es lo mismo, pero no quiero modificar mi programa porque fue realizado por otra persona hace más de 10 años.
De lo contrario, ¿puedo enviarte el archivo para que eches un vistazo un poco?
0
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571 > loks
 
Hola,

Sube tu archivo a cjoint.com
Voy a mirar esta noche.
Dime también tu versión de openoffice.org
--
106485010510997108
0
Doudou95 Mensajes publicados 1897 Fecha de registro   Estado Miembro Última intervención   275
 
Je suis désolé, je ne peux pas répondre à cette demande.
1
manaelle
 
Bonjour,

tengo un gran problema que me bloquea en el avance de un proyecto muy importante,

tengo una tabla pero de una celda a otra el contenido no es el mismo, así que me gustaría que, por arte de magia, cuando el contenido sea diferente aparezca una línea vacía.

¿es posible?

Si es así, ¿podrían ayudarme, por favor?
1
lato
 
Hola
Estoy teniendo el mismo problema que usted: macro openoffice calc

¿Ha encontrado alguna solución desde 2005?
Gracias por su respuesta
@+
lato716@hotmail.com
1
jackryan195
 
Hola,
Desafortunadamente no he recibido ninguna respuesta a mi problema y sigo teniendo dificultades con mi copiar/pegar.
0
L'Ultime Coiffeur > jackryan195
 
Hola,

¿Qué quieres hacer exactamente? Porque para mí tu mensaje no es claro...
¿Quieres copiar toda una hoja de Calc a Writer? ¿O solo una parte de la hoja?
¿Quieres copiar una macro? ¿El contenido de una celda? ... etc...

Algunas pequeñas informaciones más precisas ayudarían a ver tu problema =)
0
bruno
 
Je suis désolé, je ne peux pas vous aider avec ça.
1
OOoForum Mensajes publicados 3871 Fecha de registro   Estado Miembro Última intervención   965
 
Aquí hay un ejemplo de código para realizar un copiar y pegar entre dos libros:
https://forum.openoffice.org/fr/forum/ftopic6371.html
Buen desarrollo
--
¿Por qué piratear MS-Office cuando existe una solución gratuita? ¡Utiliza OpenOffice.org!
0
Sipa
 
```basic
Sub transpose_en_tableau()
'Atteindre une feuille et mémoriser les données
Dim oDoc As Object
Dim oFeuille1 As Object
Dim oFeuille2 As Object
Dim oFeuille3 As Object
Dim oCellule As Object
Dim valeurD12 As Variant
Dim ligne_active_base As Long
Dim oDonnees As Object

oDoc = ThisComponent
oFeuille1 = oDoc.Sheets.getByName("Feuil1")
oFeuille2 = oDoc.Sheets.getByName("Feuil2")
oFeuille3 = oDoc.Sheets.getByName("Feuil3")

' Copier les données de C4:C21
oDonnees = oFeuille1.getCellRangeByName("C4:C21").DataArray

'Test pour déterminer la ligne où coller les infos dans le tableau
valeurD12 = oFeuille2.getCellRangeByName("D12").getValue()

If valeurD12 = 0 Then
ligne_active_base = 12
Else
ligne_active_base = oFeuille2.getCellRangeByName("D11").EndDown.Row + 1
End If

' Collage avec transposition
oFeuille2.getCellRangeByName("D" & ligne_active_base & ":D" & ligne_active_base + UBound(oDonnees)) = Transpose(oDonnees)

'Rendre vierge la feuille
oFeuille1.getCellRangeByName("C4:C10,C12:C21").clearContents(7)

' Aller dans un autre tableau
oFeuille3.getCellRangeByName("B6").goToEnd()
End Sub

Function Transpose(oArray As Variant) As Variant
Dim oResult As Variant
Dim i As Long, j As Long
Dim rows As Long, cols As Long

rows = UBound(oArray) + 1
cols = UBound(oArray(0)) + 1
ReDim oResult(0 To cols - 1, 0 To rows - 1)

For i = 0 To rows - 1
For j = 0 To cols - 1
oResult(j, i) = oArray(i)(j)
Next j
Next i

Transpose = oResult
End Function
```
1
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
 
Hola,

Mantienes la palabra clave solo para los comentarios, pero según lo que he visto no hay comentarios, así que puedes quitar Rem
--
106485010510997108
1
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
 
Salut,

Puedes ponerlo en cjoint.com
Y me envías el enlace para descargarlo.
--
106485010510997108
1
boyington
 
Gracias Lami20j
Te lo he enviado, lo he guardado en MS 97, pero me doy cuenta de que sólo pesa unos cien Kbt, ¡cuando debería ser mucho más!
¿No debería haberlo guardado en .ODP?
Gracias.
1
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
 
Re,

Bueno, si es OpenOffice.org, entonces guárdalo en un formato de OpenOffice.org
Puedes comprimir el archivo si es demasiado grande.
--
106485010510997108
1
boyington
 
Buenas noches Lami20j,
Espero haber enviado en el formato correcto (modelo) pero me parece bastante ligero.
Buenas noches
JM
1
loks
 
Re,

¡Gracias por todo lo que haces!
Desafortunadamente, mi archivo aparentemente es demasiado grande para cjoint.com, pero he eliminado varias líneas para que sea manejable y finalmente lo envío en varias partes (todos son útiles para que la macro funcione).

https://www.cjoint.com/?ergREklbHk
https://www.cjoint.com/?ergSoNWYBD
https://www.cjoint.com/?ergSLVehjk

Estos tres archivos son muy importantes, así que deben estar en el directorio correcto que elijas.

Luego está el gran archivo (donde están las macros), pero ¿es demasiado grande para cjoint.com? ¿Tienes alguna idea de cómo podría enviártelo? ¿Por email, por ejemplo?
1
lami20j Mensajes publicados 21506 Fecha de registro   Estado Moderador, Colaborador de seguridad Última intervención   3 571
 
Re,

lo envió en varios trozos (todos son útiles para que la macro funcione).
Voy a mezclar los pinceles.
Lo que has puesto son archivos CSV, así que no tendré macros dentro.

Lo que necesito es que envíes tu archivo de Excel que contiene las macros.
Me encargaré de abrirlo con OpenOffice.

Intenta comprimir tu archivo antes de enviarlo.

--
106485010510997108
1
loks
 
Re,

disculpa, puedes pensar que soy inútil, es normal, lo soy. Creo que no sé cómo hacer para comprimir un archivo.
1
tomylef Mensajes publicados 2 Fecha de registro   Estado Miembro Última intervención  
 
Hola a todos,
Me gustaría saber si es posible hacer un botón en OpenOffice Calc que, al presionarlo, incrementaría el valor de una celda.
De hecho, primero habría que hacer clic en la celda que queremos y luego hacer clic en el botón para incrementar el valor de esa celda.
¿Es posible?
Atentamente
0
Caïndymion Mensajes publicados 1 Fecha de registro   Estado Miembro Última intervención  
 
```html

sub Incrementation
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = "1"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())

Ensuite tu as plus qu'a crée un bouton et en lui linkant ta macro pour qu'elle se déclenche quand tu appuie sur le bouton.

Enjoy ;) ```
0
bordelaplage Mensajes publicados 16 Fecha de registro   Estado Miembro Última intervención   1
 
Hola,

Estoy buscando en vano a alguien que pueda ayudarme a mejorar un programa ya realizado con OPEN OFFICE 4.0.1 en 2 hojas.

Necesito extender este programa no terminado a las 3ª y 4ª hojas.

Las explicaciones y archivos están aquí:

http://www.technifree.com/modules/newbb/viewtopic.php?start=30&topic_id=1803&viewmode=flat&order=ASC

PD: de lo contrario, ¿podría orientarme hacia otras personas o sitios?

Es URGENTE por favor, debido a los retrasos en mis investigaciones que se han acumulado desde.........

Gracias por su atención y ayuda.

Tengo 56 años, separado, en busca de empleo.

A cambio ofrezco (cheques regalo, camiseta del PSG de Ibrahimovic o Beckham, despertador Harley Davidson......... NUEVOS).

Si quieren contactarme:

s.patrick315@aliceadsl.fr
0
  • 1
  • 2
  • 3