XL 2016 Insérer une ligne vide VBA

Lord sirc

XLDnaute Nouveau
Bonjour à tous,

J'ai un soucis avec un code VBA qui fonctionne trop bien, je m'esplique mon code insère une ligne suivant 2 valeurs différentes trouvé dans la colonne A cela marche très bien sauf que si je relance la macro celle-ci resaute une ligne entre la valeur trouvé ET la ligne vide.

Je comprend que c'est normal car dans le code c'est ce que je lui demande et c'est la que j'ai besoin de vous j'aimerais esclure de l'équation les valeurs vide,
si valeurs différentes sauf si valeur vide
Je pense que c'est pas grand chose en écriture mais j'ai essayé plusieurs chose sans succès.

J'espère avoir été clair et d'avance merci pour vos retour.

ci-dessous le code ;

Dim c As Long
Dim LastRow As Long
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For c = LastRow To 12 Step -1
If Range("A" & c).Value <> Range("A" & c).Offset(-1, 0).Value Then
Range("A" & c).EntireRow.Insert shift:=xlDown
 
Solution
Re bonjour,
Si j'ai bien tout compris, je pense qu'il faut aussi regarder la ligne N-1 est non vide :
VB:
            If Range("A" & c).Value <> Range("A" & c).Offset(-1, 0).Value And _
               Range("A" & c).Value <> "" And Range("A" & c).Offset(-1, 0).Value <> "" Then
Donc on crée une ligne vide si :
1- A(n) <> A(n-1)
2- A(n) n'est pas vide
3- A(n-1) n'est pas vide

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re bonjour,
Si j'ai bien tout compris, je pense qu'il faut aussi regarder la ligne N-1 est non vide :
VB:
            If Range("A" & c).Value <> Range("A" & c).Offset(-1, 0).Value And _
               Range("A" & c).Value <> "" And Range("A" & c).Offset(-1, 0).Value <> "" Then
Donc on crée une ligne vide si :
1- A(n) <> A(n-1)
2- A(n) n'est pas vide
3- A(n-1) n'est pas vide
 

Lord sirc

XLDnaute Nouveau
Super ça marche NICKEL

Par contre j'ai un autre soucis je veux masquer les lignes vides entre la ligne 1009 et la dernière ligne entre la 10 et la 1009. J'avais pas le soucis avant car je masquais les lignes vide avant et j’insérai une ligne après :confused:
 

Lord sirc

XLDnaute Nouveau
Alors oui j'ai été un peu court sur mes explications, j'ai une plage de donné compris entre la ligne 10 et la ligne 1009, dans cet sélection j'insère des lignes entre les valeurs différentes trouvé dans la colonne A (ce pourquoi vous m'avez précédemment aidé, encore merci d'ailleurs) et pour me faciliter l'impression je lui demande de me masquer les dernières lignes vides comprise entre la dernière ligne et la ligne 1009 (je pourrais faire toutes les lignes en partant du bas mais je préfère partir de la ligne 1009 ça fait moins long à calculer).

Sauf que maintenant il me cache toutes les lignes même celle que je lui insère, encore une fois c'est normal c'est ce que je lui demande ;)

Maintenant que je pense avoir été plus clair (j'espère) auriez-vous une idée sur le bout de macro qu'il faudrait écrire?!
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Un essai en PJ avec :
VB:
Sub Masque()
DerLig = ActiveSheet.Range("A65500").End(xlUp).Row
Range("A" & DerLig & ":A1009").EntireRow.Hidden = True
End Sub
Sub DeMasque()
Range("A1:A2000").EntireRow.Hidden = False
End Sub
Si j'ai bien compris votre problème.
 

Pièces jointes

  • Classeur111.xlsm
    14.9 KB · Affichages: 7

Discussions similaires

Réponses
2
Affichages
98

Statistiques des forums

Discussions
311 709
Messages
2 081 768
Membres
101 816
dernier inscrit
Jfrcs