VBA Code:
Sub Generer_Num_FNC_2()
Dim xWb As Workbook
On Error Resume Next
Set xWb = Application.Workbooks.Item(Name)
Dim verification As Boolean
Dim clascompteur As String
Dim Claslauncher As String
estclasseurouvert = (Not xWb Is Nothing)
Dim Wb As Workbook
Dim LADATE As Date
Dim v As Variant
Claslauncher = "P:\01-Qualité\K - Qualité Usinage\00 - Modèle\" & "Left(chemin, pos - 1)" & ".xlsm" 'Essai avec Left... entre guillemets
clascompteur = "P:\01-Qualité\K - Qualité Usinage\00 - Modèle\COMPTEUR.xlsm"
' figer l'écran
Application.ScreenUpdating = True
' 1ere étape: récupérer le nom de ce classeur
chemin = ActiveWorkbook.Name
pos = InStr(chemin, ".xlsm")
' MsgBox Left(chemin, pos - 1) ' La fonction left permet de retourner que le nom du classeur, sans son extension
' Déverrouiller l'onglet "Formulaire"
Workbooks(chemin).Activate
Sheets("Formulaire").Unprotect Password:="gnt"
' vérifier si classeur "Compteur" existe
If Len(Dir(clascompteur)) = 0 Then
MsgBox "ERREUR: Le classeur Compteur n'existe pas"
Exit Sub
' Else 'MsgBox "Le classeur existe"
End If
' vérifier si classeur "Compteur" est ouvert
verification = estclasseurouvert(clascompteur)
If verifiation = False Then 'false = classeur fermé; True = classeur ouvert
'MsgBox "cliquer OK pour ouvrir le classeur compteur"
Else
MsgBox "Un autre utilisateur utilise déjà le compteur. Veuillez recommencer"
End If
On Error GoTo Invalid:
Workbooks.Open Filename:=clascompteur
ActiveWorkbook.RunAutoMacros xlAutoOpen
' Workbooks("COMPTEUR").Sheets("Feuil1").Range("E2").Copy
v = Workbooks("COMPTEUR").Sheets("Feuil1").Range("E2")
Workbooks(chemin).Activate
' Sheets("Formulaire").Visible = True
Workbooks(chemin).Worksheets("Formulaire").Range("FNC_Num") = v
' Selection.Paste
' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Workbooks("COMPTEUR").Activate
Workbooks("COMPTEUR").Close savechanges = True
Workbooks(chemin).Activate
' Insérer la date du jour dans la cellule "Date_Rédaction" & "Date_Détection"
LADATE = Date
Range("Date_Rédaction") = Format(LADATE, "DD/MM/YYYY") 'WW renvoie numéro de semaine
Range("Date_Détection") = Format(LADATE, "DD/MM/YYYY") 'WW renvoie numéro de semaine
Sheets("Formulaire").Protect Password:="gnt"
Worksheets("Formulaire").Activate
Worksheets("Formulaire").Range("Criticité").Select
' Rafraichir l'écran
Application.ScreenUpdating = True
Exit Sub
Invalid:
MsgBox ("Cliquez une deuxième fois, ça va marcher")
' Retourner à l'onglet "Accueil"
Sheets("Accueil").Activate
Range("A1").Select
End Sub
Happy New Year!
The code below opens a "counter" workbook that runs in autorun. Each time you open it, the workbook counter increases. The code copies and pastes the new value. Everything is fine on my computer, but not on my colleague's. It seems to me that the default line would be as follows:
Workbooks.Open Filename:=clascompteur
ActiveWorkbook.RunAutoMacros xlAutoOpen
v = Workbooks("COMPTEUR").Sheets("Feuil1").Range("E2")
Workbooks(chemin).Activate
Workbooks(chemin).Worksheets("Formulaire").Range("FNC_Num") = v
Do you have an idea, please?
COMPTEUR.xlsm | |||||||
---|---|---|---|---|---|---|---|
A | B | C | D | E | |||
1 | Compteur | Date | Année | Mois | N° de FNC | ||
2 | 450 | 02/01/2024 | 2024 | 1 | 24-01-0450 | ||
Feuil1 |
Cell Formulas | ||
---|---|---|
Range | Formula | |
B2 | B2 | =TODAY() |
C2 | C2 | =YEAR(B2) |
D2 | D2 | =MONTH(B2) |
E2 | E2 | =CONCATENATE(RIGHT(C2,2),"-",REPT(0,2-LEN(D2))&D2,"-",REPT(0,4-LEN(A2))&A2) |
Named Ranges | ||
---|---|---|
Name | Refers To | Cells |
Counter | =COMPTEUR[Compteur] | E2 |
LAUNCHER_20.xlsm | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | F | G | H | K | L | M | N | O | P | Q | |||||||||
3 | FNC N° | Niveau de criticité (Liste déroulante) | OF N° | Code article | Moment de détection | Date de détection (Si différent corriger) | Type de défaut (Liste déroulante) | Défaut ou Non-Conformité constaté | Qté de pièces NC | Qté totale de pièces servies sur l'OF | Quantité d'OF à sécuriser à votre ilot? | ||||||||
4 | |||||||||||||||||||
Formulaire |
Cells with Data Validation | ||
---|---|---|
Cell | Allow | Criteria |
M4 | List | =INDIRECT("ListeDéfauts") |
F4 | List | =INDIRECT("NiveauCriticité") |
Thanx a lot for your help!
Last edited: