Bonjour à toutes et à tous ... j'ai un problème... sinon je serais pas là...
voilà:
j'ai une macro qui doit en rappeller plusieurs, comment faire pour que toutes mes variables ne soient déclarées qu'une fois au début de la macro principale et puissent etre utilisables dans toutes les sous-macro?
voilà ma macro principale:
Sub macro_saisie_affaire()
'
' macro_saisie_affaire Macro
' Macro enregistrée le 10/03/2009 par Installateur
'
' Définition Variables
Dim Code_Affaire, Chemin_Base, Chemin_Final, Chemin_Modeles As String
Dim Fichier_Temps, Fichier_Chiffrage, Fichier_Renseignments As String
Dim Fichier_Liste_Clients As String
Dim Suppression_Zone_Client, Suppression_Zone_Contact As String
Dim Prout As New FileSystemObject
Dim Diag_Oui_Non, Diag_Style
Dim Code_Affaire_OK As String
Chemin_Base = "D:\00-suivi-affaires" & "\affaires-2009\"
Code_Affaire = Sheets("calcul-suivi").[T13].Value
Code_Affaire_Client_Projet = Sheets("calcul-suivi").[T13].Value _
& "---" & Sheets("calcul-suivi").[X29].Value _
& "---" & Sheets("calcul-suivi").[X30].Value
Chemin_Final = Chemin_Base & Code_Affaire_Client_Projet & "\"
Chemin_Modeles = "D:\00-suivi-affaires" & "\00-modeles\*"
Chemin_Echanges = Chemin_Base & Code_Affaire_Client_Projet & "\02-donnees-echanges\"
Fichier_Chiffrage = Chemin_Final & Code_Affaire & "-chiffrage.xls"
Fichier_Temps = Chemin_Final & Code_Affaire & "-temps.xls"
Fichier_Renseignements = Chemin_Final & Code_Affaire & "-renseignements.xls"
Fichier_Devis = Chemin_Final & Code_Affaire & "-devis.xls"
Fichier_BL = Chemin_Final & Code_Affaire & "-bon-livraison.xls"
Fichier_Liste_Clients = "D:\00-suivi-affaires\liste-clients-2009.xls"
Suppression_Zone_Client = Sheets("calcul-suivi").[X34].Value
Suppression_Zone_Contact = Sheets("calcul-suivi").[X37].Value
Diag_Style = vbYesNo + vbExclamation + vbDefaultButton2
'
Call macro_creation_dossiers
If Code_Affaire_OK = "1" Then
Call macro_copie_dossiers
Else
Exit Sub
End If
'
End Sub
et voilà les 2 autres sous macro:
Sub macro_creation_dossiers()
'
' macro_creation_dossiers Macro
' Macro enregistrée le 12/03/2009 par Installateur
'
' Définition Variables
Dim Code_Affaire, Chemin_Base, Chemin_Final, Chemin_Modeles As String
Dim Fichier_Temps, Fichier_Chiffrage, Fichier_Renseignments As String
Dim Fichier_Liste_Clients As String
Dim Suppression_Zone_Client, Suppression_Zone_Contact As String
Dim Prout As New FileSystemObject
Dim Diag_Oui_Non, Diag_Style
Dim Code_Affaire_OK As String
Chemin_Base = "D:\00-suivi-affaires" & "\affaires-2009\"
Code_Affaire = Sheets("calcul-suivi").[T13].Value
Code_Affaire_Client_Projet = Sheets("calcul-suivi").[T13].Value _
& "---" & Sheets("calcul-suivi").[X29].Value _
& "---" & Sheets("calcul-suivi").[X30].Value
Chemin_Final = Chemin_Base & Code_Affaire_Client_Projet & "\"
Chemin_Modeles = "D:\00-suivi-affaires" & "\00-modeles\*"
Chemin_Echanges = Chemin_Base & Code_Affaire_Client_Projet & "\02-donnees-echanges\"
Fichier_Chiffrage = Chemin_Final & Code_Affaire & "-chiffrage.xls"
Fichier_Temps = Chemin_Final & Code_Affaire & "-temps.xls"
Fichier_Renseignements = Chemin_Final & Code_Affaire & "-renseignements.xls"
Fichier_Devis = Chemin_Final & Code_Affaire & "-devis.xls"
Fichier_BL = Chemin_Final & Code_Affaire & "-bon-livraison.xls"
Fichier_Liste_Clients = "D:\00-suivi-affaires\liste-clients-2009.xls"
Suppression_Zone_Client = Sheets("calcul-suivi").[X34].Value
Suppression_Zone_Contact = Sheets("calcul-suivi").[X37].Value
Diag_Style = vbYesNo + vbExclamation + vbDefaultButton2
'
If Prout.FolderExists(Chemin_Final) Then
MsgBox "Ce classeur existe déjà, vérifiez le numéro courrant d'affaire."
Code_Affaire_OK = "1"
Else
Prout.CreateFolder (Chemin_Base & Code_Affaire_Client_Projet)
Code_Affaire_OK = "0"
End If
'
End Sub
et
Sub macro_copie_dossiers()
'
' macro_copie_dossiers Macro
' Macro enregistrée le 12/03/2009 par Installateur
'
' Définition Variables
Dim Code_Affaire, Chemin_Base, Chemin_Final, Chemin_Modeles As String
Dim Fichier_Temps, Fichier_Chiffrage, Fichier_Renseignments As String
Dim Fichier_Liste_Clients As String
Dim Suppression_Zone_Client, Suppression_Zone_Contact As String
Dim Prout As New FileSystemObject
Dim Diag_Oui_Non, Diag_Style
Dim Code_Affaire_OK As String
Chemin_Base = "D:\00-suivi-affaires" & "\affaires-2009\"
Code_Affaire = Sheets("calcul-suivi").[T13].Value
Code_Affaire_Client_Projet = Sheets("calcul-suivi").[T13].Value _
& "---" & Sheets("calcul-suivi").[X29].Value _
& "---" & Sheets("calcul-suivi").[X30].Value
Chemin_Final = Chemin_Base & Code_Affaire_Client_Projet & "\"
Chemin_Modeles = "D:\00-suivi-affaires" & "\00-modeles\*"
Chemin_Echanges = Chemin_Base & Code_Affaire_Client_Projet & "\02-donnees-echanges\"
Fichier_Chiffrage = Chemin_Final & Code_Affaire & "-chiffrage.xls"
Fichier_Temps = Chemin_Final & Code_Affaire & "-temps.xls"
Fichier_Renseignements = Chemin_Final & Code_Affaire & "-renseignements.xls"
Fichier_Devis = Chemin_Final & Code_Affaire & "-devis.xls"
Fichier_BL = Chemin_Final & Code_Affaire & "-bon-livraison.xls"
Fichier_Liste_Clients = "D:\00-suivi-affaires\liste-clients-2009.xls"
Suppression_Zone_Client = Sheets("calcul-suivi").[X34].Value
Suppression_Zone_Contact = Sheets("calcul-suivi").[X37].Value
Diag_Style = vbYesNo + vbExclamation + vbDefaultButton2
'
Prout.CreateFolder (Chemin_Base & Code_Affaire_Client_Projet)
Prout.CopyFolder Chemin_Modeles, Chemin_Final
Prout.CopyFile Chemin_Modeles, Chemin_Final
Name Chemin_Final & "chiffrage.xls" As Chemin_Final & Code_Affaire & "-chiffrage.xls"
Name Chemin_Final & "temps.xls" As Chemin_Final & Code_Affaire & "-temps.xls"
Name Chemin_Final & "renseignements.xls" As Chemin_Final & Code_Affaire & "-renseignements.xls"
Name Chemin_Final & "devis.xls" As Chemin_Final & Code_Affaire & "-devis.xls"
Name Chemin_Final & "bon-livraison.xls" As Chemin_Final & Code_Affaire & "-bon-livraison.xls"
'
End Sub
donc déjà c'est chiant de se coller toutes les variables au début de chaque macro et en plus y'a un truc qui merde: quand la macro de création de dossier s'effectue , elle verifie si le chamin d'acces n'existe pas et si c'est bon je veux qu'elle me mette la variable Code_Affaire_OK à 1 sinon à 0.
et apres dans ma macro principale, ca doit verifier la valeur de cette variable et continuer ou pas la macro mais là ca merde...
au secours svp...
voilà:
j'ai une macro qui doit en rappeller plusieurs, comment faire pour que toutes mes variables ne soient déclarées qu'une fois au début de la macro principale et puissent etre utilisables dans toutes les sous-macro?
voilà ma macro principale:
Sub macro_saisie_affaire()
'
' macro_saisie_affaire Macro
' Macro enregistrée le 10/03/2009 par Installateur
'
' Définition Variables
Dim Code_Affaire, Chemin_Base, Chemin_Final, Chemin_Modeles As String
Dim Fichier_Temps, Fichier_Chiffrage, Fichier_Renseignments As String
Dim Fichier_Liste_Clients As String
Dim Suppression_Zone_Client, Suppression_Zone_Contact As String
Dim Prout As New FileSystemObject
Dim Diag_Oui_Non, Diag_Style
Dim Code_Affaire_OK As String
Chemin_Base = "D:\00-suivi-affaires" & "\affaires-2009\"
Code_Affaire = Sheets("calcul-suivi").[T13].Value
Code_Affaire_Client_Projet = Sheets("calcul-suivi").[T13].Value _
& "---" & Sheets("calcul-suivi").[X29].Value _
& "---" & Sheets("calcul-suivi").[X30].Value
Chemin_Final = Chemin_Base & Code_Affaire_Client_Projet & "\"
Chemin_Modeles = "D:\00-suivi-affaires" & "\00-modeles\*"
Chemin_Echanges = Chemin_Base & Code_Affaire_Client_Projet & "\02-donnees-echanges\"
Fichier_Chiffrage = Chemin_Final & Code_Affaire & "-chiffrage.xls"
Fichier_Temps = Chemin_Final & Code_Affaire & "-temps.xls"
Fichier_Renseignements = Chemin_Final & Code_Affaire & "-renseignements.xls"
Fichier_Devis = Chemin_Final & Code_Affaire & "-devis.xls"
Fichier_BL = Chemin_Final & Code_Affaire & "-bon-livraison.xls"
Fichier_Liste_Clients = "D:\00-suivi-affaires\liste-clients-2009.xls"
Suppression_Zone_Client = Sheets("calcul-suivi").[X34].Value
Suppression_Zone_Contact = Sheets("calcul-suivi").[X37].Value
Diag_Style = vbYesNo + vbExclamation + vbDefaultButton2
'
Call macro_creation_dossiers
If Code_Affaire_OK = "1" Then
Call macro_copie_dossiers
Else
Exit Sub
End If
'
End Sub
et voilà les 2 autres sous macro:
Sub macro_creation_dossiers()
'
' macro_creation_dossiers Macro
' Macro enregistrée le 12/03/2009 par Installateur
'
' Définition Variables
Dim Code_Affaire, Chemin_Base, Chemin_Final, Chemin_Modeles As String
Dim Fichier_Temps, Fichier_Chiffrage, Fichier_Renseignments As String
Dim Fichier_Liste_Clients As String
Dim Suppression_Zone_Client, Suppression_Zone_Contact As String
Dim Prout As New FileSystemObject
Dim Diag_Oui_Non, Diag_Style
Dim Code_Affaire_OK As String
Chemin_Base = "D:\00-suivi-affaires" & "\affaires-2009\"
Code_Affaire = Sheets("calcul-suivi").[T13].Value
Code_Affaire_Client_Projet = Sheets("calcul-suivi").[T13].Value _
& "---" & Sheets("calcul-suivi").[X29].Value _
& "---" & Sheets("calcul-suivi").[X30].Value
Chemin_Final = Chemin_Base & Code_Affaire_Client_Projet & "\"
Chemin_Modeles = "D:\00-suivi-affaires" & "\00-modeles\*"
Chemin_Echanges = Chemin_Base & Code_Affaire_Client_Projet & "\02-donnees-echanges\"
Fichier_Chiffrage = Chemin_Final & Code_Affaire & "-chiffrage.xls"
Fichier_Temps = Chemin_Final & Code_Affaire & "-temps.xls"
Fichier_Renseignements = Chemin_Final & Code_Affaire & "-renseignements.xls"
Fichier_Devis = Chemin_Final & Code_Affaire & "-devis.xls"
Fichier_BL = Chemin_Final & Code_Affaire & "-bon-livraison.xls"
Fichier_Liste_Clients = "D:\00-suivi-affaires\liste-clients-2009.xls"
Suppression_Zone_Client = Sheets("calcul-suivi").[X34].Value
Suppression_Zone_Contact = Sheets("calcul-suivi").[X37].Value
Diag_Style = vbYesNo + vbExclamation + vbDefaultButton2
'
If Prout.FolderExists(Chemin_Final) Then
MsgBox "Ce classeur existe déjà, vérifiez le numéro courrant d'affaire."
Code_Affaire_OK = "1"
Else
Prout.CreateFolder (Chemin_Base & Code_Affaire_Client_Projet)
Code_Affaire_OK = "0"
End If
'
End Sub
et
Sub macro_copie_dossiers()
'
' macro_copie_dossiers Macro
' Macro enregistrée le 12/03/2009 par Installateur
'
' Définition Variables
Dim Code_Affaire, Chemin_Base, Chemin_Final, Chemin_Modeles As String
Dim Fichier_Temps, Fichier_Chiffrage, Fichier_Renseignments As String
Dim Fichier_Liste_Clients As String
Dim Suppression_Zone_Client, Suppression_Zone_Contact As String
Dim Prout As New FileSystemObject
Dim Diag_Oui_Non, Diag_Style
Dim Code_Affaire_OK As String
Chemin_Base = "D:\00-suivi-affaires" & "\affaires-2009\"
Code_Affaire = Sheets("calcul-suivi").[T13].Value
Code_Affaire_Client_Projet = Sheets("calcul-suivi").[T13].Value _
& "---" & Sheets("calcul-suivi").[X29].Value _
& "---" & Sheets("calcul-suivi").[X30].Value
Chemin_Final = Chemin_Base & Code_Affaire_Client_Projet & "\"
Chemin_Modeles = "D:\00-suivi-affaires" & "\00-modeles\*"
Chemin_Echanges = Chemin_Base & Code_Affaire_Client_Projet & "\02-donnees-echanges\"
Fichier_Chiffrage = Chemin_Final & Code_Affaire & "-chiffrage.xls"
Fichier_Temps = Chemin_Final & Code_Affaire & "-temps.xls"
Fichier_Renseignements = Chemin_Final & Code_Affaire & "-renseignements.xls"
Fichier_Devis = Chemin_Final & Code_Affaire & "-devis.xls"
Fichier_BL = Chemin_Final & Code_Affaire & "-bon-livraison.xls"
Fichier_Liste_Clients = "D:\00-suivi-affaires\liste-clients-2009.xls"
Suppression_Zone_Client = Sheets("calcul-suivi").[X34].Value
Suppression_Zone_Contact = Sheets("calcul-suivi").[X37].Value
Diag_Style = vbYesNo + vbExclamation + vbDefaultButton2
'
Prout.CreateFolder (Chemin_Base & Code_Affaire_Client_Projet)
Prout.CopyFolder Chemin_Modeles, Chemin_Final
Prout.CopyFile Chemin_Modeles, Chemin_Final
Name Chemin_Final & "chiffrage.xls" As Chemin_Final & Code_Affaire & "-chiffrage.xls"
Name Chemin_Final & "temps.xls" As Chemin_Final & Code_Affaire & "-temps.xls"
Name Chemin_Final & "renseignements.xls" As Chemin_Final & Code_Affaire & "-renseignements.xls"
Name Chemin_Final & "devis.xls" As Chemin_Final & Code_Affaire & "-devis.xls"
Name Chemin_Final & "bon-livraison.xls" As Chemin_Final & Code_Affaire & "-bon-livraison.xls"
'
End Sub
donc déjà c'est chiant de se coller toutes les variables au début de chaque macro et en plus y'a un truc qui merde: quand la macro de création de dossier s'effectue , elle verifie si le chamin d'acces n'existe pas et si c'est bon je veux qu'elle me mette la variable Code_Affaire_OK à 1 sinon à 0.
et apres dans ma macro principale, ca doit verifier la valeur de cette variable et continuer ou pas la macro mais là ca merde...
au secours svp...