Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur #NAME? dans un champ de publipostage

19 réponses
Avatar
Apitos
Bonjour =C3=A0 tous,

En utilisant la conversion d'une date avec la solution donn=C3=A9e par Mich=
D dans ce post :

https://groups.google.com/forum/#!topic/microsoft.public.fr.excel/Ee9805cGE=
xk%5B1-25%5D

le champ de publipostage me donne une erreur #NAME?

Une solution ?

Merci d'avance.

9 réponses

1 2
Avatar
Apitos
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.
Avatar
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.
Avatar
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.
Avatar
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
'------------------------------------
Avatar
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
Avatar
Apitos
Bonjour MichD,
Erreur d'exécution '438':
Propriété ou méthode non géré par cet objet
Workbooks("Temp.xlsm").Calculate '.<<<<<<<<<<<<======== =
Avatar
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
Avatar
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
'-------------------
Avatar
Apitos
Bonjour à tous,
Une proposition ?
1 2