Macro insérer/copier une ligne sur tous les onglets

Bonjour à tous,

Je suis sûre que vous pourrez m'aider. Je bloque sur un problème probablement bête... mais impossible de trouver une solution.

Je souhaite insérer une ligne dans chaque onglet, en copiant les formules de la ligne du dessous (mais en effaçant le contenu des cellules avec "constants").

Voici ce que j'ai :

Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Sheets("Feuil1").Activate

ActiveCell.EntireRow.Select

Selection.Copy

Selection.Insert Shift:=xlDown

Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)

On Error Resume Next

Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents

Sheets("Feuil1").Select

Je crois que le problème se situe au niveau SpecialCells(xlCellTypeConstants, 23).ClearContents, car si je l'enlève tout fonctionne (sauf que les formules sont effacées).

Avez-vous une idée ? ou une explication ?

Je vous remercie par avance pour votre aide.

Bonjour,

une autre idée, avec ces inconvenants, à adapter :

Rows(6).Insert
    For x = 1 To 10
        formule = Cells(5, x).Formula
        Cells(6, x).Formula = formule
    Next x

une autre méthode :

    Rows(6).Insert
    Range("B5:E5").Select
    Selection.AutoFill Destination:=Range("B5:E6"), Type:=xlFillDefault

classeur joint :

17classeur11.xlsm (19.04 Ko)

Re,

Je ne comprends pas la suppression du contenue des cellules copiées

une seconde version, avec 4 onglets :

14classeur11.xlsm (24.51 Ko)

Merci Thihii !

En fait, je voudrais insérer une ligne sur tous les onglets et la "vider" pour que chaque utilisateur y saisisse les nouvelles données (chacun sur son anglet).

Mais je voudrais que la ligne insérée conserve les formules.

Je joins un petit exemple où ça fonctionne "presque" : la macro insert la ligne sur tous les onglets, peut importe où on se trouve dans le tableau, mais elle n'efface que le premier onglet ...

Je sais pas si mon explication est claire, mais en tous cas, merci pour ton aide !


Re-bonjour

Je viens de bidouiller ma macro pour finalement trouver une solution toute bête : re selectionner les onglets. (oui, j'aurais franchement dû y penser plus tôt ... )

C'est surement redondant mais ça a l'air de fonctionner...

Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Sheets("Feuil1").Activate

ActiveCell.EntireRow.Select

Selection.Copy

Selection.Insert Shift:=xlDown

Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)

On Error Resume Next

Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).Select

Selection.ClearContents

Merci Thihii pour ton aide !

Bonne journée

16test2.xlsm (20.57 Ko)

Bonjour,

Une proposition à étudier avec les données mises sous forme de tableau.

Cdlt.

26test2-1.xlsm (27.64 Ko)

Bonsoir,

code intéressant Jean-Eric.

J'en reviens à ce dont j'annonçais dans mon dernier post, je ne comprends toujours pas, pourquoi copier/coller pour effacer après ?

Rechercher des sujets similaires à "macro inserer copier ligne tous onglets"