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

XL 2013 Ajout par VBA de données dans une colonne d'un tableau avec un nombre de lignes qui peut augmenter

onyirimba

XLDnaute Occasionnel
Supporter XLD
Bonjour,

J'ai une question :
  1. Est-ce que je pourrai obtenir une programmation VBA qui dans le colonne "CA" du fichier RAF BRS (voir capture d'écran ci-dessous) ajoute l'information RAF sur la première partie "Projet" lié au Reste à faire et "RAF PROV" sur la 2ieme partie "Provisions" ?
    • Sachant que 1 nouvelle ligne peut être ajouté dans la partie "Projet" qui débute toujours ligne 17 (ex: 2200TRAZE) mais jamais dans la partie "provisions" (donc il y a toujours 2 lignes dans la partie "Provisions")
    • Donc les lignes liées au "Projet" ne se termine pas forcément ligne 30 car si 2 lignes projets s'ajoutent elle se terminera ligne 32 et la première ligne Provision débutera ligne 35 et non ligne 33
    • Sachant également que si 1 ligne Projet s'ajoute dans la partie Projet de la grande partie reste à faire la même ligne Projet s'ajoutera dans la partie Projet de la grande partie du Budget/Réalisé/Synthèse (Donc il y a toujours le même nombre de lignes Projet dans la partie Projet du "Reste à faire" et la partie Projet du "Budget/Réalisé/Synthèse")
  2. de même avec la 2ieme partie "Budget/Réalisé/Synthèse" : le codage VBA ajoute BRS dans la partie Projet et BRS PROV dans la partie provisions en "colonne CA" ?
    • sachant que 1 nouvelle ligne Projet peut être ajouté dans la partie "Projet" (ex: 2200TRAZE) mais jamais dans la partie "provisions"
    • elle débute ligne 44 si 2 nouvelles lignes projet s'ajoutent
J'ai joint un fichier illustratif
Merci beaucoup pour votre aide.


 

Pièces jointes

  • RAF BRS.xlsm
    35.4 KB · Affichages: 7
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Onyirimba,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If TypeName([Projet1,Projet2,Provisions1,Provisions2]) <> "Range" Then _
    MsgBox "Nommez les 4 cellules Projet1, Projet2, Provisions1, Provisions2 !", 48: Exit Sub
Application.EnableEvents = False 'désactive les évènements
Intersect(Range([Projet1].Cells(2, 1), [Provisions1].Cells(-1, 1)).EntireRow, [CA:CA]) = "RAF"
Intersect([Provisions1].Cells(2, 1).Resize(2).EntireRow, [CA:CA]) = "RAF PROV"
Intersect(Range([Projet2].Cells(2, 1), [Provisions2].Cells(-1, 1)).EntireRow, [CA:CA]) = "BRS"
Intersect([Provisions2].Cells(2, 1).Resize(2).EntireRow, [CA:CA]) = "BSR PROV"
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche automatiquement quand on modifie ou valide une cellule quelconque.

Elle utilise les 4 cellules nommées Projet1, Projet2, Provisions1, Provisions2.

A+
 

Pièces jointes

  • RAF BRS(1).xlsm
    40.4 KB · Affichages: 3

onyirimba

XLDnaute Occasionnel
Supporter XLD
Bonjour, la Macro fonctionne
Merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…