Insérer une ligne dans une autre feuille

Bonjour,

J'ai cherché sur internet et n'ai pas trouvé de réponse, peut-etre que vous pourrez m'aider.

J'ai un fichier excel dans lequel je rentre des données dans un tableau.

J'ai donc créée une macro via le Bouton 1 qui permet d'ajouter une nouvelle ligne.

Dernièrement j'ai créé une nouvelle feuille qui est une copie de ce 1er tableau, mais seulement avec les données qui m’intéresses pour présenter aux clients.

Je souhaite donc qu'en appuyant sur le Bouton 1 une nouvelle ligne dans la feuille 1 se créée puis une nouvelle ligne dans la feuille 2 aussi.

Voici le code que j'ai fais, seulement la fonction bloque au niveau de la sélection de la ligne dans la feuille 2 :

' Macro commandée depuis le Bouton 1 situé dans la feuille 1

'Travail dans la feuille 1 :

Rows("5:5").Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Range("A6:AJ6").Select

Selection.AutoFill Destination:=Range("A5:AJ6"), Type:=xlFillDefault

Range("A5:AJ6").Select

Range("AD5:AH5").Select

Range("AH5").Activate

Selection.ClearContents

Range("A5:D5").Select

Range("D5").Activate

Selection.ClearContents

Range("A5").Select

' Travail dans la feuille 2

Sheets("feuille_2").Select

Rows("3:3").Select (--> c'est ici que ça bloque)

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Range("A4:G4").Select

Selection.AutoFill Destination:=Range("A3:G4"), Type:=xlFillDefault

Range("A3:G4").Select

Range("A3").Select

Sheets("Feuille_1").Select

Range("A5").Select

Merci pour votre aide

Bonjour,

Tu as tout intérêt à éviter d'utiliser les "Select".

Exemple :

' Travail dans la feuille 2
With Sheets("feuille_2")
    .Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    .Range("A4:G4").AutoFill Destination:=Range("A3:G4"), Type:=xlFillDefault
End With

A+

Bonjour Frangy,

Merci pour ta réponse.

J'ai essayé et le code fonctionne mais il me créer 2 lignes dans le tableau de la feuille 1 et 1 ligne dans le tableau de la feuille 2 en écrasant la dernière ligne.


Ci-joint un document excel Exemple

1231-copie.xlsm (251.24 Ko)

Ton fichier en retour

A+

469copie.xlsm (261.94 Ko)

Super ça fonctionne.

Merci beaucoup.

Mais d'où venait l'erreur ?

Avec With Sheets("Ref chantier"), les instructions appliquées à la feuille "Ref chantier" sont indiquées par le point qui les précède.

Rows(5) n’est pas équivalent à .Rows(5)

Rows(5) désigne la ligne 5 de la feuille active ("Carnet de commandes")

.Rows(5) désigne la ligne 5 de la feuille spécifiée avec With, soit "Ref chantier".

Ainsi,

.Rows("5:5").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Insère une ligne au dessus de la ligne 5 de la feuille "Ref chantier".

Par contre, si tu oublies le point,

Rows("5:5").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Insère une ligne au dessus de la ligne 5 de la feuille active, c'est-à-dire "Carnet de commandes"

A+

Très bien.

Merci pour ces informations.

Bonjour,

J'ai copier ce classeur Excel sur un serveur.

Il fonctionne depuis plusieurs poste avec différente configurations (excel 2013 à excel 2007) à l’exception d'un poste fixe.

Sur ce poste fonctionne avec Excel 2010 et lors de l'ouverture du fichier un fenêtre s'affiche en disant : "impossible de charger les objets car ils ne sont pas disponibles sur cette machine"

Comment puis-je résoudre ce problème ?

Merci

Bonjour,

Il s'agit sûrement d'un contrôle placé dans ton Userform qui n'existe plus dans ta version Excel (contrôle de calendrier par exemple) ou d'un défaut de configuration.

A+

D'accord, mais comment je peux résoudre ce problème alors?

Vous aviez raison c'était bien un problème avec le contrôle du calendrier.

J'ai donc suivi les conseils du lien suivant et insctallé le fichier MSCAL.OCX :

https://support.microsoft.com/fr-fr/kb/2676583

Merci pour votre aide.

Bonjour,

Je n'avais pas fais attention au départ, mais en utilisant votre formule pour insérer une ligne un problème apparait :

  • La ligne insérée et sur la ligne 5
  • Il y a des formules qui calcul la somme des colonnes (située sur la ligne 3) Par exemple =SOUS.TOTAL(9;F5:F528)

Après insertion d'une nouvelle ligne la formule se "décale" Exemple =SOUS.TOTAL(9;F6:F529)

Comment faire pour que la formule soit correcte, c'est à dire qu'il calcul la somme de la première à la dernière ligne du tableau ?

Merci

Bonjour,

Essaie avec

=SOUS.TOTAL(9;F4:F515)

A+

Rechercher des sujets similaires à "inserer ligne feuille"