Macro instable sous MAC OS X

Bonjour,

Je ne suis pas très doué en VBA aussi je résous généralement la chose en en restant à des choses très basiques. J'ai un problème avec un fichier qui tourne parfaitement sous Windows et qui se révèle très instable sous MAC OS : fermeture intempestive d'Excel lors d'un "double clic" (cf macro ci-dessous), erreur d'éxécution 438 lors de l'ouverture du fichier, blocage lors de l'enregistrement, ...

Pourtant j'ai l'impression que mes macros ne cassent pas 3 pattes à un canard... Quelqu'un a une idée de comment je peux résoudre mon problème ? Merci d'avance pour votre aide!

J'ai dans mon onglet "Feuille1", la macro suivante:

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

'Inserer une ligne formatee au-dessus sur double clic

Cancel = True

If Target = "Double clic pour insertion" Then

Target.EntireRow.Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    ActiveCell.Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "Nouvelle ligne"

    ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select
    Selection.Copy
    ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

On Error Resume Next

End If

End Sub

et dans Workbook, la macro suivante :

Private Sub Workbook_Open()
'Reglage des parametres de groupage/degroupage sur le classeur en mode protege
For i = 1 To Worksheets.Count
    With Worksheets(i)
      .Unprotect Password:="zmqq64qK"
      .EnableOutlining = True
      .Protect Password:="zmqq64qK", contents:=True, userInterfaceOnly:=True
      .Outline.ShowLevels RowLevels:=1
    End With
Next i

'Reglage de la duree d'enregistrement automatique a X minutes
With Application.AutoRecover
        .Enabled = True
        .Time = 2
End With

Sheets(1).Select

End Sub

Et c'est tout, sinon juste des calculs un peu avancé dans les feuilles mais rien d'extraordinaire.

Personne n'a d'idées ?

J'aurai vraiment besoin de l'aide d'un grand manitou svp!

Bonjour,

Mets donc un fichier... !

Le fichier est ci-joint. ça marche nickel sous windows mais ça plante apparemment systématiquement sous mac, avec en plus des comportements variables. ça à l'air majoritairement de fonctionner après la première ouverture mais de bugguer ensuite.

J'ai fait plein de retouches en récupérant des remarques à droite à gauche sur les problèmes liés à Mac mais ce n'est pas encore concluant. J'ai même à force de simplifier des effets kisscool inattendus... J'envoie le mdp en MP.

Merci d'avance!

If Target = "Double clic pour insertion" Then

Cette (ou ces) cellule(s) se trouve(nt) où ?

sur le premier onglet "Tresorerie", à la fin de chaque bloc "groupé" (à ouvrir avec le "+")

J'avais réécrit ta proc. (code ressemblant un peu plus à du VBA ! )... Pas de difficulté pour l'insertion, mais désorganisation des groupes qui ne suivaient pas... Je ne désepérais pas d'aboutir à une reconstruction complète efficace et sans anomalie mais il apparaît finalement que c'est le mode d'insertion qui provoque ce désordre... On va donc réécrire en conséquence et là je pense que cela devrait fonctionner sans anomalie...

A+

Merci MFerrand. Je suis désolé mais je n'en suis même pas à bien comprendre ce que je fais en Vba mais j'essaye de trouver un bout de code le plus semblable à ce dont j'ai besoin et puis j'adapte. Souvent, ça suffit... Mais là le truc qui fonctionne sous windows mais pas sous mac...

Dans ce que j'ai constaté, ça dysfonctionnait aussi sous Windows... Mais c'est vrai que sur Mac on est toujours un peu face à des rébus, surtout quand on ne travaille pas sur Mac...

L'idée d'insérer la ligne par insertion de copie n'est pas départ une mauvaise idée, elle économise quelques manipulations (et écrite en cadrant la ligne insérée et un peu autrement que ne le fait l'enregistreur, la procédure était tout à fait efficace). Mais visiblement elle ne fait pas bon ménage avec les groupages de lignes...

Je n'ai pas été au bout de mes tests de reconstruction des groupes, il me restait à essayer le dégroupage global, suivi de la reconstruction complète (les retouches partielles me laissant subsister des anomalies à chaque fois), ce sera pour une autre fois...

Je te demanderai de patienter un petit peu car, c'est l'heure de s'occuper du repas... A+

A essayer donc :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim n%
    If Target = "Double clic pour insertion" Then
        n = Target.Row
        Me.Unprotect "zmqq64qK"
        Me.Rows(n).Insert
        With Me.Range("A" & n)
            .Value = "Nouvelle ligne"
            .Offset(-1, 3).Copy .Offset(, 3)
            With .Resize(, 3).Borders
                .LineStyle = xlContinuous: .Weight = xlThin
            End With
        End With
        Me.Protect "zmqq64qK"
        Cancel = True
    End If
End Sub

Je n'ai pas de mac donc je ne peux pas tester en direct mais j'attends la réponse avec impatience... je n'ai a priori pas de doute vu ta compétence sur le sujet.

Je peux assurer que ça marche sur PC, mais (expérience) je ne m'engagerai pas sur Mac avant test...

Les retours sont positifs grand Manitou

Merci pour tout

Tant mieux ! parce que...

Rechercher des sujets similaires à "macro instable mac"