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

Insertion ligne selon variable

  • Initiateur de la discussion Initiateur de la discussion jeanphi
  • Date de début Date de début

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 !

jeanphi

XLDnaute Occasionnel
Bonjour

J'utilise le code ci-dessous pour récupérer filtrer les infos d'une feuille en fonction d'une variable
Ce que je souhaite faire en plus c'est qu'à chaque fois que la valeur de la colonne J change, la macro m'insère automatiquement une ligne de couleur
Quelqu'un saurait t'il faire?
Merci


Sub FEBenCF()
Dim Cell As Range

Calculate
Sheets("Relance").Select
Range("B3:L3").Select
ActiveCell.FormulaR1C1 = "FEB en CF"

For Each Cell In Sheets("SuiviFEB").Range("H6:H" & Sheets("SuiviFEB").Range("H65536").End(xlUp).Row)
If Cell.Offset(0, -7).Value = "CF" Then
On Error Resume Next
Calculate
Sheets("Relance").Range("B" & Sheets("Relance").Range("B65536").End(xlUp).Row + 1).Value = Cell.Offset(0, -6).Value
Sheets("Relance").Range("D" & Sheets("Relance").Range("D65536").End(xlUp).Row + 1).Value = Cell.Offset(0, -4).Value
Sheets("Relance").Range("F" & Sheets("Relance").Range("F65536").End(xlUp).Row + 1).Value = Cell.Offset(0, -2).Value
Sheets("Relance").Range("H" & Sheets("Relance").Range("H65536").End(xlUp).Row + 1).Value = Cell.Value
Sheets("Relance").Range("J" & Sheets("Relance").Range("J65536").End(xlUp).Row + 1).Value = Cell.Offset(0, 2).Value
Sheets("Relance").Range("L" & Sheets("Relance").Range("L65536").End(xlUp).Row + 1).Value = Cell.Offset(0, 4).Value
End If
Next
Sheets("Relance").Select
End Sub
 
Re : Insertion ligne selon variable

Bonjour Jeanphi,

Essaye en ajoutant une macro évènementielle qui se déclenche lors d'un changement de valeur en colonne J. A mettre dans le code de la feuille.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 10 Then
    Target.EntireRow.Insert
    Target.Offset(-1, 0).EntireRow.Select
    Selection.Interior.ColorIndex = 6
End If
End Sub

Ce serait mieux si tu envoyais un exemple avec quelques données.

@+

Gael
 
Re : Insertion ligne selon variable

bonjour gael

merci c est exactement ce que je voulais!!
bonne journée à toi!

juste par curiosité quelqu un serait t il faire la même chose mais avec un code spécifié directement dans la macro originelle?
merci
 
Re : Insertion ligne selon variable

Bonsoir Jeanphi et salut Catrice, je ne t'avais pas vu,

Tu peux aussi rajouter le code à la suite du changement de valeur en colonne J:

Code:
Sheets("Relance").Range("J" & Sheets("Relance").Range("J65536").End(xlUp).Row + 1).Value = Cell.Offset(0, 2).Value
Sheets("Relance").Range("J65536").End(xlUp).EntireRow.Insert
Sheets("Relance").Range("J65536").End(xlUp).Offset(-1, 0).EntireRow.Interior.ColorIndex = 6

@+

Gael
 
Re : Insertion ligne selon variable

bonjour catrice


et merci pour ton aide
pas mal ton code sauf que si j'ai bien compris il faut que les données soient déjà triées pour que ca marche
or moi j ai besoin que le tri fonctionne même si les données ne sont pas triées au préalable 🙁
 
Re : Insertion ligne selon variable

RE Gael

Ton code est super, par contre j'ai encore besoin de rajouter 2 petites choses:
- Je souhaite que la ligne qui est insérée ait une hauteur de 3
- Je souhaite que la ligne qui est insérée ne le soit pas sur toute la feuille mais sur les cellules B à L
🙁
Je suis sur que tu as la solution 🙂
Encore emrci
 
Re : Insertion ligne selon variable

Bonjour Jeanphi, bonjour à tous,

Le code suivant devrait répondre à tes attentes. A mettre à la place des lignes précédentes:

Code:
With Sheets("Relance").Range("J" & Sheets("Relance").Range("J65536").End(xlUp).Row + 1)
    .Value = Cell.Offset(0, 2).Value
    .EntireRow.insert
    .Offset(-1, 0).RowHeight = 3
    .Offset(-1, -8).Resize(1, 11).Interior.ColorIndex = 6
End With

@+

Gael
 
Re : Insertion ligne selon variable

re Gael

C'est presque ca sauf que la ligne de couleur qui s'insère ne s'insére à chaque changement de valeur dans la colonne J mais en dessous de la première condition trouvée....
Vois tu ce que je veux dire??
 
Re : Insertion ligne selon variable

Re,

A vrai dire, je ne comprends pas bien. Ce code devrait insérer la ligne de la même façon que le précédent qui a priori fonctionnait bien.

Peux-tu envoyer un exemple en précisant bien le résultat souhaité.

@+

Gael
 
Re : Insertion ligne selon variable

Re,

Tu as un tout petit peu modifié le dernier code ce qui génère une erreur:

Si tu écris:

Code:
...
        Sheets("Relance").Range("J" & Sheets("Relance").Range("J65536").End(xlUp).Row + 1).Value = Cell.Offset(0, 6).Value
    With Sheets("Relance").Range("J" & Sheets("Relance").Range("J65536").End(xlUp).Row + 1)
    .EntireRow.Insert
    .Offset(-1, 0).RowHeight = 3
    .Offset(-1, -8).Resize(1, 11).Interior.ColorIndex = 8
    End With

tu vas écrire une valeur en colonne J en ajoutant une ligne. la deuxième instruction With... va se placer en dessous de la nouvelle ligne et donc l'insertion ligne ne se fera pas correctement.

Remplace donc par:

Code:
        [COLOR=red]'Sheets("Relance").Range("J" & Sheets("Relance").Range("J65536").End(xlUp).Row + 1).Value = Cell.Offset(0, 6).Value
[/COLOR]    With Sheets("Relance").Range("J" & Sheets("Relance").Range("J65536").End(xlUp).Row + 1)
    .Value = Cell.Offset(0, 6).Value
    .EntireRow.Insert
    .Offset(-1, 0).RowHeight = 3
    .Offset(-1, -8).Resize(1, 11).Interior.ColorIndex = 8
    End With

La ligne en rouge est à mettre en commentaire ou à supprimer.

Dans ce cas, on ajoute une valeur en J sur une nouvelle ligne puis on insère une ligne au-dessus et tout est OK.

@+

Gael
 
- 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
4
Affichages
757
Réponses
5
Affichages
917
Réponses
15
Affichages
793
Réponses
4
Affichages
738
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…