Bonjour à tous,
Mon problème est que dans le 1er Sub je défini la valeur de deux variables "nomDossier" et "N_Dossier". Durant l'exécution du 1er programme à chaque fois que j'appel les variables elles sont égales aux valeurs que je leur ai définies. Cependant, dans le second Sub, les variables ne sont pas égales aux valeurs défini dans le 1er Sub. Elles sont égales à 0. Que faire ?
PS : Le 2ème Sub est Appeler dans le 1er sub
Voci le 1er Sub :
Voici le 2ème sub :
Merci d'avance pour vos réponses.
Bonne journée.
Mon problème est que dans le 1er Sub je défini la valeur de deux variables "nomDossier" et "N_Dossier". Durant l'exécution du 1er programme à chaque fois que j'appel les variables elles sont égales aux valeurs que je leur ai définies. Cependant, dans le second Sub, les variables ne sont pas égales aux valeurs défini dans le 1er Sub. Elles sont égales à 0. Que faire ?
PS : Le 2ème Sub est Appeler dans le 1er sub
Voci le 1er Sub :
VB:
Public Sub CreerNouveauDossier()
' Spécifie le nom du dossier à créer
Dim nomDossier As Integer
Dim N_Dossier As Integer
Dim Firstcell As Long
Dim maFormule As String
Dim Lignecoller As Long
Dim cheminDossier As String
Dim nomFichier As String
Dim plageDonnees As String
Dim feuilleSource As String
Dim colonneResultat As String
nomDossier = InputBox("Veuillez saisir le nom du nouveau dossier : [exemple : Ligne 24 (attention à ne pas mettre d'espace,ni avant, ni après)]", "Nouveau Dossier")
N_Dossier = InputBox("Veuillez saisir le N° de la nouvelle ligne : (exemple : 24)", "Nouveau Dossier")
' Vérifie si l'utilisateur a saisi un nom de dossier
If nomDossier <> "" Then
' Spécifie le chemin complet du nouveau dossier
cheminDossier = "S:\Fabrication\Service_Fabrication\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\" & nomDossier
' Vérifie si le dossier n'existe pas déjà
If Dir(cheminDossier, vbDirectory) = "" Then
' Crée le dossier
MkDir cheminDossier
cheminDossierArchives = "S:\Fabrication\Service_Fabrication\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\" & nomDossier & "\" & "Archives"
MkDir cheminDossierArchives
MsgBox "Le dossier '" & nomDossier & "' a été créé dans S:\Fabrication\Service_Fabrication\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\"
'identifier le chemin du fichier (Copie du fichier que l'on doit réaliser)
chemin_Orginal = "S:\Fabrication\Service_Fabrication\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\Fichier OEE (original)" & "\"
Nom_Original = "OEE Lxx année en cours.xlsm" 'Nom du fichier
chemin_fichier = chemin_Orginal & Nom_Original
'identifier le chemin du fichier (destination)
Chemin_Archive = "S:\Fabrication\Service_Fabrication\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\" & nomDossier & "\" 'Chemin d'accès au dossier
Nom_Archive = "OEE L" & N_Dossier & " année en cours.xlsm" 'Nom du fichier
chemin_destination = Chemin_Archive & Nom_Archive
'copier le fichier sans l'ouvrir
FileCopy chemin_fichier, chemin_destination
'Parametre le fichier crée au nom du fichier choisi par l'utilisateur
Workbooks.Open chemin_destination
Sheets("suppression données").Activate
ActiveSheet.Unprotect "1234"
Sheets("suppression données").Range("B20").Value = N_Dossier
DonnéesD16 = Sheets("suppression données").Range("D16").Value
ActiveSheet.Protect Password:="1234", Contents:=True, AllowUsingPivotTables:=True
ActiveWorkbook.Close SaveChanges:=True 'pas sur du code, il peut fermer le fichier ou le code se situe
'Derterminer la 1ère cellule vide dans la feuille Sauvegarde&Sup des données
Worksheets("Données").Activate
DernièreLigne1 = Cells(Rows.Count, 1).End(xlUp).Row
DernièreLigne = DernièreLigne1 + 1
'permet de créer les chemins de destination
Range("A" & DernièreLigne).Value = "L" & N_Dossier
Range("B" & DernièreLigne).Value = DonnéesD16
Range("C" & DernièreLigne).Value = Nom_Archive
Range("D" & DernièreLigne).Value = "S:\Fabrication\Service_Fabrication\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\" & nomDossier & "\Archives"
'Call du 2ème Sub
Call Insertion_Fichier_Suivi_OEE
Else
' Affiche un message d'erreur si le dossier existe déjà
MsgBox "Le dossier '" & nomDossier & "' existe déjà dans S:\Fabrication\Service_Fabrication\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\. Veuillez choisir un autre nom.", vbExclamation
Exit Sub ' Arrête le processus en cas d'erreur
End If
Else
' Affiche un message d'erreur si aucun nom de dossier n'a été saisi
MsgBox "Veuillez saisir un nom de dossier.", vbExclamation
Exit Sub ' Arrête le processus en cas d'erreur
End If
End Sub
Voici le 2ème sub :
VB:
Public Sub Insertion_Fichier_Suivi_OEE()
Dim Firstcell As Long
Dim maFormule As String
Dim Lignecoller As Long
Dim cheminDossier As String
Dim nomFichier As String
Dim plageDonnees As String
Dim feuilleSource As String
Dim colonneResultat As String
' Ouvrir le classeur contenant les données
Workbooks.Open "G:\Bases de données ligne éléctronique UO1\OEE SMT\SHOP1 - Suivi OEE année en cours.xlsm"
'******************************************************************************************************************************
'******************************Daily OEE Janvier*******************************************************************************
'******************************************************************************************************************************
' Activer la feuille "OEE QUOTIDIEN Janvier"
Sheets("OEE QUOTIDIEN Janvier").Activate
' Trouver la première cellule vide dans la colonne B
Firstcell = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
' Insérer une nouvelle ligne
Rows(Firstcell).Insert
'Repères pour coller la formule + déterminer la dernière ligne
JFMJAOD = "AH"
AJSN = "AG"
Fev = "AF"
FinMois = JFMJAOD
MsgBox (nomDossier)
colonneResultat = "C" & Firstcell - 1
colonneResultatMois = FinMois & Firstcell - 1 'Soit AH--> mois 31jours / AG--> mois 30jours ou AF--> Février à modif pour les différent mois
'Noter le nom de la ligne
Range("B" & Firstcell - 1).Value = "L" & N_Dossier
' formule à étirer pour l'OEE de chaque jour (à modifier pour chaque mois)
maFormule = "=IFERROR(HLOOKUP(C$3,'G:\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\" & nomDossier & "\[OEE L" & N_Dossier & " année en cours.xlsm]Suivi OEE et OEE Suivi pertes'!$B$35:$AF$36, 2, FALSE), """")"
Range(colonneResultat).Formula = maFormule
'formule à étirer pour l'OEE de chaque jour [Soit AH--> mois 31jours / AG--> mois 30jours ou AF--> Février à modif pour les différents mois]
Range(colonneResultat).AutoFill Destination:=Range(colonneResultat & ":AG" & Firstcell - 1), Type:=xlFillDefault
Range(colonneResultatMois).Formula = "=IFERROR(HLOOKUP(" & FinMois & "$3,'G:\Bases de données ligne éléctronique UO1\OEE ligne électronique UO1\" & nomDossier & "\[OEE L" & N_Dossier & " année en cours.xlsm]Suivi OEE et OEE Suivi pertes'!$A$119:$M$120, 2, FALSE),"""")"
End Sub
Merci d'avance pour vos réponses.
Bonne journée.