Simplification fichier avec macro
Bonjour,
Utilisant un fichier excel avec macro depuis plusieurs années, je vois de plus en plus les difficultés de celui-ci.
Plusieurs feuilles reprennent les mêmes informations (la macro copie les informations dans la feuille « tableau général" qui reprend l 'ensemble des informations et copie également les informations dans une feuille dédié à chaque produit spécifique)
Je souhaiterai toujours avoir ce système mais avec un lien direct entre les 2
Je m’explique, quand je dois modifié certaines entrées à l'unité, il me faut changer les données dans les différentes feuilles manuellement alors que je souhaiterai pouvoir les changer dans la feuille "tableau général" et que celles-ci se changent automatiquement dans les autres feuilles.
Pourriez-vous donc me simplifier mon fichier ou me proposer un autre type de mise en forme.
Merci beaucoup pour votre aide car moi j’ai atteint malheureusement les limites de mes connaissances.
Bonjour,
A voir le tableau général colonne C, on est en terre de connaissance là...
Il faudrait en premier comprendre le fonctionnement du fichier. je suppose que vous partez de la feuille Choix ?
A première vue, un truc qui gêne c'est qu'il n'y a pas de code article
Sinon il y a du boulot là...
bonjour,
Oui je pars de la feuille choix .
Qui est validée et envoie les données vers la feuille récap choix grace à une macro.
De cette feuille recap choix, des modifications peuvent etre apportée aux données avant la validation.
une fois la validation effectuée, une macro copie les données de la feuille recap choix vers la feuille tableau général ainsi que vers une des autres feuilles (qui est selectionnée par la macro par rapport a la dénomination de l'article)
Mon problème est que "l'article copié" est un ensemble d'article (un peu comme un colis ikea :p)
et mon plus gros soucis est que lorsque je veux pour une raison ou un autre modifier un encodage, je suis obligé de le modifier dans la feuille tableau général et dans la feuille à laquelle l'article se rapporte. Ce qui est fastidieux et source d'erreur
et je ne peux pas ne pas avoir des feuilles séparée car chaque ensemble est composé de pieces spécifiques que je dois pouvoir compté (ce qui est fait dans les différentes feuilles)
J espere avoir été clair....
Bonjour
Oui je pars de la feuille choix .Qui est validée et envoie les données vers la feuille récap choix grace à une macro.
De cette feuille recap choix, des modifications peuvent etre apportée aux données avant la validation.
Oui j'ai vu. Cela me paraitrait intéressant de revoir la manière de fonctionner car en gros vous utiliser trois deux feuilles alors que vous pourriez simplifier en utilisant une seule. Mais cela n'est pas l'objet de votre demande... donc à voir si cela vous intéresse.
une macro copie les données de la feuille recap choix vers la feuille tableau général ainsi que vers une des autres feuilles (qui est selectionnée par la macro par rapport a la dénomination de l'article)
Oui et c'est cela que l'on peut adapter
Vu que, si je ne me trompe, les entêtes des colonnes A à N sont identiques entre celles du tableau général et celles des feuilles 2m, 3m, ...., l'idée serait celle -ci :
1. une macro envoie les données vers la feuille tableau général
2. une macro envoie du tableau général vers les feuilles selon la valeur de la colonne D de la feuille Tableau général. Cette macro ne toucherait pas les colonnes contenant des formules donc de O à....
Si vous modifiez quelque chose dans le tableau général, vous pourrez réactualiser toutes les feuilles selon la macro du point 2
Mes Questions :
- est-ce que les listes reprises en colonne C et D de la feuille source sont bien celles que l'on retrouve en colonne D de la feuille Tableau général ? Je pense que oui mais votre avis est important
- Est-ce ceci correspond à ce que vous souhaitez dans un premier temps ?
Edit : en annexe voici un fichier qui reprend les entêtes de colonnes par rapport au nom de feuille de la colonne A
Il y a des différences et là ce serait bien de faire une correction
Peut être me dire ce qui est à modifier
Bonjour,
Merci pour votre analyse.
Pour moi le but est que ça fonctionne de la manière la plus simple possible donc s il faut revoir les bases, je suis preneur.
La colonne d du tableau général correspond bien à la feuille source.
Si avec votre proposition, je voulais changer un élément de la feuille tableau général, étant donné que la 2eme macro copie du tableau général au différentes feuilles, le changement serai donc effectif sur les autres feuilles?
Pour moi le but est que ça fonctionne de la manière la plus simple possible donc s il faut revoir les bases, je suis preneur.
Oui on peut. Le tout est de savoir comment vous fonctionnez. Mais là le plus important est la remise à jour de vos feuilles
La colonne d du tableau général correspond bien à la feuille source.
Oui j'ai vu mais il y a trois colonnes concernées C, D et H non ? et toutes les feuilles ne sont pas créés pour ces 3 colonnes
Si avec votre proposition, je voulais changer un élément de la feuille tableau général, étant donné que la 2eme macro copie du tableau général au différentes feuilles, le changement serai donc effectif sur les autres feuilles?
Oui via un code exécuté par un bouton par exemple. Ce que vous devez savoir c'est que le code remettra à jour la totalité de chaque feuille depuis la feuille
Donc on efface tout (sauf les entetes) et on réactualise depuis la feuille tableau général. Rasion pour laquelle je vous ai donné un fichier qui reprend les entete actuelles.
Parfait je me penche la dessus ce soir afin de vous remettre un fichier adapté
Merci d avance
Voici le fichier avec les différentes pages mise a jours pour correspondre au même schéma (du moins je pense )
N' hésitez pas a me faire changer si necessaire
Merci du fichier
1. Est-ce que les couleurs doivent être dans chaque feuille et donc comme dans la tableau général ou ce n'est pas important ?
2. Feuille 6 X6 alu et 4x4 acier : il y a des formules en colonne G, on peut supprimer ?
3. Feuille 20-25m LLR :
- en N on a une mention de manchon que l'on ne trouve pas dans le tableau genéral. Si je regarde la feuille 20-25m LLR, je vois des mentions en colonne N. D'où viennent-elles
- En colonne D on a des infos 20 m nouveau. Elles ne sont pas à la bonne place je pense
4. Pouvez me confirmer que les feuilles à compléter depuis le tableau général, sont bien celles nommées sur base des valeurs trouvées dans les colonnes Largeur et Pagode de la feuille Source et uniquement celles là ?
Il faut vraiment que chaque feuille de destination soit identique pour ce qui concerne les colonnes A à N de la feuille Tableau général car le code va écraser les lignes de chaque feuille et les réimporter depuis tableau général
Imaginez que pour chaque feuille je supprime A à N avant de réimporter les données depuis le tableau général. Cela veut aussi dire que la ligne orange en fin serait supprimée.
Ne me reposter pas de fichier. Donnez-moi les modif à effectuer si besoin
1. Est-ce que les couleurs doivent être dans chaque feuille et donc comme dans la tableau général ou ce n'est pas important ? la couleur est juste un marqueur de controle afin que si je me trompe dans l encodage d une date, la nouvelle entree avec une date erronee face tache au milieu de la couleur
2. Feuille 6 X6 alu et 4x4 acier : il y a des formules en colonne G, on peut supprimer ? oui, la colonne g n est rien d autre qu une copie du tableau général.
3. Feuille 20-25m LLR :
- en N on a une mention de manchon que l'on ne trouve pas dans le tableau genéral. Si je regarde la feuille 20-25m LLR, je vois des mentions en colonne N. D'où viennent-elles la colonne n avec la mention manchon est une pièce particulière qui comme dans les autres feuille est reprise sous le nom pied h3. C est le seul moyen que j ai trouvé pour pouvoir avoir le même canevas de feuille et malgré tout pouvoir encoder et copié sans que cela ne pose problème. Les mentions en colonne n ont été ajoutée manuellement au départ mais vu le nouveau fichier, celle ci correspondront à la h3/manchon 25m De la feuille choix
- En colonne D on a des infos 20 m nouveau. Elles ne sont pas à la bonne place je pense
Cela est du à un couper coller de la feuille 20m nouveau vers la feuille 20-25mllr suite à des décisions stratégique et la dénomination n a pas été changée.
4. Pouvez me confirmer que les feuilles à compléter depuis le tableau général, sont bien celles nommées sur base des valeurs trouvées dans les colonnes Largeur et Pagode de la feuille Source et uniquement celles là ? Oui c est bien cela
Il faut vraiment que chaque feuille de destination soit identique pour ce qui concerne les colonnes A à N de la feuille Tableau général car le code va écraser les lignes de chaque feuille et les réimporter depuis tableau général
Imaginez que pour chaque feuille je supprime A à N avant de réimporter les données depuis le tableau général. Cela veut aussi dire que la ligne orange en fin serait supprimée. Attention que la copie doit être triée de z à a et dans l ordre croissant des dates afin d avoir les montages avant les demontages sur une meeme journee.
Y a t il moyen d avoir tjs la dernière ligne en orange mais avec la formule minimum (mais limitée a aujourd hui jusque fin 2040?)
Bonjour,
Par rapport à votre message d'hier sur fond bleu.--> https://forum.excel-pratique.com/s/goto/1189046
Point 1 : Ok donc cela ne gêne pas si elles ne sont pas reprises dans les feuilles
Point 2 : Ok. Point clos
Point 3 :
- Colonne N : Le souci est que lors de l'importation depuis la feuille Total général cette donnée sera effacée de la feuille. Exemple : si on prend cette feuille en C15 " fabrication 3 fermes"et une mention de 3 en N15. Comme elle n'est pas dans le tableau général cette ligne serait effacée lors de l'importation.
Cela pose d'ailleurs une question plus générale à savoir pourquoi dans le tableau général on ne trouve plus des dates de 2021. En y relisant j'ai l'impression que l'on doit laisser les données des années qui ne sont pas reprises dans le tableau général.
- Colonne D : ok. Point clos
Point 4 : ok. Point clos
Point 5 : ok. Oui les données seraient enregistrées en dessous de la dernière. Comme le code balayera de haut vers le bas dans le tableau général et enregistrera en dessous de la dernière ligne à chaque fois. cela implique aussi que votre tableau général soit dans l'ordre voulu.
Point 6 :
Y a t il moyen d avoir tjs la dernière ligne en orange mais avec la formule minimum (mais limitée a aujourd hui jusque fin 2040?)
Comment fonctionne cette formule ? Pourquoi dans certaines colonnes la formule renvoie toute la colonne et pas dans d'autres ?
exemple : feuille 3 m en P47 on va de la ligne 44 à 46, feuille 2m on va de la ligne 3 à 4.
En gros, pourquoi ne partez-vous pas chaque fois de la ligne 3
Bonjour
Point 1 : Ok donc cela ne gêne pas si elles ne sont pas reprises dans les feuilles
Point 2 : Ok. Point clos
Point 3 :
- Colonne N : Le souci est que lors de l'importation depuis la feuille Total général cette donnée sera effacée de la feuille. Exemple : si on prend cette feuille en C15 " fabrication 3 fermes"et une mention de 3 en N15. Comme elle n'est pas dans le tableau général cette ligne serait effacée lors de l'importation.
Cela est du à un changement dans la feuille et non dans le tableau general. Cela ne posera pas problème si je repars d une ligne du type inventaire (repris sous la reference demontage et ou j encode manuellement les donnees du jours de la mise en place du fichier)que je pourrai mettre dans le tableau général et effacé l historique
Cela pose d'ailleurs une question plus générale à savoir pourquoi dans le tableau général on ne trouve plus des dates de 2021. En y relisant j'ai l'impression que l'on doit laisser les données des années qui ne sont pas reprises dans le tableau général.
J ai effacé vu la taille du fichier afin de le mettre en ligne.
- Colonne D : ok. Point clos
Point 4 : ok. Point clos
Point 5 : ok. Oui les données seraient enregistrées en dessous de la dernière. Comme le code balayera de haut vers le bas dans le tableau général et enregistrera en dessous de la dernière ligne à chaque fois. cela implique aussi que votre tableau général soit dans l'ordre voulu.
Point 6 :
Y a t il moyen d avoir tjs la dernière ligne en orange mais avec la formule minimum (mais limitée a aujourd hui jusque fin 2040?)
Comment fonctionne cette formule ? Pourquoi dans certaines colonnes la formule renvoie toute la colonne et pas dans d'autres ?
exemple : feuille 3 m en P47 on va de la ligne 44 à 46, feuille 2m on va de la ligne 3 à 4.
En gros, pourquoi ne partez-vous pas chaque fois de la ligne 3
Cette formule n a jamais été automatisée et est adaptée deux fois l année manuellement afin de voir le point bas du stock à partir de la date voulu (en général la date du jour). L important de cette formule est de voir le point le plus bas futur et non dans le passé.
Point 3 :
- Colonne N : Le souci est que lors de l'importation depuis la feuille Total général cette donnée sera effacée de la feuille. Exemple : si on prend cette feuille en C15 " fabrication 3 fermes"et une mention de 3 en N15. Comme elle n'est pas dans le tableau général cette ligne serait effacée lors de l'importation.
Cela est du à un changement dans la feuille et non dans le tableau general. Cela ne posera pas problème si je repars d une ligne du type inventaire (repris sous la reference demontage et ou j encode manuellement les donnees du jours de la mise en place du fichier)que je pourrai mettre dans le tableau général et effacé l historique
Je n'ai pas saisi.
Pour faire simple, prenons l'exemple de la feuille 3m et ce que le code ferait :
- Effacement de toutes les lignes depuis A3 à W47 (on conserve la ligne 2 qui concerne le stock et les formules à droite)
- Importation des lignes comportant la valeur 3m dans la colonne D de la feuille Tableau général
- Ajout de la ligne orange (minimum) et des formules NB.SI
Cela veut dire que la feuille 3m ne reprendra que les données inscrites dans la feuille tableau général
Point 6:
Y a t il moyen d avoir tjs la dernière ligne en orange mais avec la formule minimum (mais limitée a aujourd hui jusque fin 2040?)Comment fonctionne cette formule ?
Pourquoi dans certaines colonnes la formule renvoie toute la colonne et pas dans d'autres ?exemple : feuille 3 m en P47 on va de la ligne 44 à 46, feuille 2m on va de la ligne 3 à 4.En gros, pourquoi ne partez-vous pas chaque fois de la ligne 3
Cette formule n a jamais été automatisée et est adaptée deux fois l année manuellement afin de voir le point bas du stock à partir de la date voulu (en général la date du jour). L important de cette formule est de voir le point le plus bas futur et non dans le passé.
Ok mais la date du jour n'est pas toujours mentionnée. Donc là ce n'est pas facile de se faire une règle d'autant que chaque fois que vous ferai une mise à jour on doit refaire le calcul. Peut-être se dire que l'on repère la date la plus proche ? ou alors prendre la première date de l'année en cours ?
A réfléchir
EDIT : dans la feuille 3m, est-ce normal d'avoir la date 01/02/24 en B46 après celle en B44 ?
Je n'ai pas saisi.
Pour faire simple, prenons l'exemple de la feuille 3m et ce que le code ferait :
- Effacement de toutes les lignes depuis A3 à W47 (on conserve la ligne 2 qui concerne le stock et les formules à droite)
- Importation des lignes comportant la valeur 3m dans la colonne D de la feuille Tableau général
- Ajout de la ligne orange (minimum) et des formules NB.SI
Cela veut dire que la feuille 3m ne reprendra que les données inscrites dans la feuille tableau général
J ai bien compris et c est bien cela que je désire.
Je disais juste que le point soulevé était du à une modification manuelle qui n était pas complète. (Et qui ne posera pas problème vu que je compte effacé les données qui sont avant mars 2024 afin de repartir sur une base correcte.
Ok mais la date du jour n'est pas toujours mentionnée. Donc là ce n'est pas facile de se faire une règle d'autant que chaque fois que vous ferai une mise à jour on doit refaire le calcul. Peut-être se dire que l'on repère la date la plus proche ? ou alors prendre la première date de l'année en cours ?
A réfléchir
Est il envisageable d intégrer une ligne avec la formule aujourd hui dans le tableau général avec la valeur 2m en colonne d et rien dans les autres colonnes afin que la macro qui copie vers la feuille 2m cette ligne en quelques sortes neutre et qui permettra dans la feuille 2m de faire la recherche du nombre minimum à partir de la date d aujourd hui?
Et donc creer dans le tableau général le nombre de ligne correspondant au nombre de feuille?
Est il envisageable d intégrer une ligne avec la formule aujourd hui dans le tableau général avec la valeur 2m en colonne d et rien dans les autres colonnes afin que la macro qui copie vers la feuille 2m cette ligne en quelques sortes neutre et qui permettra dans la feuille 2m de faire la recherche du nombre minimum à partir de la date d aujourd hui?
Et donc creer dans le tableau général le nombre de ligne correspondant au nombre de feuille?
Non puisque d'après ce que je vois les dates sont toujours en ordre croissant, je peux récupérer l'adresse de la date en colonne B
Le tout est que je sache quelle date on doit prendre. Là en regardant le fichier je vois que la formule reprend souvent la première date de l'année en cours dans la colonne B. Ce qui n'est pas nécessairement la date la plus proche de la date d'aujourd'hui dont vous aviez parlé avant.
Le tout est de savoir quelle date à prendre
Rem : dans la feuille 3m, est-ce normal d'avoir la date 01/02/24 en B46 après celle en B44 ?
EDIT : pour vous montrer l'état vos feuilles avant l'exportation des données depuis la feuille Total général, faites le test suivant
1. Placez le code ci-dessous dans un module
Sub nettoyer()
Dim i As Byte
Dim plage As Range, c As Range
Application.ScreenUpdating = False
Set plage = Feuil1.Range("D6:D16,H6:H11")
For i = 1 To Sheets.Count
Set c = plage.Find(Sheets(i).Name, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
With Sheets(i)
On Error Resume Next
.ShowAllData
On Error GoTo 0
dlg = .Range("A" & Rows.Count).End(xlUp).Row
If dlg <= 2 Then dlg = 3
.Range("A3:W" & dlg).Delete
End With
End If
Next i
Application.ScreenUpdating = True
End Sub2. Placez-vous sur la feuille Tableau général
3. Exécutez le code et allez voir les feuilles 2m, 3m etc qui sont vidées des données
Ce code servira en premier pour vider les feuilles des informations avant d'exporter les données depuis la feuille Tableau général
Est il envisageable d intégrer une ligne avec la formule aujourd hui dans le tableau général avec la valeur 2m en colonne d et rien dans les autres colonnes afin que la macro qui copie vers la feuille 2m cette ligne en quelques sortes neutre et qui permettra dans la feuille 2m de faire la recherche du nombre minimum à partir de la date d aujourd hui?
Et donc creer dans le tableau général le nombre de ligne correspondant au nombre de feuille?
Non puisque d'après ce que je vois les dates sont toujours en ordre croissant, je peux récupérer l'adresse de la date en colonne B
Le tout est que je sache quelle date on doit prendre. Là en regardant le fichier je vois que la formule reprend souvent la première date de l'année en cours dans la colonne B. Ce qui n'est pas nécessairement la date la plus proche de la date d'aujourd'hui dont vous aviez parlé avant.
Le tout est de savoir quelle date à prendre
j'aurai pensé une ligne du genre
qui permettrai d'avoir automatiquement la date d'aujourd'hui (grace à la formule aujourd'hui en colonne b) et de la, pouvoir faire la recherche d'aujourd hui dans la formule de la valeur la plus basse (formule dans la ligne orange en dessous de chaque page) en prenant la plage de donnée situee entre aujourd hui et l'année 2040 (par exemple)
Ou, si c'est plus simple, mettre cette ligne dans chaque page directement et alors avec la macro qui permet d'effacer, effacer tout sauf les lignes 1-2-3.
Rem : dans la feuille 3m, est-ce normal d'avoir la date 01/02/24 en B46 après celle en B44 ?
non, cela doit etre du à un mauvais trie effectuée par la suite.
EDIT : pour vous montrer l'état vos feuilles avant l'exportation des données depuis la feuille Total général, faites le test suivant
1. Placez le code ci-dessous dans un module
Sub nettoyer()
Dim i As Byte
Dim plage As Range, c As Range
Application.ScreenUpdating = False
Set plage = Feuil1.Range("D6:D16,H6:H11")
For i = 1 To Sheets.Count
Set c = plage.Find(Sheets(i).Name, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
With Sheets(i)
On Error Resume Next
.ShowAllData
On Error GoTo 0
dlg = .Range("A" & Rows.Count).End(xlUp).Row
If dlg <= 2 Then dlg = 3
.Range("A3:W" & dlg).Delete
End With
End If
Next i
Application.ScreenUpdating = True
End Sub2. Placez-vous sur la feuille Tableau général
3. Exécutez le code et allez voir les feuilles 2m, 3m etc qui sont vidées des données
Ce code servira en premier pour vider les feuilles des informations avant d'exporter les données depuis la feuille Tableau général
je viens de tester et c 'est bien ce que j'avais compris donc le point de départ est bon.
Re
J'ai difficile à vous lire dans vos réponses car vous mélangez ce que je vous écrit avec votre réponse
Est-ce que dans la barre de menu vous n'avez pas l'icone "Citation" disponible ?
Non puisque d'après ce que je vois les dates sont toujours en ordre croissant, je peux récupérer l'adresse de la date en colonne B
Le tout est que je sache quelle date on doit prendre. Là en regardant le fichier je vois que la formule reprend souvent la première date de l'année en cours dans la colonne B. Ce qui n'est pas nécessairement la date la plus proche de la date d'aujourd'hui dont vous aviez parlé avant.
Le tout est de savoir quelle date à prendre
j'aurai pensé une ligne du genre
je n'ai pas compris la finalité
Mais laissez tomber je vais mettre le code qui ira chercher l'adresse de la première date trouvée pour l'année en cours, ici 2024. on verra par la suite
EDIT On est bien d'accord que ce sont toutes les lignes du tableau général qu'il faut envoyer dans les feuilles et pas seulement les lignes dont la date est sur l'année en cours
Oui c est bien l ensemble des lignes du tableau général
Merci pour tout ce que vous faites pour arriver à me facilite la vie
Bonjour,
Voici les modification à faire dans votre fichier :
1. Créer un nouveau module qui reprendra tous les codes concernés par l'exportation
2. Code Exportation : ajoutez le code ci-dessous qui sera en quelque sorte celui duquel vous partirez pour envoyer les données vers les feuilles (voir point 6)
Option Explicit
Dim plage As Range
Sub exportation() 'exportation donnees depuis tableau general
Dim dlg As Integer, i As Integer
Dim cel As Range
Application.ScreenUpdating = False
Set plage = Feuil1.Range("D6:D16,H6:H11")
Call nettoyer 'effacer donnees feuilles 2m,3m....
With Feuil6 'feuille tableau general
If Not .AutoFilterMode Then .Range("A1:W1").AutoFilter 'veririfer si filtre actif
On Error Resume Next
.ShowAllData
On Error GoTo 0
For Each cel In plage
dlg = .Range("A" & Rows.Count).End(xlUp).Row
If WorksheetFunction.CountIf(.Range("A3:N" & dlg), cel) > 0 Then
With .Range("$A$3:$N" & dlg).SpecialCells(xlCellTypeVisible)
.AutoFilter Field:=4, Criteria1:=cel
.Copy
End With
With Sheets(CStr(cel))
'coller les données
.Range("A3").PasteSpecial Paste:=xlPasteValues
'recopier formules colonne P et W depuis ligne 3
.Range("P2:W2").AutoFill Destination:=.Range("P2:W" & .Range("A" & .Rows.Count).End(xlUp).Row), Type:=xlFillDefault
'format date
.Range("B3:B" & dlg).NumberFormat = "dd/mm/yyyy"
End With
Call ajoutligMin(CStr(cel)) 'ajout ligne minimum
End If
Next cel
End With
Application.ScreenUpdating = True
End Sub3. Code ligne minimum. Ajoutez ce code en dessous du précédent. Il permet de créer la ligne minimum et couleur
Sub ajoutligMin(cel As String)
Dim lig As Integer, dlg As Integer
With Sheets(cel)
dlg = .Range("A" & .Rows.Count).End(xlUp).Row 'derniere ligne
'ajout minimum
.Cells(dlg + 1, 1) = "minimum"
.Cells(dlg + 1, 2) = CDate(51501) '31/12/2060
.Cells(dlg + 1, 3) = "valeur minimum"
'ajout formule MIN colonnes P à W
Call trouvedate(CStr(cel), lig) '
'ajout formule minimum cellule P
.Cells(dlg + 1, 16).FormulaR1C1 = "=MIN(R" & lig & "C:R[-1]C)"
'recopie formule minimum de colonne P a W
.Cells(dlg + 1, 16).AutoFill Destination:=.Range("P" & dlg + 1 & ":W" & dlg + 1), Type:=xlFillDefault
'Mise en couleur orange
.Range(.Cells(dlg + 1, 1), .Cells(dlg + 1, 23)).Interior.Color = 8696052
'format conditionnel ligne min
.Range("P" & dlg & ":W" & dlg).AutoFill Destination:=.Range("P" & dlg & ":W" & dlg + 1), Type:=xlFillFormats
End With
End Sub4. Code pour la date dans formule Minimum. Ajoutez ce code qui permet d'aller chercher la première date de l'année en cours (ici ce sera 2024)
Sub trouvedate(cel As String, lig As Integer) 'trouver ligne premiere date annee en cours
Dim dateanneeprec As Long
Dim i As Integer
dateanneeprec = CLng(DateSerial(Year(Date) - 1, 12, 31))
With Sheets(CStr(cel))
For i = .Range("B" & Rows.Count).End(xlUp).Row To 3 Step -1
If .Range("B" & i).Value2 <= dateanneeprec Then
lig = i + 1
Exit For
End If
Next i
End With
End Sub5. code Sub Nettoyer() Très important !!!
- déplacez ce code dans ce nouveau module. Mettez le en dessous des autres par exemple
- supprimez cette ligne
Set plage = Feuil1.Range("D6:D16,H6:H11")6. Ajoutez un bouton sur votre feuille Tableau général et associez-le au code EXPORTATION
Il vous reste à tester...
Si souci, ne me repostez pas de fichier ou les codes dans votre réponse. dites moi simplement où il y a un problème
Edit : le code prend un peut de temps vu le nombre de feuille à traiter. J'ai essayé de réduire au max
