Expertise du code pour taches automatisée
Bonjour,
Je souhaite automatiser des actions un fichier dans le cadre de planification éditorial. Mon classeur possède avec 4 feuilles.
- La feuille 1 se nomme "PUBLIE", avec un tableau nommé "PUBLIE". Le tableau possède les entêtes de colonne suivantes : "Mois"; "Date de publication"; "Titre de la publication"; "Source"; "Facebook" ; "Instagram";"LinkedIn"; "Twitter".
- La feuille 2 "A PREVOIR" avec un tableau qui se nomme "A_PREVOIR". Le tableau possède les entêtes de colonne suivantes : "Mois"; "Date validation"; "Titre de la publication"; "Lien associé"; "Facebook"; "Instagram"; "LinkedIn"; "Twitter"
- La feuille 3 "Spécifique FADG" comprend le tableau appelé "SPE-FADG". Ce Le tableau possède les entêtes de colonne suivantes : "Mois"; "Date"; "Titre"; "Thème"; "Chapô"; "Source documents"; "OUI / NON".
- La feuille 4 "Issue de la veille" avec le tableau appelé "Publication_veille". Ce Le tableau possède les entêtes de colonne suivantes : "Mois"; "Date"; "Titre"; "Thème"; "Chapô"; "Source"; "Pertinence"; "OUI / NON"; "Commentaire"
--------------------------------------------------------
Mes tâches que je souhaites effectuer sont les suivantes :
1- Les actions déclenchées à partir du tableau "Publication_veille" :
- Si les cellules issues de la colonne "OUI / NON" ="OUI",alors la ligne vient s'enrichir dans le tableau "A_PREVOIR", avec le remplissage automatique des champs
- "Titre" issu du tableau "Publication_veille"="Titre" issu du tableau "A_PREVOIR" + "Source" issue du tableau "Publication_veille"="Lien associé" issu du tableau "A_PREVOIR.
- La colonne "Date validation" du tableau à "A PREVOIR" doit être associé à la date où la valeur "OUI" du tableau "Publication_veille" a été enregistrée.
- Si les cellules issues de la colonne "OUI / NON" ="OUI", alors la ligne du tableau prendre la couleur de remplissage "vert".
- Si les cellules issues de la colonne "OUI / NON" ="OUI", alors la ligne du tableau prendre la couleur de remplissage "Rouge" et sera masquée par défaut.
2-Les actions déclenchées à partir du tableau "Spécifique FADG" :
- Si les cellules issues de la colonne "OUI / NON" sont égales à "OUI", alors la ligne vient s'enrichir dans le tableau "A_PREVOIR", avec le remplissage automatique des champs "Titre" du tableau "Spécifique FADG"="Titre" du tableau "A_PREVOIR"; "Source documents" du tableau "Spécifique FADG"="Lien associé" du tableau "A_PREVOIR". La colonne "Date validation" du tableau à "A PREVOIR" doit être associé à la date où la valeur "OUI" du tableau "Publication_veille" a été enregistrée.
- Si les cellules issues de la colonne "OUI / NON" ="OUI", alors la ligne du tableau prendre la couleur de remplissage "vert".
- Si les cellules issues de la colonne "OUI / NON" ="OUI", alors la ligne du tableau prendre la couleur de remplissage "Rouge" et sera masquée par défaut.
3- Les actions déclenchées à partir du tableau "A_PREVOIR" :
Si la valeur des cellules de la colonne dont l'entête est "Facebook"="OUI", et/ou la des cellules de la colonne dont l'entête est "Instagram"="OUI", et/ou la des cellules de la colonne dont l'entête est "LinkedIn"="OUI", et/ou la des cellules de la colonne dont l'entête est "Twitter"="OUI"
alors la ligne vient s'enrichir dans le tableau "PUBLIE", avec le remplissage automatique des champs "Titre de la publication" issue du tableau "A_PREVOIR"="Titre de la publication" issue du tableau "PUBLIE" + "Lien associé " issue du tableau "A_PREVOIR"="Source" issue du tableau "PUBLIE".
------------------
Ainsi j'arrive sur une base de code VBA, mais je bloque ... et sollicite donc votre expertise :)
Sub AutoPopulate()
Dim wsPublie As Worksheet
Set wsPublie = ThisWorkbook.Sheets("PUBLIE")
Dim wsAPrevoir As Worksheet
Set wsAPrevoir = ThisWorkbook.Sheets("A PREVOIR")
Dim wsSpecific As Worksheet
Set wsSpecific = ThisWorkbook.Sheets("Spécifique FADG")
Dim wsVeille As Worksheet
Set wsVeille = ThisWorkbook.Sheets("Issue de la veille")
Dim publieTable As ListObject
Set publieTable = wsPublie.ListObjects("PUBLIE")
Dim prevoirTable As ListObject
Set prevoirTable = wsAPrevoir.ListObjects("A_PREVOIR")
Dim specificTable As ListObject
Set specificTable = wsSpecific.ListObjects("SPE-FADG")
Dim veilleTable As ListObject
Set veilleTable = wsVeille.ListObjects("Publication_veille")
Dim lastRow As Long
lastRow = veilleTable.Range.Rows.Count
For i = 2 To lastRow
If veilleTable.DataBodyRange.Cells(i, 9).Value = "OUI" Then
prevoirTable.ListRows.Add AlwaysInsert:=True
prevoirTable.DataBodyRange.Cells(prevoirTable.Range.Rows.Count, 3).Value = veilleTable.DataBodyRange.Cells(i, 3).Value
prevoirTable.DataBodyRange.Cells(prevoirTable.Range.Rows.Count, 4).Value = veilleTable.DataBodyRange.Cells(i, 6).Value
prevoirTable.DataBodyRange.Cells(prevoirTable.Range.Rows.Count, 2).Value = Now
veilleTable.DataBodyRange.Cells(i, 9).Interior.Color = RGB(0, 255, 0)
End If
Next i
lastRow = specificTable.Range.Rows.Count
For i = 2 To lastRow
If specificTable.DataBodyRange.Cells(i, 7).Value = "OUI" Then
prevoirTable.ListRows.Add AlwaysInsert:=True
prevoirTable.DataBodyRange.Cells(prevoirTable.Range.Rows.Count, 3).Value = specificTable.DataBodyRange.Cells(i, 3).Value
prevoirTable.DataBodyRange.Cells(prevoirTable.Range.Rows.Count, 4).Value = specificTable.DataBodyRange.Cells(i, 6).Value
prevoirTable.DataBodyRange.Cells(prevoirTable.Range.Rows.Count, 2).Value = Now
specificTable.DataBodyRange.Cells(i, 7).Interior.Color = RGB(0, 255, 0)
End If
Next i
lastRow = prev-------
Je suis preneur d'un code qui répondra pleinement à ma demande. Merci d'avance !
Edit modo : lorsque vous postez un code, merci de bien vouloir utiliser les balises de code en cliquant sur l'icone </> dans la barre de menu et en collant le code dans la fenêtre
Bonjour m.mat et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum et notamment :
- Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.
Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)
Merci pour votre participation
Cordialement