Ajout d'une ligne automatiquement après la dernière ligne vide

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 !

bassmart

XLDnaute Nouveau
Bonjours à tous!

Après plusieurs recherches sur différent forums, j'ai réussi à trouver une macro qui ajoute une ligne à la fin de mon tableau qui fonctionne mais elle m'ajoute une ligne à chaque fois que j'ouvre cette feuille.

Je n'ai toujours pas trouvé comment ajouter une ligne seulement si il reste une seul ligne vide. La colonne utilisé est la colonne b et la première ligne à remplir est la ligne 7.

Voici mon code
Code:
Private Sub worksheet_activate()


Dim Ligne As Long


nlign = Range("B7").End(xlDown).Row + 1
MsgBox "Et voilà" & nlign

If IsError(Range("B7").End(xlDown).Row) Then
    nlign = 7
Else
    nlign = Range("B7").End(xlDown).Row + 1
End If



If Range("b7:b" & nlign).Value <> "" Then

Range("B7:b" & nlign).Select
[B1048576].End(xlUp).Select
Rows(nlign).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If



Range("b7").Select

End Sub

Merci d'avance pour votre aide!!
 
Re : Ajout d'une ligne automatiquement après la dernière ligne vide

Merci beaucoup job75!

Ça fonctionne super!! J'imagine que je peux copier cette macro sur mes autres feuilles(Forage, CPTU et PIézomètres) en autant que je nomme ma plage Tableau pour exécuter un ajout de ligne.

Encore merci!😀
 
Re : Ajout d'une ligne automatiquement après la dernière ligne vide

Bonjour!

Après avoir tester plusieurs fois, j'ai rencontré un problème! Lorsque les ligne sont tous pleines , il me copie la valeur dans la première ligne vide qui ne fait pas partie du tableau (ex: dernière ligne pleine 42 mais copie sur la ligne 43) et m'ajoute une ligne au dessus (donc entre les 2).

Qu'est-ce que doit modifier?
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim T As Range, i&
Set T = [TABLEAU]
Application.EnableEvents = False
On Error Resume Next 'sécurité
If T.Rows.Count < 4 Then
Application.Undo 'annulation
Else
'---suppression des lignes vides---
For i = T.Rows.Count - 1 To 4 Step -1
If T(i, 1) = "" Then T(i, 1).EntireRow.Delete
Next
'---ajout de ligne---
If T(T.Rows.Count, 1) <> "" Then
Application.ScreenUpdating = False
T(T.Rows.Count, 1).EntireRow.Insert
T.Rows(T.Rows.Count - 1).FormulaR1C1 = T.Rows(T.Rows.Count).FormulaR1C1
T.Rows(T.Rows.Count) = ""
Application.ScreenUpdating = True
End If
End If
End Sub

Merci!
 
Re : Ajout d'une ligne automatiquement après la dernière ligne vide

Excusez-moi!

En fait la macro fonctionne super! J'ai une autre macro que je teste pour faire suivre les modifications d'une feuilles à l'autres qui fait tout foirer!

À suivre!
 
Re : Ajout d'une ligne automatiquement après la dernière ligne vide

Bonjour à tous!

Après avoir testé plusieurs scénario avec cette macro, elle fonctionne si on entre une nouvelle valeur à la fois.

Mais lorsque j'ajoute plusieurs nouvelles (plus qu'une) données, ça ne fonctionne plus comme voulue. Lorsque je lance la macro pour la mise à jours des feuilles, il colle toutes les nouvelles données dans les bonnes feuilles et dans la bonne colonne mais s'il me reste seulement qu'une ligne vide dans la feuille de destination. Il me colle donc, les nouvelles valeurs dans les lignes à l'extérieur de mon tableau et me fait un tri avec des lignes non vides, je me retrouve avec des lignes protégées et non mis en forme dans mon tableau.

Voici le code qui se situe sur chacune des feuilles:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim T As Range, i&
Set T = [Tableau2]
Application.EnableEvents = False
On Error Resume Next 'sécurité
If T.Rows.Count < 4 Then
Application.Undo 'annulation
Else
'---suppression des lignes vides---
For i = T.Rows.Count - 1 To 4 Step -1
If T(i, 1) = "" Then T(i, 1).EntireRow.Delete
Next
'---ajout de ligne---
If T(T.Rows.Count, 1) <> "" Then
Application.ScreenUpdating = False
T(T.Rows.Count, 1).EntireRow.Insert
T.Rows(T.Rows.Count - 1).FormulaR1C1 = T.Rows(T.Rows.Count).FormulaR1C1
T.Rows(T.Rows.Count) = ""
Application.ScreenUpdating = True
End If
End If

End Sub
 
Re : Ajout d'une ligne automatiquement après la dernière ligne vide

Bonjour bassmart,

Je pensais que vous aviez compris : ce qui est entré au-dessous du tableau n'est jamais pris en compte.

Si vous voulez ajouter plusieurs valeurs dans le tableau, il faut les insérer :

- sélectionnez les lignes entières de ces valeurs

- clic droit => Copier

- sélectionnez la ligne d'insertion dans le tableau, clic droit => Insérer les cellules copiées.

A+
 
Re : Ajout d'une ligne automatiquement après la dernière ligne vide

Bonjour job75!

Je comprend!

Mais le problème ce que je ne veux pas faire d'opération manuel seulement automatique afin d'éviter toutes erreurs! Je ne serai pas le seul à utiliser ce fichier et il est possible qu'une personne ajoute plus d'une valeur dans ma feuille "Coordonnées".

Comment puis-je faire?

Merci!
 
Re : Ajout d'une ligne automatiquement après la dernière ligne vide

Bonjour job75!

Merci pour ton aide!

Je crois que la meilleur solution dans mon cas, c'est dès qu'il y a une nouvelle entrée dans ma feuille "Coordonnées" qui la copie directement dans la feuille approprié! Donc, seulement une valeur sera inséré à la fois.

Merci!
 
Re : Ajout d'une ligne automatiquement après la dernière ligne vide

Re,

Je crois que la meilleur solution dans mon cas, c'est dès qu'il y a une nouvelle entrée dans ma feuille "Coordonnées" qui la copie directement dans la feuille approprié! Donc, seulement une valeur sera inséré à la fois.

Vous voyez, qui cherche trouve 🙄

On peut aussi tout simplement faire une boucle pour copier les données une par une.

A+
 
- 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
3
Affichages
265
Réponses
5
Affichages
705
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour