Problème insertion de lignes avec macro car lignes cachées

Bonjour,

Dans un tableau Excel, j’ai une macro qui me permet d’insérer des lignes à la suite d’un tableau.

Problème : comme, sous ce tableau, il y a des lignes masquées (L32 à L36) et que la macro insère des cellules (et non des lignes), quand j’insère plus de 4 lignes, la macro ne fonctionne plus…

macro4

Voici la macro :

lgn = Range("Date1").End(xlDown).Row + 1

Range("A" & lgn & ":EE" & lgn).Insert Shift:=xlDown

Range("A" & Range("Date1").Row).EntireRow.Copy

Range("A" & lgn).PasteSpecial xlPasteFormats

Application.CutCopyMode = False

Range("A" & lgn) = "Date " & Right(Range("A" & lgn - 1), Len(Range("A" & lgn - 1)) - 5) + 1

Range("A" & lgn).Select

Avec “Date1” qui renvoi sur $A$17

Savez-vous comment régler mon problème ?

Je suppose qu’il vient de la ligne :

Range("A" & lgn & ":EE" & lgn).Insert Shift:=xlDown

Que j’ai essayé de remplacer par :

EntireRow.Insert Shift:=xlDown

Mais cela ne fonctionne pas…

Merci par avance

Bonjour

Alors petite question les lignes masquées c'est voulu ?

Sinon sont elles à supprimer ?

Si oui tu peux utiliser cette trame que je viens de faire

Au lieu d'afficher le nom de la ligne tu pourrais les supprimer de cette façon l'insertion par la suite fonctionnera mieux

Sub test()
Dim c As Range
For Each c In Sheets("Feuil2").UsedRange.Rows
If c.Hidden = True Then
MsgBox c.Address
End If
Next

End Sub

Si tu attends autre chose : les afficher ou autre dis moi

Cdt,

Merci

Les lignes 31 à 35 sont cachées volontairement. Elles s'affichent avec une autre macro...

J'ai l'impression que le problème vient du fait que la macro insère des cellules et non une ligne.

Je suppose que les lignes qui ne fonctionnent pas sont :

lgn = Range("Date1").End(xlDown).Row + 1

Range("A" & lgn & ":EE" & lgn).Insert Shift:=xlDown

(1)

car seules les cellules de la colonne A à la colonne EE sont copiées et collées.

Il faudrait :

  • se mettre sous la dernière cellule du tableau
  • insdérer une ligne entière avec quelque chose comme :
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

(2)

Je n'arrive pas à réconcilier la partie (1) et la (2)...

Bonjour

Il faudrait faire :

Se mettre sur la cellule ou tu veux créer la ligne ensuite

Exemple créer une ligne derrière A3 :

Range("A3").entirerow.Insert Shift:=xlDown

Cdt,

Comme je veux pouvoir ajouter plusieurs lignes (dates dans mon tableau), je n'ai pas une cellule particulière comme référence de départ.

C'est pourquoi le début de la macro est le suivant :

lgn = Range("Date1").End(xlDown).Row + 1

sachant que Date1 = $A$17 de sorte que cette référence bouge au fur et à mesure quand on insère des lignes. Je pense que cette ligne de macro est OK

C'est la suite qui ne va pas. Je ne sais pas comment définir les actions suivantes comme Shift:=xlDown

Bonjour,

J'ai répondu dans le premier fil ...

https://forum.excel-pratique.com/viewtopic.php?p=854802#p854802

ric

Yes, je vais fermer celui-ci

Rechercher des sujets similaires à "probleme insertion lignes macro cachees"