Bonjour MichD, Le module concerne est bel et bien était copier dans le nouveau fichie r créé. Mais l’étape de l'activation des macros dans ce fichier. Parce que #name? est toujours présence, et il faut que clique sur F9 p our voir afficher le résultat de la fonction Convertir() de la date.
Bonjour MichD,
Le module concerne est bel et bien était copier dans le nouveau fichie r créé.
Mais l’étape de l'activation des macros dans ce fichier.
Parce que #name? est toujours présence, et il faut que clique sur F9 p our voir afficher le résultat de la fonction Convertir() de la date.
Bonjour MichD, Le module concerne est bel et bien était copier dans le nouveau fichie r créé. Mais l’étape de l'activation des macros dans ce fichier. Parce que #name? est toujours présence, et il faut que clique sur F9 p our voir afficher le résultat de la fonction Convertir() de la date.
Apitos
Bonjour MichD, Le module concerné est bel et bien était copier dans le nouveau f ichier créé. Mais reste l’étape de l'activation des macros dans ce fichier. Parce que #name? est toujours présente, et il faut cliquer sur F9 pour voir afficher le résultat de la fonction Convertir() de la date.
Bonjour MichD,
Le module concerné est bel et bien était copier dans le nouveau f ichier créé.
Mais reste l’étape de l'activation des macros dans ce fichier.
Parce que #name? est toujours présente, et il faut cliquer sur F9 pour voir afficher le résultat de la fonction Convertir() de la date.
Bonjour MichD, Le module concerné est bel et bien était copier dans le nouveau f ichier créé. Mais reste l’étape de l'activation des macros dans ce fichier. Parce que #name? est toujours présente, et il faut cliquer sur F9 pour voir afficher le résultat de la fonction Convertir() de la date.
Apitos
Bonjour MichD, Le module concerné est bel et bien été copié dans le no uveau fichier créé. Mais reste l’étape de l'activation des macros dans ce fichier. Parce que #name? est toujours présente, et il faut cliquer sur F9 pour voir afficher le résultat de la fonction Convertir() de la date.
Bonjour MichD,
Le module concerné est bel et bien été copié dans le no uveau fichier créé.
Mais reste l’étape de l'activation des macros dans ce fichier.
Parce que #name? est toujours présente, et il faut cliquer sur F9 pour voir afficher le résultat de la fonction Convertir() de la date.
Bonjour MichD, Le module concerné est bel et bien été copié dans le no uveau fichier créé. Mais reste l’étape de l'activation des macros dans ce fichier. Parce que #name? est toujours présente, et il faut cliquer sur F9 pour voir afficher le résultat de la fonction Convertir() de la date.
Apitos
Voila le code de test.xlsm : '----------------------------------------- Dim Chemin Sub Publipostage() ' Publipostage Macro Application.ScreenUpdating = False Chemin = ThisWorkbook.Path With Sheets("feuil1") .Activate NbreX = Application.CountIf(.Range(.[C2], .[C65536]), "x") If NbreX = 0 Then MsgBox "Il n'y a pas d'étiquette à extraire.", vbInfo rmation + vbOKOnly .Range("A1").Select Exit Sub End If End With Sheets("feuil1").Copy ActiveWorkbook.SaveAs Filename:=Chemin & "Temp.xlsm", FileFormat:= xlOpenXMLWorkbookMacroEnabled Call test ChDir ThisWorkbook.Path FileMailing = Application.GetOpenFilename("Fichiers Word (*.doc*), *. doc*", , "Ouvrir le document Word pour le mailing d'étiquettes ...") If FileMailing = False Then End 'Si c'est OK on incrémente la référence [K2] = [K2] + 1 ' Ouverture de Word Dim AppWord As Word.Application Set AppWord = New Word.Application AppWord.Visible = True 'False 'True Set DocWord = AppWord.Documents.Open(FileMailing) NomBase = Chemin & "Temp.xlsm" With DocWord.MailMerge .OpenDataSource Name:=NomBase, _ Connection:="Driver={Microsoft Excel Driver (*. xls)};" & "DBQ=" & _ NomBase & "; ReadOnly=True;", SQLStat ement:="SELECT * FROM [feuil1$] WHERE [ETIQUETTE] like 'x' OR [ETIQUETTE] like 'X'" 'Spécifie la fusion vers un nouveau document (wdSendToPrinter = Vers l'imprimante) .Destination = wdSendToNewDocument '.SuppressBlankLines = True 'Il ne peut pas y voir de ligne blanc he car on demande celle qui ont des croix 'Prend en compte l'ensemble des enregistrements With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With 'Exécute l'opération de publipostage .Execute Pause:úlse End With ' Activation du doucment principal de Publipostage et fermeture DocWord.Activate DocWord.Close savechanges:úlse ' Affichage l'application Word AppWord.Visible = True Set DocWord = Nothing Set AppWord = Nothing ' Activation de l'onglet ' Effacement du fichier temporaire crée spécialement pour la fusion Kill Chemin & "temp.xlsm" Application.ScreenUpdating = True End Sub '------------------------------------ Sub test() '"Test.bas" est le nom du fichier qui sera créé 'lors de l'exportation ThisWorkbook.VBProject.VBComponents("Module2").Export Chemin & "Test.ba s" 'Le classeur "Temps.xlsm" doit être ouvert 'Tu peux modifier le nom "module1" pour un autre nom si besion. With Workbooks("Temp.xlsm").VBProject.VBComponents .Import(Chemin & "Test.bas").Name = "Module2" End With 'Supprime le fichier créé temporairement Kill Chemin & "Test.bas" End Sub '------------------------------------
Voila le code de test.xlsm :
'-----------------------------------------
Dim Chemin
Sub Publipostage()
' Publipostage Macro
Application.ScreenUpdating = False
Chemin = ThisWorkbook.Path
With Sheets("feuil1")
.Activate
NbreX = Application.CountIf(.Range(.[C2], .[C65536]), "x")
If NbreX = 0 Then
MsgBox "Il n'y a pas d'étiquette à extraire.", vbInfo rmation + vbOKOnly
.Range("A1").Select
Exit Sub
End If
End With
Sheets("feuil1").Copy
ActiveWorkbook.SaveAs Filename:=Chemin & "Temp.xlsm", FileFormat:= xlOpenXMLWorkbookMacroEnabled
Call test
ChDir ThisWorkbook.Path
FileMailing = Application.GetOpenFilename("Fichiers Word (*.doc*), *. doc*", , "Ouvrir le document Word pour le mailing d'étiquettes ...")
If FileMailing = False Then End
'Si c'est OK on incrémente la référence
[K2] = [K2] + 1
' Ouverture de Word
Dim AppWord As Word.Application
Set AppWord = New Word.Application
AppWord.Visible = True 'False 'True
Set DocWord = AppWord.Documents.Open(FileMailing)
NomBase = Chemin & "Temp.xlsm"
With DocWord.MailMerge
.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver (*. xls)};" & "DBQ=" & _
NomBase & "; ReadOnly=True;", SQLStat ement:="SELECT * FROM [feuil1$] WHERE [ETIQUETTE] like 'x' OR [ETIQUETTE] like 'X'"
'Spécifie la fusion vers un nouveau document (wdSendToPrinter = Vers l'imprimante)
.Destination = wdSendToNewDocument
'.SuppressBlankLines = True 'Il ne peut pas y voir de ligne blanc he car on demande celle qui ont des croix
'Prend en compte l'ensemble des enregistrements
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
'Exécute l'opération de publipostage
.Execute Pause:=False
End With
' Activation du doucment principal de Publipostage et fermeture
DocWord.Activate
DocWord.Close savechanges:=False
' Affichage l'application Word
AppWord.Visible = True
Set DocWord = Nothing
Set AppWord = Nothing
' Activation de l'onglet
' Effacement du fichier temporaire crée spécialement pour la fusion
Kill Chemin & "temp.xlsm"
Application.ScreenUpdating = True
End Sub
'------------------------------------
Sub test()
'"Test.bas" est le nom du fichier qui sera créé
'lors de l'exportation
'Le classeur "Temps.xlsm" doit être ouvert
'Tu peux modifier le nom "module1" pour un autre nom si besion.
With Workbooks("Temp.xlsm").VBProject.VBComponents
.Import(Chemin & "Test.bas").Name = "Module2"
End With
'Supprime le fichier créé temporairement
Kill Chemin & "Test.bas"
End Sub
'------------------------------------
Voila le code de test.xlsm : '----------------------------------------- Dim Chemin Sub Publipostage() ' Publipostage Macro Application.ScreenUpdating = False Chemin = ThisWorkbook.Path With Sheets("feuil1") .Activate NbreX = Application.CountIf(.Range(.[C2], .[C65536]), "x") If NbreX = 0 Then MsgBox "Il n'y a pas d'étiquette à extraire.", vbInfo rmation + vbOKOnly .Range("A1").Select Exit Sub End If End With Sheets("feuil1").Copy ActiveWorkbook.SaveAs Filename:=Chemin & "Temp.xlsm", FileFormat:= xlOpenXMLWorkbookMacroEnabled Call test ChDir ThisWorkbook.Path FileMailing = Application.GetOpenFilename("Fichiers Word (*.doc*), *. doc*", , "Ouvrir le document Word pour le mailing d'étiquettes ...") If FileMailing = False Then End 'Si c'est OK on incrémente la référence [K2] = [K2] + 1 ' Ouverture de Word Dim AppWord As Word.Application Set AppWord = New Word.Application AppWord.Visible = True 'False 'True Set DocWord = AppWord.Documents.Open(FileMailing) NomBase = Chemin & "Temp.xlsm" With DocWord.MailMerge .OpenDataSource Name:=NomBase, _ Connection:="Driver={Microsoft Excel Driver (*. xls)};" & "DBQ=" & _ NomBase & "; ReadOnly=True;", SQLStat ement:="SELECT * FROM [feuil1$] WHERE [ETIQUETTE] like 'x' OR [ETIQUETTE] like 'X'" 'Spécifie la fusion vers un nouveau document (wdSendToPrinter = Vers l'imprimante) .Destination = wdSendToNewDocument '.SuppressBlankLines = True 'Il ne peut pas y voir de ligne blanc he car on demande celle qui ont des croix 'Prend en compte l'ensemble des enregistrements With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With 'Exécute l'opération de publipostage .Execute Pause:úlse End With ' Activation du doucment principal de Publipostage et fermeture DocWord.Activate DocWord.Close savechanges:úlse ' Affichage l'application Word AppWord.Visible = True Set DocWord = Nothing Set AppWord = Nothing ' Activation de l'onglet ' Effacement du fichier temporaire crée spécialement pour la fusion Kill Chemin & "temp.xlsm" Application.ScreenUpdating = True End Sub '------------------------------------ Sub test() '"Test.bas" est le nom du fichier qui sera créé 'lors de l'exportation ThisWorkbook.VBProject.VBComponents("Module2").Export Chemin & "Test.ba s" 'Le classeur "Temps.xlsm" doit être ouvert 'Tu peux modifier le nom "module1" pour un autre nom si besion. With Workbooks("Temp.xlsm").VBProject.VBComponents .Import(Chemin & "Test.bas").Name = "Module2" End With 'Supprime le fichier créé temporairement Kill Chemin & "Test.bas" End Sub '------------------------------------
Michd
La touche F9 appelle la mise à jour des formules. Dans la procédure de transfert de module, ajoute cette ligne de code : '------------------------------------ Sub test() Dim Chemin As String Chemin = "C:UsersLe profildocuments" '"Test.bas" est le nom du fichier qui sera créé 'lors de l'exportation ThisWorkbook.VBProject.VBComponents("module1").Export chemin & "Test.bas" 'Le classeur "Temps.xls" doit être ouvert 'Tu peux modifier le nom "module1" pour un autre nom si besion. With Workbooks("Temp.xls").VBProject.VBComponents .Import(Chemin & "Test.bas").Name = "Module1" End With With Workbooks("Temp.xls").Calculate .<<<<<<<<<<<<======== 'Supprime le fichier créé temporairement Kill Chemin & "Test.bas" End Sub '------------------------------------ MichD
La touche F9 appelle la mise à jour des formules. Dans la procédure de transfert de module, ajoute
cette ligne de code :
'------------------------------------
Sub test()
Dim Chemin As String
Chemin = "C:UsersLe profildocuments"
'"Test.bas" est le nom du fichier qui sera créé
'lors de l'exportation
'Le classeur "Temps.xls" doit être ouvert
'Tu peux modifier le nom "module1" pour un autre nom si besion.
With Workbooks("Temp.xls").VBProject.VBComponents
.Import(Chemin & "Test.bas").Name = "Module1"
End With
With Workbooks("Temp.xls").Calculate .<<<<<<<<<<<<======== 'Supprime le fichier créé temporairement
Kill Chemin & "Test.bas"
End Sub
'------------------------------------
La touche F9 appelle la mise à jour des formules. Dans la procédure de transfert de module, ajoute cette ligne de code : '------------------------------------ Sub test() Dim Chemin As String Chemin = "C:UsersLe profildocuments" '"Test.bas" est le nom du fichier qui sera créé 'lors de l'exportation ThisWorkbook.VBProject.VBComponents("module1").Export chemin & "Test.bas" 'Le classeur "Temps.xls" doit être ouvert 'Tu peux modifier le nom "module1" pour un autre nom si besion. With Workbooks("Temp.xls").VBProject.VBComponents .Import(Chemin & "Test.bas").Name = "Module1" End With With Workbooks("Temp.xls").Calculate .<<<<<<<<<<<<======== 'Supprime le fichier créé temporairement Kill Chemin & "Test.bas" End Sub '------------------------------------ MichD
Apitos
Bonjour MichD, Erreur d'exécution '438': Propriété ou méthode non géré par cet objet Workbooks("Temp.xlsm").Calculate '.<<<<<<<<<<<<======== =
Bonjour MichD, Erreur d'exécution '438': Propriété ou méthode non géré par cet objet Workbooks("Temp.xlsm").Calculate '.<<<<<<<<<<<<======== =
Michd
Oups, il faut ajouter le nom de la feuille où tu veux mettre les formules à jour. Au besoin, tu peux boucler sur toutes les feuilles du classeur! Nom de la feuille à adapter Workbooks("Temp.xlsm").Worksheets("Feuil1").Calculate MichD
Oups, il faut ajouter le nom de la feuille où tu veux mettre les formules à jour.
Au besoin, tu peux boucler sur toutes les feuilles du classeur!
Nom de la feuille à adapter
Workbooks("Temp.xlsm").Worksheets("Feuil1").Calculate
Oups, il faut ajouter le nom de la feuille où tu veux mettre les formules à jour. Au besoin, tu peux boucler sur toutes les feuilles du classeur! Nom de la feuille à adapter Workbooks("Temp.xlsm").Worksheets("Feuil1").Calculate MichD
Apitos
Je ne sais pas ou est le problème, mais je reçois toujours l'erre ur #NAME? alors que j'ai essayé de modifier le code : '------------------ Application.Calculation = xlCalculationManual Workbooks("Temp.xlsm").Sheets.Select ActiveSheet.Calculate Application.Calculation = xlCalculationAutomatic '-------------------
Je ne sais pas ou est le problème, mais je reçois toujours l'erre ur #NAME? alors que j'ai essayé de modifier le code :
Je ne sais pas ou est le problème, mais je reçois toujours l'erre ur #NAME? alors que j'ai essayé de modifier le code : '------------------ Application.Calculation = xlCalculationManual Workbooks("Temp.xlsm").Sheets.Select ActiveSheet.Calculate Application.Calculation = xlCalculationAutomatic '-------------------