Aide pour convertir macro Excel dans Calc

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
loeki
Fraîchement OOthentifié
Messages : 4
Inscription : 13 déc. 2006 11:13

Aide pour convertir macro Excel dans Calc

Message par loeki »

Bonjour,

Un ami m'a fait une macro sur excel pour colorier des colonnes en fonction du contenu dans une ligne car je ne programme pas.
Mais quand j'ouvre le fichier avec calc, la macro ne marche pas et d'après ce qu'il m'a dit, c'est que calc ne comprend pas le langage VBA et qu'il faut le convertir.
Est-ce que vous pouvez m'aider ? Voilà en quoi ça consiste.

En fait,c'est un tableau que je compte copier-coller 12 fois pour les 12 mois de l'année sur 12 onglets.
A partir de la ligne 9, j'ai pour tous les jours une MeFC avec 3 critères avec "x" pour un congé, "i" pour un indisponible, et "mo" ou "bs" pour malade ou blessé.
Le but final : quand je rentre le cycle de travail dans la ligne 3, alors les colonnes où il y a repos1 "R1" ou repos2 "R2" se grisent automatiquement.

Voilà la macro Excel :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If ActiveCell.Row = 3 Or ActiveCell.Row = 4 Then
temp = ActiveCell.Address
For col = 2 To 32
If Cells(3, col) = "R1" Or Cells(3, col) = "R2" Then
Columns(col).Select
With Selection.Interior
.ColorIndex = 48
.PatternColorIndex = xlAutomatic
End With
Else
Columns(col).Select
With Selection.Interior
.ColorIndex = xlNone
.PatternColorIndex = xlAutomatic
End With
End If
Next
Range(temp).Select
End If

End Sub
OpenOffice 2.0.4 Windows XP
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Message par Pierre-Yves Samyn »

Bonjour

Je te renvoie à ma réponse (qui n'engage que moi...)

http://user.services.openoffice.org/fr/ ... 7732#17732
loeki
Fraîchement OOthentifié
Messages : 4
Inscription : 13 déc. 2006 11:13

Message par loeki »

Ma macro dans excel, consiste à griser toute une colonne à partir du moment où il y a "R1" ou "R2" dans la cellule. Je ne peux plus utiliser de mise en forme conditionnelle car j'ai déjà 3 arguments de pris pour d'autres fonctions.
Mon souci est que je sais pas programmer, et que je trouve le langage openoffice bien plus compliqué que le langage vba. Donc je n'ai pas réussi à convertir la macro excel en starbasic.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If ActiveCell.Row = 3 Or ActiveCell.Row = 4 Then
temp = ActiveCell.Address
For col = 2 To 32
If Cells(3, col) = "R1" Or Cells(3, col) = "R2" Then
Columns(col).Select
With Selection.Interior
.ColorIndex = 48
.PatternColorIndex = xlAutomatic
End With
Else
Columns(col).Select
With Selection.Interior
.ColorIndex = xlNone
.PatternColorIndex = xlAutomatic
End With
End If
Next
Range(temp).Select
End If

End Sub

Donc si quelqu'un est capable de faire la traduction, et que ça fonctionne, eh bien chapeau !
_________________
OpenOffice 2.0.4 Windows XP
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17197
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Message par jeanmimi »

Bonjour,

Je ne sais pas si tu vais fait une recherche avant, mais il y a des exemples que tu peux utiliser en les modifiant, comme celui-ci qui es très proche :
http://user.services.openoffice.org/fr/ ... ml+cellule
LibreOffice : Version : 25.8.2.2 (x64)(2 novembre 2025)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
loeki
Fraîchement OOthentifié
Messages : 4
Inscription : 13 déc. 2006 11:13

Message par loeki »

T'es marrant toi, mais je n'y comprend rien au langage openoffice.

y'a pas un programme qui fait une traduction de VBA en starbasic ?
OpenOffice 2.0.4 Windows XP
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12740
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Message par Bidouille »

loeki a écrit :T'es marrant toi, mais je n'y comprend rien au langage openoffice.
Non, il n'y a pas de marrant ici. Juste des bénévoles qui consacrent du temps à vous répondre et qui vous donnent des pistes pour vous aider.
loeki a écrit :y'a pas un programme qui fait une traduction de VBA en starbasic ?
Il existe un programme de conversion mais ce dernier est disponible uniquement dans la version payante distribué par Sun avec StarOffice ou par Novell.
http://user.services.openoffice.org/fr/ ... ovell.html

Maintenant, la programmation de macro nécessite un minimum d'effort. Personne ici ne peut le faire à votre place.
Avatar de l’utilisateur
chater
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 237
Inscription : 21 févr. 2006 13:43
Localisation : Paname

Message par chater »

loeki a écrit :Mon souci est que je sais pas programmer, et que je trouve le langage openoffice bien plus compliqué que le langage vba. Donc je n'ai pas réussi à convertir la macro excel en starbasic.
La philosophie du OOo Basic est plus orientée objet. Cela a l'inconvénient d'être rebutant mais ce n'est pas plus compliqué.

Et pour compléter ce que t'on dit les autres, il y a cette excellent Wiki :
http://wiki.services.openoffice.org/wik ... t_basic_fr

Même en débutant, tu devrais t'en sortir.
OOo 3.1 officielle sous Ubuntu 9.04

Pensez à aider les autres en répondant à leurs questions.