Microsoft 365 Insertion ligne avec code vba

Ricgof

XLDnaute Nouveau
Bonjour à tous,

Je souhaite automatisé la mise à jour d'un planning avec une macro.
Lorsque le travail est réalisé, on entre manuellement la date de réalisation dans une cellule et on lance la macro qui doit:
- Si la périodicité est de 6 mois créer une nouvelle ligne avec la nouvelle date.
J'ai aménagé un code trouvé et j'arrive à insérer la ligne et a recopié les valeurs que je veux dans cette nouvelle ligne.

Mais j'ai 2 problèmes:
- La formule EDATE ne récupère pas les valeurs mais le nom de mes variables.
- A la prochaine mise à jour, je recréais une autre ligne ( en fin d'années je ne doit avoir que 2 lignes pour le même instruments). J'aimerais donc ajouter une condition à la création de la ligne ( S'il existe 2 fois le même numéro d'instrument ne pas insérer une nouvelle ligne)

Voici mon code:

Sub Bouton1_Cliquer()

Dim LigneTotal As Long
Dim LigneAnalysé As Long

Dim NouvelleDate As String
Dim NouveauMois As String

LigneTotal = [F65536].End(xlUp).Row

For LigneAnalysé = LigneTotal To 2 Step -1

If Cells(LigneAnalysé, 13).Value <> "" And Cells(LigneAnalysé, 10).Value = "6" And Cells(LigneAnalysé - 1, 5).Value <> Cells(LigneAnalysé, 5).Value Then
Rows(LigneAnalysé + 1).Insert
Cells(LigneAnalysé + 1, 1).Value = Cells(LigneAnalysé, 1).Value
Cells(LigneAnalysé + 1, 2).Value = Cells(LigneAnalysé, 2).Value
Cells(LigneAnalysé + 1, 3).Value = Cells(LigneAnalysé, 3).Value
Cells(LigneAnalysé + 1, 4).Value = Cells(LigneAnalysé, 4).Value
Cells(LigneAnalysé + 1, 5).Value = Cells(LigneAnalysé, 5).Value
Cells(LigneAnalysé + 1, 6).Value = Cells(LigneAnalysé, 6).Value
Cells(LigneAnalysé + 1, 7).Value = Cells(LigneAnalysé, 7).Value
Cells(LigneAnalysé + 1, 8).Value = Cells(LigneAnalysé, 8).Value
Cells(LigneAnalysé + 1, 9).Value = Cells(LigneAnalysé, 9).Value
Cells(LigneAnalysé + 1, 10).Value = Cells(LigneAnalysé, 10).Value
Cells(LigneAnalysé + 1, 11).Value = Cells(LigneAnalysé, 13).Value

NouvelleDate = Cells(LigneAnalysé + 1, 11).Value
NouveauMois = Cells(LigneAnalysé + 1, 10).Value

Cells(LigneAnalysé + 1, 12).Formula = "=EDATE(NouvelleDate,NouveauMois)"

End If

Next LigneAnalysé

End Sub

Merci de votre aide.
 

Pièces jointes

  • essai marco planning.xlsm
    24.5 KB · Affichages: 17

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400