Bonjour,
Voila, j'ai fait une macro vba (avec de l'aide) qui s'exécute à l'ouverture
d'un document; elle remplace des mots par d'autres venant d'un fichier .ini.
une fois les mots remplacés, j'enregistre dans un nouveau document que je
referme dans la foulée mais je n'arrive pas à fermer Word.
Pouvez-vous m'aider s'il vous plait ? je vous mets le code de la macro
ci-dessous; Merci d'avance.
Maxou 07
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias
"GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias
"WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileSection& Lib "kernel32" Alias
"GetPrivateProfileSectionA" _
(ByVal lpAppName As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String)
Public Function ExisteSectionIni(Section As String, Fich As String) As
Boolean
Dim Retour As Long
Dim Valeur As String
Valeur = String(32767, 0) '32767 est la longueur maxi que peut avoir
une section
' Retour représente la longueur de la section, donc si elle est supérieure à
0, elle existe
Retour = GetPrivateProfileSection(Section, Valeur, 32766, Fich)
If Retour > 0 Then ExisteSectionIni = True
End Function
Public Function LireCleIni(Section As String, Cle As String, Fich As String)
As String
Dim Retour As Long
Dim Valeur As String
Valeur = String(256, 0) 'ici on considère qu'une valeur ne sera pas de
longueur supérieur à 256
' si vous travaillez avec des valeurs de grandes longueur augmentez ce
chiffre.
Retour = GetPrivateProfileString(Section, Cle, "", Valeur, 255, Fich)
If Retour > 0 Then 'renvoie la longueur de la valeur
Valeur = Left(Valeur, Retour) 'enlève les caractères en trop
Else
Valeur = "" 'elle n'existe pas
End If
LireCleIni = Valeur
End Function
Sub AutoOpen()
'*******************************
' nom du doc ayant la macro
'*******************************
If ActiveDocument.Name = "essai_pub.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NumeroChantier As String
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre TISSENDIER
Bonjour Maxou, Essaye de mettre "application.quit" dans l'évènement Document_Close je crois que c'est mieux @+
"maxou07" a écrit dans le message de news: 4692642d$0$27374$
Bonjour, Voila, j'ai fait une macro vba (avec de l'aide) qui s'exécute à l'ouverture d'un document; elle remplace des mots par d'autres venant d'un fichier .ini. une fois les mots remplacés, j'enregistre dans un nouveau document que je referme dans la foulée mais je n'arrive pas à fermer Word. Pouvez-vous m'aider s'il vous plait ? je vous mets le code de la macro ci-dessous; Merci d'avance. Maxou 07 '***************** 'Déclaration des API à retranscrire sans erreur '***************** Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileSection& Lib "kernel32" Alias "GetPrivateProfileSectionA" _ (ByVal lpAppName As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String)
Public Function ExisteSectionIni(Section As String, Fich As String) As Boolean Dim Retour As Long Dim Valeur As String
Valeur = String(32767, 0) '32767 est la longueur maxi que peut avoir une section ' Retour représente la longueur de la section, donc si elle est supérieure à 0, elle existe Retour = GetPrivateProfileSection(Section, Valeur, 32766, Fich) If Retour > 0 Then ExisteSectionIni = True End Function
Public Function LireCleIni(Section As String, Cle As String, Fich As String) As String Dim Retour As Long Dim Valeur As String
Valeur = String(256, 0) 'ici on considère qu'une valeur ne sera pas de longueur supérieur à 256 ' si vous travaillez avec des valeurs de grandes longueur augmentez ce chiffre. Retour = GetPrivateProfileString(Section, Cle, "", Valeur, 255, Fich) If Retour > 0 Then 'renvoie la longueur de la valeur Valeur = Left(Valeur, Retour) 'enlève les caractères en trop Else Valeur = "" 'elle n'existe pas End If LireCleIni = Valeur End Function
Sub AutoOpen() '******************************* ' nom du doc ayant la macro '******************************* If ActiveDocument.Name = "essai_pub.doc" Then
' on déclare toutes les variables que l'on va utiliser Dim NomChantier As String, NumeroChantier As String
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges Word.Application.Quit End If
End Sub
Bonjour Maxou,
Essaye de mettre "application.quit" dans l'évènement Document_Close je crois
que c'est mieux
@+
"maxou07" <emmanuel.coiraton@wanadoo.fr> a écrit dans le message de news:
4692642d$0$27374$ba4acef3@news.orange.fr...
Bonjour,
Voila, j'ai fait une macro vba (avec de l'aide) qui s'exécute à
l'ouverture
d'un document; elle remplace des mots par d'autres venant d'un fichier
.ini.
une fois les mots remplacés, j'enregistre dans un nouveau document que je
referme dans la foulée mais je n'arrive pas à fermer Word.
Pouvez-vous m'aider s'il vous plait ? je vous mets le code de la macro
ci-dessous; Merci d'avance.
Maxou 07
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias
"GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias
"WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileSection& Lib "kernel32" Alias
"GetPrivateProfileSectionA" _
(ByVal lpAppName As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String)
Public Function ExisteSectionIni(Section As String, Fich As String) As
Boolean
Dim Retour As Long
Dim Valeur As String
Valeur = String(32767, 0) '32767 est la longueur maxi que peut avoir
une section
' Retour représente la longueur de la section, donc si elle est supérieure
à
0, elle existe
Retour = GetPrivateProfileSection(Section, Valeur, 32766, Fich)
If Retour > 0 Then ExisteSectionIni = True
End Function
Public Function LireCleIni(Section As String, Cle As String, Fich As
String)
As String
Dim Retour As Long
Dim Valeur As String
Valeur = String(256, 0) 'ici on considère qu'une valeur ne sera pas de
longueur supérieur à 256
' si vous travaillez avec des valeurs de grandes longueur augmentez ce
chiffre.
Retour = GetPrivateProfileString(Section, Cle, "", Valeur, 255, Fich)
If Retour > 0 Then 'renvoie la longueur de la valeur
Valeur = Left(Valeur, Retour) 'enlève les caractères en trop
Else
Valeur = "" 'elle n'existe pas
End If
LireCleIni = Valeur
End Function
Sub AutoOpen()
'*******************************
' nom du doc ayant la macro
'*******************************
If ActiveDocument.Name = "essai_pub.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NumeroChantier As String
Bonjour Maxou, Essaye de mettre "application.quit" dans l'évènement Document_Close je crois que c'est mieux @+
"maxou07" a écrit dans le message de news: 4692642d$0$27374$
Bonjour, Voila, j'ai fait une macro vba (avec de l'aide) qui s'exécute à l'ouverture d'un document; elle remplace des mots par d'autres venant d'un fichier .ini. une fois les mots remplacés, j'enregistre dans un nouveau document que je referme dans la foulée mais je n'arrive pas à fermer Word. Pouvez-vous m'aider s'il vous plait ? je vous mets le code de la macro ci-dessous; Merci d'avance. Maxou 07 '***************** 'Déclaration des API à retranscrire sans erreur '***************** Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileSection& Lib "kernel32" Alias "GetPrivateProfileSectionA" _ (ByVal lpAppName As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String)
Public Function ExisteSectionIni(Section As String, Fich As String) As Boolean Dim Retour As Long Dim Valeur As String
Valeur = String(32767, 0) '32767 est la longueur maxi que peut avoir une section ' Retour représente la longueur de la section, donc si elle est supérieure à 0, elle existe Retour = GetPrivateProfileSection(Section, Valeur, 32766, Fich) If Retour > 0 Then ExisteSectionIni = True End Function
Public Function LireCleIni(Section As String, Cle As String, Fich As String) As String Dim Retour As Long Dim Valeur As String
Valeur = String(256, 0) 'ici on considère qu'une valeur ne sera pas de longueur supérieur à 256 ' si vous travaillez avec des valeurs de grandes longueur augmentez ce chiffre. Retour = GetPrivateProfileString(Section, Cle, "", Valeur, 255, Fich) If Retour > 0 Then 'renvoie la longueur de la valeur Valeur = Left(Valeur, Retour) 'enlève les caractères en trop Else Valeur = "" 'elle n'existe pas End If LireCleIni = Valeur End Function
Sub AutoOpen() '******************************* ' nom du doc ayant la macro '******************************* If ActiveDocument.Name = "essai_pub.doc" Then
' on déclare toutes les variables que l'on va utiliser Dim NomChantier As String, NumeroChantier As String
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges Word.Application.Quit End If
End Sub
maxou07
Merci, c'était bien çà ; je suis très con des fois
"Pierre TISSENDIER" a écrit dans le message de news:
Bonjour Maxou, Essaye de mettre "application.quit" dans l'évènement Document_Close je crois
que c'est mieux @+
"maxou07" a écrit dans le message de news: 4692642d$0$27374$
Bonjour, Voila, j'ai fait une macro vba (avec de l'aide) qui s'exécute à l'ouverture d'un document; elle remplace des mots par d'autres venant d'un fichier .ini. une fois les mots remplacés, j'enregistre dans un nouveau document que je
referme dans la foulée mais je n'arrive pas à fermer Word. Pouvez-vous m'aider s'il vous plait ? je vous mets le code de la macro ci-dessous; Merci d'avance. Maxou 07 '***************** 'Déclaration des API à retranscrire sans erreur '***************** Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileSection& Lib "kernel32" Alias "GetPrivateProfileSectionA" _ (ByVal lpAppName As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String)
Public Function ExisteSectionIni(Section As String, Fich As String) As Boolean Dim Retour As Long Dim Valeur As String
Valeur = String(32767, 0) '32767 est la longueur maxi que peut avoir une section ' Retour représente la longueur de la section, donc si elle est supérieure
à 0, elle existe Retour = GetPrivateProfileSection(Section, Valeur, 32766, Fich) If Retour > 0 Then ExisteSectionIni = True End Function
Public Function LireCleIni(Section As String, Cle As String, Fich As String) As String Dim Retour As Long Dim Valeur As String
Valeur = String(256, 0) 'ici on considère qu'une valeur ne sera pas de
longueur supérieur à 256 ' si vous travaillez avec des valeurs de grandes longueur augmentez ce chiffre. Retour = GetPrivateProfileString(Section, Cle, "", Valeur, 255, Fich)
If Retour > 0 Then 'renvoie la longueur de la valeur Valeur = Left(Valeur, Retour) 'enlève les caractères en trop Else Valeur = "" 'elle n'existe pas End If LireCleIni = Valeur End Function
Sub AutoOpen() '******************************* ' nom du doc ayant la macro '******************************* If ActiveDocument.Name = "essai_pub.doc" Then
' on déclare toutes les variables que l'on va utiliser Dim NomChantier As String, NumeroChantier As String
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges Word.Application.Quit End If
End Sub
Merci, c'était bien çà ; je suis très con des fois
"Pierre TISSENDIER" <tissendier.pierre@numericable.fr> a écrit dans le
message de news:e6armqkwHHA.4736@TK2MSFTNGP04.phx.gbl...
Bonjour Maxou,
Essaye de mettre "application.quit" dans l'évènement Document_Close je
crois
que c'est mieux
@+
"maxou07" <emmanuel.coiraton@wanadoo.fr> a écrit dans le message de news:
4692642d$0$27374$ba4acef3@news.orange.fr...
Bonjour,
Voila, j'ai fait une macro vba (avec de l'aide) qui s'exécute à
l'ouverture
d'un document; elle remplace des mots par d'autres venant d'un fichier
.ini.
une fois les mots remplacés, j'enregistre dans un nouveau document que
je
referme dans la foulée mais je n'arrive pas à fermer Word.
Pouvez-vous m'aider s'il vous plait ? je vous mets le code de la macro
ci-dessous; Merci d'avance.
Maxou 07
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias
"GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias
"WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileSection& Lib "kernel32" Alias
"GetPrivateProfileSectionA" _
(ByVal lpAppName As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String)
Public Function ExisteSectionIni(Section As String, Fich As String) As
Boolean
Dim Retour As Long
Dim Valeur As String
Valeur = String(32767, 0) '32767 est la longueur maxi que peut avoir
une section
' Retour représente la longueur de la section, donc si elle est
supérieure
à
0, elle existe
Retour = GetPrivateProfileSection(Section, Valeur, 32766, Fich)
If Retour > 0 Then ExisteSectionIni = True
End Function
Public Function LireCleIni(Section As String, Cle As String, Fich As
String)
As String
Dim Retour As Long
Dim Valeur As String
Valeur = String(256, 0) 'ici on considère qu'une valeur ne sera pas
de
longueur supérieur à 256
' si vous travaillez avec des valeurs de grandes longueur augmentez ce
chiffre.
Retour = GetPrivateProfileString(Section, Cle, "", Valeur, 255,
Fich)
If Retour > 0 Then 'renvoie la longueur de la valeur
Valeur = Left(Valeur, Retour) 'enlève les caractères en trop
Else
Valeur = "" 'elle n'existe pas
End If
LireCleIni = Valeur
End Function
Sub AutoOpen()
'*******************************
' nom du doc ayant la macro
'*******************************
If ActiveDocument.Name = "essai_pub.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NumeroChantier As String
Merci, c'était bien çà ; je suis très con des fois
"Pierre TISSENDIER" a écrit dans le message de news:
Bonjour Maxou, Essaye de mettre "application.quit" dans l'évènement Document_Close je crois
que c'est mieux @+
"maxou07" a écrit dans le message de news: 4692642d$0$27374$
Bonjour, Voila, j'ai fait une macro vba (avec de l'aide) qui s'exécute à l'ouverture d'un document; elle remplace des mots par d'autres venant d'un fichier .ini. une fois les mots remplacés, j'enregistre dans un nouveau document que je
referme dans la foulée mais je n'arrive pas à fermer Word. Pouvez-vous m'aider s'il vous plait ? je vous mets le code de la macro ci-dessous; Merci d'avance. Maxou 07 '***************** 'Déclaration des API à retranscrire sans erreur '***************** Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileSection& Lib "kernel32" Alias "GetPrivateProfileSectionA" _ (ByVal lpAppName As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String)
Public Function ExisteSectionIni(Section As String, Fich As String) As Boolean Dim Retour As Long Dim Valeur As String
Valeur = String(32767, 0) '32767 est la longueur maxi que peut avoir une section ' Retour représente la longueur de la section, donc si elle est supérieure
à 0, elle existe Retour = GetPrivateProfileSection(Section, Valeur, 32766, Fich) If Retour > 0 Then ExisteSectionIni = True End Function
Public Function LireCleIni(Section As String, Cle As String, Fich As String) As String Dim Retour As Long Dim Valeur As String
Valeur = String(256, 0) 'ici on considère qu'une valeur ne sera pas de
longueur supérieur à 256 ' si vous travaillez avec des valeurs de grandes longueur augmentez ce chiffre. Retour = GetPrivateProfileString(Section, Cle, "", Valeur, 255, Fich)
If Retour > 0 Then 'renvoie la longueur de la valeur Valeur = Left(Valeur, Retour) 'enlève les caractères en trop Else Valeur = "" 'elle n'existe pas End If LireCleIni = Valeur End Function
Sub AutoOpen() '******************************* ' nom du doc ayant la macro '******************************* If ActiveDocument.Name = "essai_pub.doc" Then
' on déclare toutes les variables que l'on va utiliser Dim NomChantier As String, NumeroChantier As String