Macro qui fonctionne sous PC mais pas sous MAC
Valérie
-
Mike-31 Messages postés 19571 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 19571 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai fait la macro suivante qui permet de générer une facture au format PDF et de l'enregistrer dans un fichier
Sub Bouton51_Cliquer()
' EnregistrementAutomatique Macro
Info1 = Range("C24")
If MsgBox("Avez-vous pensé à générer un nouveau numéro de facture ?", vbYesNo, "MNS Vous Informe") = vbYes Then
Chemin = ThisWorkbook.Path & "\Factures au Format PDF\"
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=Chemin & Info1 & "-" & ".Pdf", _
Quality:=x1QualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
From:=1, To:=1, _
OpenAfterPublish:=True
End If
End Sub
Mon problème est que nous travaillons à plusieurs dont une collègue qui est sous MAC et la macro ne fonctionne pas pour elle seulement. Elle a le message d'erreur suivant "Erreur 1004" Erreur définie par l'application ou par l'objet
Pouvez-vous m'aider SVP
Merci beaucoup
J'ai fait la macro suivante qui permet de générer une facture au format PDF et de l'enregistrer dans un fichier
Sub Bouton51_Cliquer()
' EnregistrementAutomatique Macro
Info1 = Range("C24")
If MsgBox("Avez-vous pensé à générer un nouveau numéro de facture ?", vbYesNo, "MNS Vous Informe") = vbYes Then
Chemin = ThisWorkbook.Path & "\Factures au Format PDF\"
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=Chemin & Info1 & "-" & ".Pdf", _
Quality:=x1QualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
From:=1, To:=1, _
OpenAfterPublish:=True
End If
End Sub
Mon problème est que nous travaillons à plusieurs dont une collègue qui est sous MAC et la macro ne fonctionne pas pour elle seulement. Elle a le message d'erreur suivant "Erreur 1004" Erreur définie par l'application ou par l'objet
Pouvez-vous m'aider SVP
Merci beaucoup
A voir également:
- Macro qui fonctionne sous PC mais pas sous MAC
- Pc qui rame - Guide
- Mon pc s'allume mais ne démarre pas windows 10 - Guide
- Reinitialiser pc - Guide
- Adresse mac - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
4 réponses
Bonjour,
Bizarre que le code fonctionne avec Bouton51, tu utilises bien le bouton ActiveX et tu colles le code
Private Sub CommandButton1_Click()
End Sub
sinon tu crées un module dans le Visual Basic puis une macro
exemple
Sub Facture()
End Sub
tu colles le code et clic droit sur le bouton/Affecter une macro et tu pointes sur le titre du code Facture
Info1 = Range("C24")
Chemin = ThisWorkbook.Path & "\Factures au Format PDF\"
If Dir(Chemin & Info1 & "-" & ".Pdf") = "" Then
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=Chemin & Info1 & "-" & ".Pdf", Quality:=x1QualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, _
To:=1, OpenAfterPublish:=True
Else
MsgBox "Veuillez générer un nouveau numéro de facture en C24", , _
"La facture " & Info1 & "-" & ".Pdf" & " existe déjà dans le répertoire"
End If
[C24].Select
es ce que le fichier qui contient le code VBA est dans le même répertoire ou au même niveau que le dossier Factures au Format PDF
A+
Mike-31
Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Bizarre que le code fonctionne avec Bouton51, tu utilises bien le bouton ActiveX et tu colles le code
Private Sub CommandButton1_Click()
End Sub
sinon tu crées un module dans le Visual Basic puis une macro
exemple
Sub Facture()
End Sub
tu colles le code et clic droit sur le bouton/Affecter une macro et tu pointes sur le titre du code Facture
Info1 = Range("C24")
Chemin = ThisWorkbook.Path & "\Factures au Format PDF\"
If Dir(Chemin & Info1 & "-" & ".Pdf") = "" Then
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=Chemin & Info1 & "-" & ".Pdf", Quality:=x1QualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, _
To:=1, OpenAfterPublish:=True
Else
MsgBox "Veuillez générer un nouveau numéro de facture en C24", , _
"La facture " & Info1 & "-" & ".Pdf" & " existe déjà dans le répertoire"
End If
[C24].Select
es ce que le fichier qui contient le code VBA est dans le même répertoire ou au même niveau que le dossier Factures au Format PDF
A+
Mike-31
Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Bonjour Mike
Les deux fichiers celui qui contient le code et là ou j'enregistre sont dans le même répertoire.
Merce
Les deux fichiers celui qui contient le code et là ou j'enregistre sont dans le même répertoire.
Merce
Bonjour à tous,
Mac n'utilise pas le même séparateur pour les chemins : et non \
Reconstruit-les en utilisant Application.Path.Separator
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Mac n'utilise pas le même séparateur pour les chemins : et non \
Reconstruit-les en utilisant Application.Path.Separator
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Bonjour,
Ah oui c'est vrai, et je n'ai plus de mac sous la main pour tester
essaye voir mes souvenirs avec ce bout de code pour simplement ouvrir un fichier existant dont tu mettras le nom en cellule C24
si ça marche on gérera l'erreur pour que le code fonctionne sur les deux types d'ordinateur
Ah oui c'est vrai, et je n'ai plus de mac sous la main pour tester
essaye voir mes souvenirs avec ce bout de code pour simplement ouvrir un fichier existant dont tu mettras le nom en cellule C24
Dim MonChemin As String
Info1 = Range("C24")
MonChemin = ThisWorkbook.Path & Application.PathSeparator
ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=x1TypePDF, _
Filename:=MonChemin & Info1 & "-" & ".Pdf", Quality:=x1QualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, _
To:=1, OpenAfterPublish:=True
si ça marche on gérera l'erreur pour que le code fonctionne sur les deux types d'ordinateur