Créer un classeur à partir de plusieurs données
3GB,
Alors en fait les "x" en col "G" permettent d'informer le nom du deuxième contrôleur si besoin sur chaque feuille et chaque ligne ligne bien distincte. Donc oui à moins d'avoir une autre solution...
Le but serai de pouvoir modifié le nouveau répertoire en ajoutant 1 ligne par exemple entre la AV-006 et la AV-007 , et qu'ensuite via un bouton mise à jour, le classeur se modifie automatiquement..
Cela deviendrai la "AV-007" et l'ancienne "007" deviendrai "008" et ainsi de suite,
=Insere la nouvelle feuille en modifiant seulement les valeurs renseigner dans le répertoire donc colonnes "A, B, C" mais ne change pas les autres valeurs renseignée manuellement par l'utilisateur " C", "NOM", "DATE"..etc...
Est ce que je répond à tes questions?
Bonjour Willkaa,
Je suis de retour avec une grosse mise à jour mais je suis limité au niveau des tests donc je n'ai pas essayé toute la partie création de classeur, insertion, suppression de feuilles.
Nous avons donc une petite formule en feuille AV-FK-001. Mais perso, je rajouterai une colonne pour le second contrôleur que ce soit plus clair.
Nous avons aussi un classeur modele qui crée un nouveau classeur avec les feuilles désignées dans le répertoire (ça c'était ok) mais avec des petites nouveautés :
- au moment de la création, il y a jout des liens hypertextes permettant de se rendre sur les feuilles,
- et le bouton du répertoire du nouveau cahier est modifié et se voit attribuer une nouvelle macro : LancerMajCahier.
Cette nouvelle macro en exécute 2 : MajSuppression et MajInsertion. Comment ? En testant les lignes du tableaux et principalement la colonne 9 des liens (et aussi la colonne 1 des noms de fiches) pour y voir des incohérences avec les feuilles présentes... J'ai fait d'une pierre deux coups et ça aurait été plus complexe sans ce moyen je pense.
Donc, il ne faut surtout pas, lors de l'insertion d'une ligne dans la tableau du répertoire du nouveau classeur, chercher à ajouter un hypertexte. La macro LancerMajCahier doit s'en occuper.
Je t'invite à faire des essais car je n'ai absolument pas regardé le résultat du code.
Bonjour à toi 3GB
Wouah ça à l'air de toute beauté ce que tu m'as fait!
Alors écoute je regarde tout ça et je reviens vers toi!
C'est de toute beauté
Et c'était assez long donc je me suis pas particulièrement appliqué. On verra s'il y a des modifications importantes à faire.
Ah oui, j'oubliais, il faut bien que tu définisses le chemin (nom complet) du classeur modèle dans la macro MajCahierInsertion sinon ça va pas très bien marcher.
A plus,
Alors la ce sont des codes a s'y perdre !
Donc après plusieurs essai j'ai essayer comprendre ce qu'il se passait,
Alors on va y aller par étapes. ( d'ailleurs avec les accents ça m'encode différemment je devrais les supprimés! surement une erreur de version EXCEL..)
Premierement il commence à planter a ce niveau:
.Seets(fselect).Copy
Ensuite il m'as dit que le .name = nvnom etait déja utilisé
Sub NouveauCahier()
Dim wbsource As Workbook, wbnew As Workbook
Dim rcahier As Range, rnvcahier As Range
Dim modele$, nvnom$, identification$, addid$, desti$, repert$
Dim nb%, i%
Dim fselect()
Set wbsource = ThisWorkbook 'classeur origine
Set rcahier = wbsource.Sheets("Répertoire Nouveau Cahier").Range("RepCahier") 'tableau des fiches nouveau cahier
nb = rcahier.Rows.Count 'nombre lignes rcahier
fselect = Array("MENU1", "Entête", "Répertoire Nouveau Cahier", "Répertoire fiche de contrôle", "Réserves", "Listes") 'feuilles à copier d'office
Application.ScreenUpdating = False
With wbsource
.Sheets(fselect).Copy
Set wbnew = ActiveWorkbook
For i = 1 To nb 'pour chaque ligne de rcahier
modele = rcahier(i, 2).Value 'nom feuille modele = valeur en B
nvnom = rcahier(i, 1).Value 'nouveau nom feuille = valeur en A
identification = rcahier(i, 3).Value 'identification = valeur en C
addid = rcahier(i, 4).Value 'valeur en D
desti = rcahier(i, 5).Value 'valeur en E
If modele Like "AV-FK*" Then 'si modele commence par AV
If Not FeuilleExiste(wbsource, modele) Then GoTo Err 'si feuille existe pas, sortie vers Err
.Sheets(modele).Copy after:=wbnew.Sheets(Sheets.Count) 'copie feuille au nom modele aprs la dernire feuille du nv classeur
With wbnew.Sheets(Sheets.Count) 'avec cette nouvelle et dernire feuille du nv classeur
.Name = nvnom 'nom feuille cr__e = nvnom
.Range(addid).Value = identification 'cellule ö l'adresse addid = identification
.Range(desti).Value = nvnom 'cellule ö l'adresse desti = nouveau nom
End With
End If
Next i
End Withet quand je reprends l'ancienne macro ça fonctionne bien
Sub NouveauCahier()
Dim wbsource As Workbook, wbnew As Workbook
Dim rcahier As Range
Dim modele$, nvnom$, identification$, addid$, desti$, repert$
Dim nb%, i%
Dim fselect()
Set wbsource = ThisWorkbook 'classeur origine
Set rcahier = wbsource.Sheets("Répertoire Nouveau Cahier").Range("RepCahier") 'tableau des fiches nouveau cahier
nb = rcahier.Rows.Count 'nombre lignes rcahier
fselect = Array("MENU1", "Entête", "Répertoire fiche de contrôle", "Répertoire Nouveau Cahier", "Listes", "Réserves", "Listes") 'feuilles ˆ copier d'office
Application.ScreenUpdating = False
With wbsource
.Sheets(Array("Entête", "Répertoire fiche de contrôle", "Répertoire Nouveau Cahier", "MENU1", "Listes", "Réserves")).Copy 'CAS 1 : copie feuilles entete et fiche controle dans nouveau classeur
'CAS 2 : .Sheets("Entête").Copy
Set wbnew = ActiveWorkbook 'affectation wbnew 'CAS 1 ou 2
'CAS 2 : .Sheets("Répertoire fiche de contrôle").Copy after:=wbnew.Sheets("Entête")
'.Sheets(fselect).Copy 'copie feuilles d'office dans nouveau classeur
Set wbnew = ActiveWorkbook 'affectation wbnew
For i = 1 To nb 'pour chaque ligne de rcahier
modele = rcahier(i, 2).Value 'nom feuille modele = valeur en B
nvnom = rcahier(i, 1).Value 'nouveau nom feuille = valeur en A
identification = rcahier(i, 3).Value 'identification = valeur en C
addid = rcahier(i, 4).Value 'valeur en D
desti = rcahier(i, 5).Value 'valeur en E
If modele Like "AV*" Then 'si modele commence par AV
If Not FeuilleExiste(wbsource, modele) Then GoTo Err 'si feuille existe pas, sortie vers Err
.Sheets(modele).Copy after:=wbnew.Sheets(Sheets.Count) 'copie feuille au nom modele aprs la dernire feuille du nv classeur
With wbnew.Sheets(Sheets.Count) 'avec cette nouvelle et dernire feuille du nv classeur
.Name = nvnom 'nom feuille crŽŽe = nvnom
.Range(addid).Value = identification 'cellule ˆ l'adresse addid = identification
.Range(desti).Value = nvnom 'cellule ˆ l'adresse desti = nouveau nom
End With
End If
Next i
End WithOui, ça commence à faire lourd...
En fait, j'ai un mac d'où la conversion des accents et ce serait une idée éclairée que de passer sans aucun caractères accentués !!!
Le sheets(fselect) bloque probablement à cause des accents. Il va malheureusement falloir que tu les contrôles tous (mais je vais quand même ta copier les codes pour t'éviter tout ce boulot). Sinon, c'est soit une des 6 feuilles du classeur modèle qui a été renommée, soit un nom de feuille qui n'est pas parfaitement libellé à la ligne fselect = array ...
Pour le .name = nvnom, c'est assez énigmatique. Normalement, il copie des feuilles AV-FK et les renommes AVxxx. La seule possibilité selon moi serait une coquille dans la colonne Fiches du classeur modèle (feuille cahier), plus précisément un doublon de valeurs.
Cette macro n'est pas si différente de l'ancienne (et le début est identique si je ne me trompe pas) donc ce ne sont que des problèmes de noms mal libellés.
Je reviens avec les codes.
MODULE MAJCLASSEUR
Option Base 1
Sub LancerMajCahier()
Call MajCahierSuppression
Call MajCahierInsertion
End Sub
Sub MajCahierSuppression() 'suppression en rafale des feuilles correspondant à des lignes supprimées du répertoire (macro exclusivement sur classeur courant, à utiliser dans nouveau cahier)
Dim wsrep As Worksheet
Dim rnvcahier As Range
Dim FeuilleReste(), NouveauNom()
Dim i%, n%, j%
Dim conserver As Boolean
Set wsrep = Sheets("Répertoire Nouveau Cahier") 'feuille repertoire nouveau cahier
Set rnvcahier = wsrep.Range("RepCahier") 'tableau liste fiches nouveau cahier
Application.ScreenUpdating = False 'désactive maj écran
If Application.CountIfs(rnvcahier.Columns(1), "<>", rnvcahier.Columns(9), "<>") > Worksheets.Count - 6 Then 'si nb lignes avec fiches et lien non vides > nb de feuilles - 6 (cad au nb fiches)
For i = 1 To rnvcahier.Rows.Count 'pour chaque ligne du tableau
If rnvcahier(i, 1).Value <> "" And rnvcahier(i, 9).Value <> "" Then 'si fiche et lien non vides
n = n + 1 'incrémentation n
ReDim Preserve FeuilleReste(n) 'redimension du tableau listant feuille devant rester
ReDim Preserve NouveauNom(n) 'redimension du tableau listant les nouveaux noms des feuilles devant rester
FeuilleReste(n) = Replace(Replace(rnvcahier(i, 9).SubAddress, "!A1", ""), "'", "") 'nouvel item du tableau vaut nom feuille en cours : sur cellule lien en cours, l'adresse de pointage du lien renvoie 'nomfeuille'!A1. On remplace par vide !A1 et ' pour obtenir nomfeuille
NouveauNom(n) = rnvcahier(i, 1).Value 'nouveau nom en cellule fiche
End If
Next i
For i = 6 To Sheets.Count 'de la feuille 6 à la dernière feuille (commence à 6 pour éviter bug)
If Sheets(i).Name Like "AV*" Then 'si nom feuille commence par AV
For j = 1 To n 'comparaison avec chaque feuille devant rester
If Sheets(i).Name = FeuilleReste(j) Then conserver = True: Exit For 'si feuille en cours fait partie des feuilles devant rester, conserver vaut vrai, on quitte la boucle
Next j
If conserver Then 'si conserver vaut vrai
Sheets(i).Name = NouveauNom(j) 'on renomme la feuille devant rester
Else 'sinon
Application.DisplayAlerts = False 'désactive alertes
Sheets(i).Delete 'on supprime la feuille
Application.DisplayAlerts = True 'on réactive alertes
End If
conserver = False 'on remet conserver sur faux
End If
Next i
End If
Application.ScreenUpdating = True 'réactive maj ecran
Set rnvcahier = Nothing: Set wsrep = Nothing 'liberation variables
'RQ : cette macro n'agit donc que sur le classeur executant _
elle permet d'eviter les lignes du tableau de fiches n'ayant pas de valeur dans la colonne lien (notamment celles qui ont été insérées)
End Sub
Sub MajCahierInsertion()
Dim wbcahier As Workbook, wbsource As Workbook
Dim wsrep As Worksheet
Dim rnvcahier As Range
Dim nomclasseur$
Dim i%, num%
nomclasseur = "......." '<<<<METTRE CHEMIN DU CLASSEUR MODELE
Set wbcahier = ThisWorkbook 'classeur executant (nouveau cahier)
Set wsrep = wbcahier.Sheets("Répertoire Nouveau Cahier") 'feuille repertoire nv cahier
Set rnvcahier = wsrep.Range("RepCahier") 'tableau fiches
Application.ScreenUpdating = False
If Application.CountIfs(rnvcahier.Columns(1), "<>", rnvcahier.Columns(9), "") > 0 Then 'si nb lignes avec fiche remplie et lien vide > 0
On Error Resume Next 'en cas d'erreur, continuer (au cas ou classeur modele est fermé)
Set wbsource = Workbooks(nomclasseur) 'classeur modele
If Err.Number = 9 Then 'si erreur : indice nappartient pas a la selection (classeur modele ferme)
Err.Clear 'effacer les erreurs
Application.DisplayAlerts = False
Set wbsource = worbooks.Open(nomclasseur) 'ouverture du classeur modele (SUGGERE UN CHEMIN CORRECT, sinon, rajouter gestion erreur 1004 puis forcer sortie procedure)
Application.DisplayAlerts = True
End If
With wbcahier 'avec nv classeur
For i = 1 To rnvcahier.Rows.Count 'pour chaque lignes des fiches nv classeur
If rnvcahier(i, 1).Value <> "" And rnvcahier(i, 9).Value = "" Then 'si fiche remplie et lien vide (donc ligne inseree)
num = Right(rnvcahier(i, 1).Value, 2) + 6 'num = index feuille concernee = droite fiche + 6
wbsource.Sheets(rnvcahier(i, 2).Value).Copy after:=.Sheets(num - 1) 'copie feuille du classeur modele a l'index num
With .Sheets(num) 'avec feuille num (feuille inseree a linstant)
.Range(rnvcahier(i, 4).Value).Value = rnvcahier(i, 3).Value 'cellule a l'adresse addid = identification
.Range(rnvcahier(i, 5).Value).Value = rnvcahier(i, 1).Value 'cellule a l'adresse desti = nouveau nom
rnvcahier(i, 9).Hyperlinks.Add anchor:=rnvcahier(i, 9), Address:="", _
SubAddress:="'" & .Name & "'!A1", _
ScreenTip:="Activez la feuille " & rnvcahier(i, 1).Value, _
TextToDisplay:="Accès à la feuille : " & rnvcahier(i, 3).Value 'ajout hypertexte en colonne lien pointant sur feuille num
End With
End If
Next i
For i = .Sheets.Count To 6 Step -1 'de la derniere feuille à la feuille 6
If .Sheets(i).Name Like "AV*" Then 'si feuille commence par AV
.Sheets(i).Name = Left(.Sheets(i).Name, 4) & Format(i - 6, "00") 'nom feuille = prefixe & suffixe = racine nom feuille & index feuille - 6 (car 6 feuilles fixes)
End If
Next i
End With
End If
wbsource.Close savechanges:=True 'ferme et sauve
Application.ScreenUpdating = True
Set rnvcahier = Nothing: Set wsrep = Nothing: wbsource = Nothing: Set wbcahier = Nothing
End SubC'est ch**nt, on doit attendre 1 minute entre 2 commentaires...
MODULE CréationClasseur
Sub NouveauCahier()
Dim wbsource As Workbook, wbnew As Workbook
Dim rcahier As Range, rnvcahier As Range
Dim modele$, nvnom$, identification$, addid$, desti$, repert$
Dim nb%, i%
Dim fselect()
Set wbsource = ThisWorkbook 'classeur origine
Set rcahier = wbsource.Sheets("Répertoire Nouveau Cahier").Range("RepCahier") 'tableau des fiches nouveau cahier
nb = rcahier.Rows.Count 'nombre lignes rcahier
fselect = Array("MENU1", "Entête", "Répertoire Nouveau Cahier", "Répertoire fiche de contrôle", "Réserves", "Listes") 'feuilles ˆ copier d'office
Application.ScreenUpdating = False
With wbsource
.Sheets(fselect).Copy
Set wbnew = ActiveWorkbook
For i = 1 To nb 'pour chaque ligne de rcahier
modele = rcahier(i, 2).Value 'nom feuille modele = valeur en B
nvnom = rcahier(i, 1).Value 'nouveau nom feuille = valeur en A
identification = rcahier(i, 3).Value 'identification = valeur en C
addid = rcahier(i, 4).Value 'valeur en D
desti = rcahier(i, 5).Value 'valeur en E
If modele Like "AV*" Then 'si modele commence par AV
If Not FeuilleExiste(wbsource, modele) Then GoTo Err 'si feuille existe pas, sortie vers Err
.Sheets(modele).Copy after:=wbnew.Sheets(Sheets.Count) 'copie feuille au nom modele après la dernière feuille du nv classeur
With wbnew.Sheets(Sheets.Count) 'avec cette nouvelle et dernière feuille du nv classeur
.Name = nvnom 'nom feuille cr__e = nvnom
.Range(addid).Value = identification 'cellule ˆ l'adresse addid = identification
.Range(desti).Value = nvnom 'cellule ˆ l'adresse desti = nouveau nom
End With
End If
Next i
End With
'Call HypertextesRafale(wbnew.Sheets("Répertoire Nouveau Cahier").Range("RepCahier"))
With wbnew
Set rnvcahier = .Sheets("Répertoire Nouveau Cahier").Range("RepCahier") 'tableau des fiches nouveau cahier
For i = 1 To nb
If Not rnvcahier(i, 1).Value = "" Then
rnvcahier(i, 9).Hyperlinks.Add _
anchor:=rnvcahier(i, 9), _
Address:="", _
SubAddress:="'" & rnvcahier(i, 1).Value & "'!A1", _
ScreenTip:="Activez la feuille " & rnvcahier(i, 1).Value, _
TextToDisplay:="Accès à la feuille : " & rnvcahier(i, 3).Value
End If
Next i
With .Sheets("Répertoire Nouveau Cahier").Buttons(1)
.Text = "Mettre à jour les fiches"
.Name = "MAJCLASSEUR"
.OnAction = "LancerMajCahier"
End With
End With
Application.ScreenUpdating = True
'wbnew.Close savechanges:=True, Filename:=wbsource.Path & "\Cahier " & Format(Now, "YYMMDD-HHMM") & ".xlsm" 'fermeture et sauvegarde wbnew au nom d_fini (ˆ modifier)
Set wbsource = Nothing: Set wbnew = Nothing
Exit Sub
Err: 'si erreur
MsgBox "Feuille " & modele & " inexistante !", vbCritical 'msg erreur
wbnew.Close savechanges:=False 'nouveau classeur ferm_ sans enregistrement
Set wbsource = Nothing: Set wbnew = Nothing
End Sub
Function FeuilleExiste(Classeur As Workbook, NomFeuille As String) As Boolean 'fonction testant existence feuille
On Error Resume Next
FeuilleExiste = Classeur.Sheets(NomFeuille).Index
End Function
'MACRO AU CAS OU MAIS INACTIVE POUR L'INSTANT
Sub HypertextesRafale(Tableau As Range)
Dim i%
For i = 1 To Tableau.Rows.Count
If Not Tableau(i, 1).Value = "" Then
Tableau(i, 9).Hyperlinks.Add _
anchor:=Tableau(i, 9), _
Address:="", _
SubAddress:="'" & Tableau(i, 1).Value & "'!A1", _
ScreenTip:="Activez la feuille " & Tableau(i, 1).Value, _
TextToDisplay:="Accès à la feuille : " & Tableau(i, 3).Value
End If
Next i
End SubMODULE ManipOnglets
Sub CreerBoutons()
Dim sh As Shape
Dim col%
Dim shrep As Button, shres As Button
For Each cell In Sheets("Listes").Range("Fiches")
Set feuille = Sheets(cell.Value)
With feuille
col = .Cells.Find("XXX").Column
For Each sh In .Shapes
If sh.Type = msoFormControl Then sh.Delete
Next
Set shrep = .Buttons.Add(.Cells(6, col).Left, .Cells(6, col).Top, 138, 30)
Set shres = .Buttons.Add(.Cells(10, col).Left, .Cells(10, col).Top, 138, 30)
With shrep
.Text = "Répertoire"
.Name = "Répertoire"
.OnAction = "AllerRepertoire"
End With
With shres
.Text = "Réserve"
.Name = "Réserve"
.OnAction = "AllerReserve"
End With
End With
Next
End Sub
Sub AllerRepertoire()
Sheets("Répertoire Nouveau Cahier").Activate
End Sub
Sub AllerReserve()
Sheets("Réserves").Activate
End SubAh oui..
Merci! Je vais recoller tout ça, et vérifié les nom de feuilles
ah et tu me me disais qu'il fallait que je mette le chemin, mais si je mets "Windows(1-Cahier......)" ça ne fonctionne pas; Alors je pense que je l'écris surement mal..
Le chemin c'est : "C:\Willkaa\Cahiers\...\nomdufichier.xlsm". Bien sûr, c'est un exemple
Sub monchemin()
range("Z1").value = thisworkbook.fullname
end subAvec cette macro, tu auras le chemin du fichier (donc le fichier modele !) sur la cellule Z1 de la feuille active.
Edit : bon, j'espère que tu reviendras avec de bonnes nouvelles à ton prochain message
Alors j’aurais aimer sincèrement
Je comprends pas ce qui se passe
J'ai inséré une ligne dans le répertoire et quand j'ai appuyer sur "Mettre à jour les fiches" il n'y a eu aucun message d'erreur
et rien de plus..
Par contre il m'a changé le nom des feuilles sur mon classeur modèle en 'AV-F01' et rempli aussi les identifications des fiches modèles et elles porte le nouveau nom "AV-007" en "F6"
Ah c'est embêtant... Il a exécuté la macro sur le classeur modèle au lieu d'agir sur le classeur Cahier. Peux-tu essayer en modifiant ainsi :
A LA FIN DE LA MACRO NouveauCahier :
.saveas filename:="Cahier " & Format(Now, "YYMMDD-HHMM") & ".xlsm"
With .Sheets("Répertoire Nouveau Cahier").Buttons(1)
.Text = "Mettre à jour les fiches"
.Name = "MAJCLASSEUR"
.OnAction = "'" & wbnew.name & "'!LancerMajCahier"
End WithJ'ai aucune certitude mais je ne vois pas comment faire autrement pour l'instant...
J'ai un petit problème Maître.. Vous allez rire mais "à la fin" .. Ca signifie entre quoi et quoi plutôt car je sais pas quel endroit après plusieurs essai c'est toujours pas le bon endroit ..
Next i
With .Sheets("Répertoire Nouveau Cahier").Buttons(1)
.Text = "Mettre à jour les fiches"
.Name = "MAJCLASSEUR"
.OnAction = "LancerMajCahier"
End With
End With
.SaveAs Filename:="Cahier " & Format(Now, "YYMMDD-HHMM") & ".xlsm"
With .Sheets("Répertoire Nouveau Cahier").Buttons(1)
.Text = "Mettre à jour les fiches"
.Name = "MAJCLASSEUR"
.OnAction = "'" & wbnew.Name & "'!LancerMajCahier"
End With
Application.ScreenUpdating = True
'wbnew.Close savechanges:=True, Filename:=wbsource.Path & "\Cahier " & Format(Now, "YYMMDD-HHMM") & ".xlsm" 'fermeture et sauvegarde wbnew au nom d_fini (ˆ modifier)
Set wbsource = Nothing: Set wbnew = Nothing
Exit SubDésolé, c'est moi qui ne suis pas assez clair mais comme il commence à y avoir pas mal de code, j'abrège. Il faut remplacer :
With .Sheets("Répertoire Nouveau Cahier").Buttons(1)
.Text = "Mettre à jour les fiches"
.Name = "MAJCLASSEUR"
.OnAction = "LancerMajCahier"
End Withpar :
.SaveAs Filename:="Cahier " & Format(Now, "YYMMDD-HHMM") & ".xlsm"
With .Sheets("Répertoire Nouveau Cahier").Buttons(1)
.Text = "Mettre à jour les fiches"
.Name = "MAJCLASSEUR"
.OnAction = "'" & wbnew.Name & "'!LancerMajCahier"
End WithOn sauve le fichier, qui de cette manière a un nom.
Ensuite, on affecte au bouton de la feuille rép nv cahier du nouveau classeur la macro LancerMajCahier du nouveau classeur.
En espérant que ç amarche évidemment...
Bonne soirée,
Salut Willkaa,
Je vais bien mais il est vrai que je me sens mieux en août. Et toi comment vas-tu ?
Pour ce problème, peux-tu essayer ainsi :
.SaveAs Filename:="Cahier " & Format(Now, "YYMMDD-HHMM"), fileformat:=xlOpenXMLWorkbookMacroEnabledJe suis en train de m'interroger sur les macros du modele. Pourrais-tu vérifier si elles sont reprises dans le nouveau cahier ? Je n'ai jamais essayé ce genre de manipulations donc je n'ai aucune certitude du résultat. Sinon, j'essaierais de trouver un moyen de reprendre les macros du classeurs d'origine...
Fraîchement quand je pointe le bout de mon nez dehors!
Alors ce problème est réglé,
Mais tu as raison il n'y a aucune macro dans le nouveau classeur créé
Oui, c'est ce que je me disais. On a pas abordé la chose de la bonne manière donc il va falloir changer de stratégie, qui s'avérera probablement un peu simple en fin de compte.
Mais je vais devoir modifié le code NouveauCahier...
Très bien j'attends tes ordres
