

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
13 messages in org.openoffice.fr.progRe: [prog] conversion macro excel ve...| From | Sent On | Attachments |
|---|---|---|
| jacques23270 | May 28, 2007 8:28 am | |
| Bob | May 28, 2007 9:44 am | |
| SEGUIN François | May 28, 2007 9:48 am | |
| Jacques | May 28, 2007 10:48 am | |
| Bob | May 28, 2007 1:02 pm | |
| Bob | May 28, 2007 3:29 pm | |
| SEGUIN François | May 28, 2007 11:09 pm | |
| Jacques | May 29, 2007 10:40 am | |
| Bob | May 29, 2007 1:13 pm | |
| Bob | May 29, 2007 1:22 pm | |
| c.ma...@univitis.fr | May 29, 2007 11:14 pm | |
| steve | Jun 1, 2007 12:25 am | |
| Francois Gatto | Jun 1, 2007 4:17 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] conversion macro excel vers Open | Actions... |
|---|---|---|
| From: | Bob (mlo...@bobiciel.com) | |
| Date: | May 28, 2007 1:02:44 pm | |
| List: | org.openoffice.fr.prog | |
j'ajoute une ébauche de code
Bob a écrit :
Bonjour Jacques,
Au lieu d'imbriquer des boucles et des switch, amha, tu dois pouvoir t'en sortir beaucoup plus efficacement avec des noms de styles bien choisis.
Tu nommes 35 styles de la façon suivante : - Planning_toto - Planning_titi - Planning_tutu - ...
où toto, titi, tutu et les 32 suivants représentent les différentes valeurs que tu peux trouver dans tes 969 cellules de planning.
ta macro sera donc réduite à :
si le syle ("Planning" & ContenuCellule ) existe alors StyleCellule = "Planning" & ContenuCellule
Ce qui donne en OOoBasic en adaptant l'exemple Code12-01 page 353 du livre de Bernard et Laurent :
<------------ DEBUT_CODE ------------>
function Formatage_conditionel_a_ma_facon(Nom_de_la_zone as string) as string
Dim controleur As Object, maFeuille As Object Dim sel As Object, listeCell As Object, selectionCell As Object Dim uneCellule As Object, enumCellules As Object
controleur = ThisComponent.CurrentController maFeuille = controleur.ActiveSheet sel = maFeuille.getCellRangeByName(Nom_de_la_zone) selectionCell = sel.queryContentCells(com.sun.star.sheet.CellFlags.STRING + com.sun.star.sheet.CellFlags.VALUE) enumCellules = selectionCell.getCells listeCell = enumCellules.CreateEnumeration Do While listeCell.hasMoreElements uneCellule = listeCell.nextElement ' print uneCellule.CellStyle & " --> " & "Style_pour_valeur_" & uneCellule.String uneCellule.CellStyle = "Style_pour_valeur_" & uneCellule.String ' uneCellule.CellStyle = "StyleTest" Loop
Formatage_conditionel_a_ma_facon = ""
end function
<------------ FIN_CODE ------------>
L'idée ensuite, c'est de remplacer le passage de paramètre sous forme string par un passage de la zône sous forme d'objet. mais ça, je n'ai pas trouvé comment faire. Il suffirait ensuite de saisir dans une cellule de ton classeur la formule suivante pour que le formatage de tes cellules soit automatique :
= Formatage_conditionel_a_ma_facon(Zone_a_formater)
Une modification du contenu d'une cellule de la Zone_a_formater devrait normalement lancer automatiquement le formatage.
a+
Bob
Tu appeleras ensuite cette macro de façon séquentielle pour chaque cellule de ton champ Planning, ou mieux encore : de façon évènementiel à chaque changement de contenu d'une cellule de ce champ.
rmq : pour l'appel évènementiel, je n'ai jamais fait, mais il me semble avoir compris que c'était possible.
Donc en résumé, ça revient à faire un formatage conditionnel avec le nom du style calculé par une formule. Dommage que cette fonctionnalité ne soit pas intègrée à OOo, ce serait un plus par rapport à la concurence ;-)
En espèrant t'avoir aidé
Bob
jacques23270 a écrit :
Bonjour, Suite à un transfert de fichiers d’Excel vers Calc, j’ai un problème de conversion de macro. La macro sous Excel permet de mettre en couleur les cellules d’un planning de 969 cases en fonction du contenu de la case et des infos d’une autre feuille contenant les codes couleurs et les différents textes servant à la comparaison (35 infos différentes). Cela donne sous excel, le code suivant : Option Explicit Sub mise_en_couleur() Dim Compt_colonne, Compt_ligne, Spinner, Strings, i, texte1, li, col, colo, ColorIndex As Integer Dim msg, Style, Title, Réponse, MaChaine msg = "Cette procédure dure de 30 à 60 secondes, Voulez-vous la lancer ?" ' Définit le message. Style = vbYesNo ' Définit les boutons. Title = "Mise en couleur du planning année" ' Définit les titres. ' Affiche le message. Réponse = MsgBox(msg, Style, Title) If Réponse = vbYes Then ' L'utilisateur a choisi le bouton Oui. MaChaine = "Oui" ' Accomplit une action. 'mise en couleur Sheets("4-plan-année").Select ActiveSheet.Unprotect Range("F7").Select li = 6 col = 5 For i = 1 To 35 Sheets("3-Récapitulatif année").Select Cells(li, col).Activate Strings = ActiveCell.Value Sheets("3-Récapitulatif année").Select Cells(li, (col - 4)).Activate texte1 = ActiveCell.Value Sheets("4-plan-année").Select For Compt_colonne = 6 To 25 For Compt_ligne = 7 To 58 If Cells(Compt_ligne, Compt_colonne) = Strings Then Cells(Compt_ligne, Compt_colonne).Interior.ColorIndex = texte1 End If Next Next li = li + 1 Next End If Range("F7").Select End Sub
Mon problème est de passer cette macro sous Calc. Quelqu’un peut-il m’aider ? d’avance merci







