Automatisation du remplissage d'un tableau à partir d'un autre tableau
Bonjour,
Je cherche a remplir le tableau sur la feuille2 à partir des données sur la feuille1 mais de façon automatique à l'aide des macros. Mais que la macro puis permettre le remplissage du tableau en s'arretant à la date du jour en l'occurence 25/10/2018 ou bien 10/2018. Je souhaite faire un filltre sur par exemple le mois de janvier et je prends la ligne de TOTAL et je vais la coler dans le tableau sur la feuille2. Mais je ne sais comment je peux user d'une boucle pour automatiser tout ça. Je vous ai joint les deux macros mais elles ne sont liées dans le classeur.
Je vous sais gré pour toute aide qui me sera apportée
NB: Classeur joint.
Option Explicit
Public Sub Macro001()
Dim lo As ListObject, strDate As String
strDate = InputBox("Insert date in format dd/mm/yyyy", "user date", Format(Date, "dd/mm/yyyy"))
If Not IsDate(strDate) Then Exit Sub
Set lo = ActiveSheet.ListObjects(1)
strDate = Format(CDate(strDate), "m/d/yyyy")
With lo
If .ShowAutoFilter Then .AutoFilter.ShowAllData
.Range.AutoFilter Field:=1, Criteria2:=Array(1, strDate), Operator:=xlFilterValues
.Range.AutoFilter Field:=2, Criteria1:="Rouge"
.Range.AutoFilter Field:=10, Criteria1:="<>"
Range("Tableau1[[#Headers],[Date ]]").Select
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria2:=Array(1, "1/4/2018")
Range("Tableau1[[#Totals],[Dé]:[m02]]").Select
Selection.Copy
Sheets("Feuil2").Select
Range("C5:C11").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Feuil1").Select
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria2:=Array(1, "2/4/2018")
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("D5:D11").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Feuil1").Select
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria2:=Array(1, "3/5/2018")
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Range("E5:E11").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Sheets("Feuil1").Select
End With
End Sub
Bonsoir Jemmy, le forum,
Je cherche a remplir le tableau sur la feuille2 à partir des données sur la feuille1 mais de façon automatique
Sans vba:
- Rajout d'une colonne mois (masquée) qui récupère le mois de la date en colonne B.
- Modif des entêtes de ta feuille 2 (qui contenait des dates) en mois.
- Formule somme.si.ens
Cordialement,
Bonjour xorsankukai
Je vous sais gré de votre aide. Sans vouloir faire le difficile, n'aurait il un moyen d'automatiser quelquqes actions que vous avez fait peut -être par le biais d'une boucle..? J'espère ne pas passer pour un ingrat car je suis content que j'aie reçu au moins une aide...
Bonjour Jemmy,
Merci pour ton retour.
Comme précisé dans mon précédent post, je n'ai utilisé aucune macro, donc aucune boucle, seulement une formule SOMME.SI.ENS avec comme critère le mois de l'entête de la feuille 2 et la colonne correspondant à la personne.
Donc si on prend Janvier et Dé, en C5 on a =SOMME.SI.ENS(Feuil1!$E$2:$E$25;Feuil1!$C$2:$C$25;Feuil2!C$4)
Plage à additionner Feuil1!$E$2:$E$25
Plage de critères Feuil1!$C$2:$C$25 colonne C masquée
Critère Feuil2!C$4) donc Janvier
Je comprends bien que cela ne répond pas entièrement à ta demande puisque il n'y a aucun filtre sur la date....je suis allé au plus simple (plus facile pour moi de traiter par mois complet).
Ceci dit, si sur ta feuil1, tu filtres sur Janvier, tu noteras que ta colonne total correspond avec la colonne Janvier de la feuil2....
Je passe donc la main aux pros , cela aura au moins le mérite de remonter ton post,
Bon courage,
Cordialement,
xorsankukai merci beaucuoup pour ta réponse. Cependant je reste ouvert à toute proposition de vba automatisant les démarches...