comment utiliser ALT-CTRL pour exécuter une macros sur le premier doc.

Le
pellet15
Bonjour à tous

J'ai un fichier(insp.xls) excel que j utilise sur un IPAD ,

je voudrait utiliser une Macros qui s'exécuterais a partir
d'un autre fichier Excel(Principal.xls) pour ne pas enregistrer
de Macros sur le Ipal.

La macros que j'ai fait:

Copier la page du fichier Excel en PDF et l'envoie par email.

Voici la Macros = Sub PrintPDF()


Function Printe(Row As Long, Colonne As Integer)
Dim name As String
Dim VV As String
If InStr(ActiveSheet.Range("E1"), "visuelle") > 0 Then
VV = "Visuelle"
Else
VV = "Détaillé"
End If
name = ActiveSheet.Range("B4") & " - " & ActiveSheet.Range("I9") & " - I=
nspection " & VV & " - " & ActiveSheet.Range("I2") & ".pdf"
ActiveSheet.ExportAsFixedFormat xlTypePDF, ActiveWorkbook.Path & "" & nam=
e
End Function

Function SendEmail()
Dim oBjMail
Dim name As String
Dim name2 As String
Dim ObjOutlook As New Outlook.Application
name2 = ActiveSheet.Range("I9") & " - " & ActiveSheet.Range("B4") & "=
- Inspection " & VV & ActiveSheet.Range("I2")
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
If InStr(ActiveSheet.Range("E1"), "visuelle") > 0 Then
VV = "Visuelle"
Else
VV = "Détaillé"
End If
name = ActiveSheet.Range("B4") & " - " & ActiveSheet.Range("I9") & " =
- Inspection " & VV & " - " & ActiveSheet.Range("I2") & ".pdf"
If name = "" Then
Exit Function
End If
With oBjMail
.To = ActiveSheet.Range("F7")
.CC = ActiveSheet.Range("G9")
.BCC = ActiveSheet.Range("G10")
.Subject = name2
.Body = "Bonjour " & WorksheetFunction.Proper(ActiveSheet.Range("=
F5")) & Chr(10) & Chr(10) & "Voici le rapport du mois de " & Format(Active=
Sheet.Range("I2"), "mmmm") & "." & Chr(10) & Chr(10) & "Salutations," & Chr=
(10) & Chr(10) & "Rail Cantech" & Chr(10) & "650, Boul. Lionel-Boulet" & Ch=
r(10) & "Varennes (Québec), J3X 1P7" & Chr(10) & "T: 450-652-3010 #286=
" & Chr(10) & "F: 450-652-5250"
.Attachments.Add ActiveWorkbook.Path & "" & name
.Display
End With
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Function

Sub PrintPDF()
Dim Colonne As Integer
Colonne = 13
Dim DernLigne As Long
DernLigne = Range("I" & Rows.Count).End(xlUp).Row
Call Printe(DernLigne + 1, Colonne)
Call SendEmail
End Sub


Merci
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #26544703
Bonjour,
J'ai un iPad, mais je ne sais pas si Excel sur cet iPad est capable de
Macro. Si c'est le cas, voici quelques explications sur la manière
d'appeler une macro d'un autre classeur qu'il soit ouvert ou fermé.
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose, mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Classeur fermé
Dim LaMacro As String
LaMacro = "'" & "CheminEtNomClasseur.xls" & "'!test1"
Application.Run LaMacro
Le classeur ouvert ne nécessite pas d'inscrire le chemin du classeur.
C) Si la macro appelée est dans un module feuille du classeur au lieu
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille"
que tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
MichD
pellet15
Le #26544717
Le dimanche 26 avril 2020 12:54:19 UTC-4, MichD a écrit :
Bonjour,
J'ai un iPad, mais je ne sais pas si Excel sur cet iPad est capable de
Macro. Si c'est le cas, voici quelques explications sur la manière
d'appeler une macro d'un autre classeur qu'il soit ouvert ou fermé.
A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve d ans un
module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"
Même chose, mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"
B ) Si le nom de ton classeur contient des espaces :
L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Classeur fermé
Dim LaMacro As String
LaMacro = "'" & "CheminEtNomClasseur.xls" & "'!test1"
Application.Run LaMacro
Le classeur ouvert ne nécessite pas d'inscrire le chemin du classeur .
C) Si la macro appelée est dans un module feuille du classeur au lie u
d'être dans un module Standard :
Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuill e"
que tu retrouves dans la fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est
affichée dans ce format : "toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suivante, tu dois utiliser le nom de la feuille et non
de l'onglet de la feuille
Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"
Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
MichD


Bonjour MichD
cela ne fonctionne pas bien,
il fait un PDF de la mauvaise feuil dans le email...
J'airais aimer en premier ouvrir le classeur en arrière plan "numeros_ 1.xls"
(celui qui porte la macro)
et après avoir ouvert le classeur "numeros_2.xls" que je veut faire un PDF puis l'envoyé par email, utiliser une touche combiner assigner a la macro.
ce qui me donnerais le PDF du "numeros_2.xls"
Merci
Publicité
Poster une réponse
Anonyme