Adapter des macros Excel Windows pour Mac

bigmik

Membre enregistré
15 Avril 2021
4
0
53
Bonjour,

J'ai un document Excel qui fonctionne en Windows avec des macros...

Est-ce quelqu'un peut m'adapter les macros pour que ça fonctionne avec un MacBook Pro, svp ?

Merci
 
Dernière édition par un modérateur:
Euh... Disons qu'on peut t'aider dans tes essais de conversion. Mais ce n'est pas forcément évident. Certaines fonctionnalités utilisées dans le classeur peuvent être "Windows only" et leur adaptation s'avérer très complexe, voire impossible. Et même quand c'est possible, ça peut être un gros chantier (un travail de pro, donc)...

Il faudrait déjà que tu commences par préciser le contexte : Quelle est la version d'Excel que tu utilises ? Quel est son niveau de mise à jour ? Quelle est la version de macOS concernée ? Que font précisément les macros ? Quels problèmes rencontres-tu exactement avec ce classeur ?
 
Bonjour,

J'apprécie grandement votre aide car je suis nul dans les macros
  1. le document fonctionne très bien en Windows donc aucun souci de ce côté
  2. version Mac Big Sur 11.2.3
  3. est-ce que je peux attacher mon fichier Excel en pj ?... lorsque j'essaie, ça ne fonctionne pas
  4. description du fonctionnement des macros à venir si je ne peux joindre mon fichier
Merci
 
Dernière édition par un modérateur:
Non, on ne peut pas mettre de pièces jointes sur le forum. Par ailleurs, tu ne précises pas de quelle version d'Excel il est question et en quel niveau de mise à jour. C'est un point important.

Que faut-il comprendre par "ça ne fonctionne pas" ? Peux-tu décrire ce que c'est censé faire, ce que tu observes, les éventuels messages d'erreur,... ?
 
version excel 16.48

il n'y a pas d'erreurs proprement dit quand on active les boutons...il ne se passe simplement rien en excel pour mac

il y un bouton pour imprimer sur l'imprimante, un bouton pour générer un pdf, un bouton pour faire une nouvelle facture et
un bouton de validation qui lui envoie la facture dans une autre feuille excel qui s'appelle archive qui complie toutes les factures faites...

voici la facture :

1618525138153.png

voici archive :

1618525191150.png

voici ce que j'ai trouvé dans le fichier si ça peut aider...

Bloc de code:
Private Sub btnEnrPDF_Click()
    Dim nomF As String
    nomF = "C:\Factures\F" & Format([E4], "yyyy-mm-dd") & "_" & [E5] & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nomF, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub


Private Sub CommandButton1_Click()
 Range("v2:CT2").Select
    Selection.Copy
    Sheets("Archives").Select
    ligne = ActiveSheet.Cells(1, 1) + 1
    ActiveSheet.Cells(ligne, 6).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Selection.Columns.AutoFit
    ActiveSheet.Cells(ligne, 1) = ActiveSheet.Cells(1, 3)
    numero = ActiveSheet.Cells(1, 3)
    ActiveSheet.Cells(1, 3) = ActiveSheet.Cells(1, 3) + 1
   ActiveSheet.Columns("C:Ch").Select
    Selection.ColumnWidth = 15
    Call Sommaire
    ActiveSheet.Cells(2, 2).Select
    Sheets("Facture simple").Select
    Cells(5, 2).Select
    Cells(5, 5) = numero
End Sub

Private Sub CommandButton2_Click()
    Range("B1:F48").Select
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = "$B$1:$M$48"
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.511811023622047)
        .RightMargin = Application.InchesToPoints(0.511811023622047)
        .TopMargin = Application.InchesToPoints(0.511811023622047)
        .BottomMargin = Application.InchesToPoints(0.511811023622047)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperLetter
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 75
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = False
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    ' ou
'    Selection.PrintOut Copies:=1, Collate:=True
    Range("A29").Select
End Sub

Private Sub CommandButton3_Click()
Range("B18:E34").Select
    Range("B18").Activate
    Application.CutCopyMode = False
    Selection.ClearContents
    Cells(10, 2).Select
End Sub

merci à ceux qui regarderont et qui m'aideront
 
Dernière édition par un modérateur:
A priori, les boutons correspondent à des contrôles ActiveX qui sont "Windows only". Il te faut les remplacer par des boutons que tu trouveras dans l'onglet "Développeur" du conteneur et qui te permettront de lancer les macros (qu'il faut renommer, pour le coup). Voir par ici quelques explications.

À vue de nez, les macros ne devraient pas poser de problème particulier, par contre. Du moins celles qui sont là. Il semble y en avoir d'autres (dans le code de la deuxième macro, il est fait appel à une macro "Sommaire", sauf erreur).

Dans la première macro, le chemin d'accès "C:\Factures\F" est évidemment inutilisable dans une version pour Mac, il te faudra l'adapter, quelque chose du genre /Users/ton nom/Documents/F...