j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
Mon problème est que, actuellement, je n'ai ni w2003, ni w2007; donc il va
m'être très difficile de tester.
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
[...]
Mon problème est que, actuellement, je n'ai ni w2003, ni w2007; donc il va
m'être très difficile de tester.
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
[...]
Mon problème est que, actuellement, je n'ai ni w2003, ni w2007; donc il va
m'être très difficile de tester.
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
[...]
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
A vue de nez, il n'y a pas de raison.
Il y a une instruction qui me fait sursauter :
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As
String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
C'est quand même plus lisible de faire un Dim pour chaque variable,
et ça surprend d'autant plus que le reste est bien présenté et bien
documenté.
--
A+
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
A vue de nez, il n'y a pas de raison.
Il y a une instruction qui me fait sursauter :
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As
String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
C'est quand même plus lisible de faire un Dim pour chaque variable,
et ça surprend d'autant plus que le reste est bien présenté et bien
documenté.
--
A+
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
A vue de nez, il n'y a pas de raison.
Il y a une instruction qui me fait sursauter :
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As
String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
C'est quand même plus lisible de faire un Dim pour chaque variable,
et ça surprend d'autant plus que le reste est bien présenté et bien
documenté.
--
A+
j'ai copié ton code dans mon word 2007 mais c'est trop compliqué à
vérifier,
désolé !
"maxou07" a écrit dans le message de news:
46934d12$0$25914$bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow.
_
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
j'ai copié ton code dans mon word 2007 mais c'est trop compliqué à
vérifier,
désolé !
"maxou07" <emmanuel.coiraton@wanadoo.fr> a écrit dans le message de news:
46934d12$0$25914$ba4acef3@news.orange.fr...
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow.
_
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
j'ai copié ton code dans mon word 2007 mais c'est trop compliqué à
vérifier,
désolé !
"maxou07" a écrit dans le message de news:
46934d12$0$25914$bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'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_pub2.doc" Then
' on déclare toutes les variables que l'on va utiliser
Dim NomChantier As String, NCh As String, PhaseTravaux As String, zone
As
String, I_TravailAdresse As String, I_TravailContact As String, _
I_TravailFax As String, I_TravailMail As String, I_TravailTel As String,
CramAdresse As String, CramContact As String, CramFax As String, _
CramMail As String, CramTel As String, OppbtpAdresse As String,
OppbtpContact As String, OppbtpFax As String, OppbtpMail As String,
OppbtpTel As String, _
MedecineTravailAdresse As String, MedecineTravailFax As String
' ****** on se met dans l'entete du document *****************
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow.
_
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
NomChantier = LireCleIni("LISTE", "NomChantier", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||NomChantier||"
.Replacement.Text = NomChantier
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' on le fait pour tous les mots de l'entete
' ******** on ressort de l'entete du document ***********
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
' et on fait le remplacement pour les mots du corps du document
I_TravailAdresse = LireCleIni("LISTE", "I_TravailAdresse", "C:Mes
DocumentsDI.ini")
With Selection.Find
.Text = "||I_TravailAdresse||"
.Replacement.Text = I_TravailAdresse
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' et on sauvegarde le tout
ActiveDocument.SaveAs FileName:= _
"nouvel_essai.doc", FileFormat:= _
wdFormatDocument, LockComments:úlse, Password:="",
AddToRecentFiles:= _
True, WritePassword:="", ReadOnlyRecommended:úlse,
EmbedTrueTypeFonts:= _
False, SaveNativePictureFormat:úlse, SaveFormsData:úlse, _
SaveAsAOCELetter:úlse
Documents("nouvel_essai.doc").Close SaveChanges:=wdSaveChanges
End If
End Sub
Private Sub Document_Close()
Word.Application.Quit
End Sub
Mon problème est que, actuellement, je n'ai ni w2003, ni w2007; donc il
va
m'être très difficile de tester.
Tu peux toujours télécharger la version d'évaluation Office 2007 :
http://office.microsoft.com/fr-fr/products/HA101741481036.aspx
ou acheter une revue informatique en kiosque qui propose cette même
version
sur un CD.
Je ne me souviens plus du nom de la revue, mais elle est sortie ce
mois-ci.
--
Tisanebonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci
est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
[...]
Mon problème est que, actuellement, je n'ai ni w2003, ni w2007; donc il
va
m'être très difficile de tester.
Tu peux toujours télécharger la version d'évaluation Office 2007 :
http://office.microsoft.com/fr-fr/products/HA101741481036.aspx
ou acheter une revue informatique en kiosque qui propose cette même
version
sur un CD.
Je ne me souviens plus du nom de la revue, mais elle est sortie ce
mois-ci.
--
Tisane
bonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci
est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
[...]
Mon problème est que, actuellement, je n'ai ni w2003, ni w2007; donc il
va
m'être très difficile de tester.
Tu peux toujours télécharger la version d'évaluation Office 2007 :
http://office.microsoft.com/fr-fr/products/HA101741481036.aspx
ou acheter une revue informatique en kiosque qui propose cette même
version
sur un CD.
Je ne me souviens plus du nom de la revue, mais elle est sortie ce
mois-ci.
--
Tisanebonjour,
j'ai un code vba développé avec w2000; j'aimerais savoir si celui-ci
est
portable sur les versions w2003 et w2007.
pouvez-vous me renseigner ?
Merci d'avance.
Maxou 07
le code :
'*****************
'Déclaration des API à retranscrire sans erreur
'*****************
[...]
Bonjour,
c'est vrai que c'est touffu; je vais corriger....mais je viens du Php alors
les déclarations de variables...çà me gonfle un peu.
Bonjour,
c'est vrai que c'est touffu; je vais corriger....mais je viens du Php alors
les déclarations de variables...çà me gonfle un peu.
Bonjour,
c'est vrai que c'est touffu; je vais corriger....mais je viens du Php alors
les déclarations de variables...çà me gonfle un peu.