Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Insertion ligne avec code vba

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
237
Réponses
1
Affichages
180
Réponses
4
Affichages
177
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
170
Réponses
8
Affichages
468
Réponses
7
Affichages
250
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…