Macro

Bonjour à tous,

Contraint de passer à Libre Office, j'ai dans un de mes classeurs, importé d'Excel, une marco qui ne fonctionne plus du tout.

Cette macro avait pour fonction d' insérer la lettre û par un double clic dans une cellule de la colonne P qui formatée en vingding donne une croix.

Annulation par nouveau double clic sur la cellule en cas d'erreur.

Si une âme charitable pouvait me communiquer un code qui remplirait cette fonction dans un classeur LibrO Calc ça me sortirait bien d'affaire car je n'ai aucune connaissance en basic pour LibrO.

Merci d'avance à ceux qui voudrons bien consacrer un peu de leur temps pour venir à mon secours. Je suis bien conscient que je demande un service sans pouvoir rien donner en échange et ai l'air de venir faire mon marché mais pour l'instant je n'ai pas d'autre moyen.

Bien cordialement.

Bonjour,

Regardes ici :

Bonjour à tous, Bonjour Patrice33740,

Merci pour ta réponse rapide, je n'avais pas trouvé en cherchant sur ce forum, donc merci de ton lien,

Je vais tenter d'adapter les pistes que tu m'a indiqué à mon classeur.

Je reviens dire si je m'en suis sorti (ça va peut être prendre un certain temps... ) et si le sujet est résolu.

Encore une fois merci de m'avoir lu et pris en compte ma demande d'aide.

La réponse est bien plus rapide que je pensais : c'est trop complexe pour mes connaissances.

donc problème non résolu pour l'instant

Bonjour,

Peux-tu poster le code de la macro Excel à traduire ?

Bonjour, Patrice33740

Merci de l’intérêt que tu porte à mon problème,

J'ai été présomptueux de croire que je pourrais bidouiller cela tout seul.

Voilà le code qui fonctionne dans Excel.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

temp = Array("û", "")

If Not Application.Intersect(Target, Range("H5:H75 ")) Is Nothing Then

With Target

p = Application.Match(Target, temp, 0)

If Not IsError(p) Then

If p = UBound(temp) + 1 Then p = 0

Else

p = 0

End If

Target = temp(p)

Cancel = True

End With

End If

End Sub

Je ne sais si il y a possibilité de le convertir ???

Bonjour,

Copies cette macro dans les macros de ton classeur

Outils / Macros / Gerer les macros / Libre Office Basic / sélectionner le classeur, Nouveau : Module 1/Coller le code ci-dessous à la place de Sub Main End Sub

REM  *****  BASIC  *****

Function dblClicColonneP(oEvent) As Boolean
' Double clic colonne P : mettre / enlever une croix (wingdings) dans la cellule
'
 Dim adr As New com.sun.star.table.CellAddress

    dblClicColonneP = FALSE
    If oEvent.supportsService("com.sun.star.table.Cell") then
        ' uniquement si double clic sur une cellule
        adr = oEvent.CellAddress 
        If adr.Column = 15 And adr.Row >=4 And adr.row <=74 Then ' plage P5:P75 
               If oEvent.String = "" Then oEvent.String = "ü" Else oEvent.String = ""
            dblClicColonneP = TRUE  ' équivalent de Cancel en VBA
        End If
    End If

End function

Puis tu l'affecte à l'évènement DoubleClic de la feuille : Cilc droit sur l'onglet de la feuille / Évènements de la feuille ... / sélectionner Double Clic / Macro /sélectionner la macro dans les macros du classeur.

Merci beaucoup, mais il y a confusion dans l'adresse de la colonne et en fait, je me suis mal expliqué : cette macro doit s'appliquer aux 10 pages de mon classeur sur la colonne H cellules H5 à H75, une cellule à la fois évidement. J'ai essayé de remplacer par h dans ton code ainsi que la position des cellules mais sans résultat. Autre question peut il y avoir plusieurs macro dans le même module ou faut il créer un nouveau module ?

Merci de ton aide car grâce à ton aide je suis sur le point d'aboutir après avoir longtemps cherché mais ca ne supporte pas l'a peu près.

Cordialement.

Merci, Patrice33740

J'ai réussi à adapter ton code, il ne fonctionnait pas car je l'avais copié à la suite d'une autre macro présente dans le module 1

Avec un module 2 tout semble fonctionner je teste et te tiens au courant.

Encore, merci pour ta disponibilité auprès d'un bidouilleur pas très doué.

Cordialement

Je viens de procéder aux tests et grâce à ta collaboration tout est OK et conforme à ce que je recherchais.

A nouveau un grand merci et à charge de revanche, mais bon ! je doute que ce ne soit avant longtemps....

Cordialement.

Rechercher des sujets similaires à "macro"