Problème Copie ligne

Bonjour,

Je suis entrain de faire un tableau de suivi pour mon boulot. J'essaye d'y intégrer des macros avec bouton pour faciliter la lecture.

J'ai un soucis avec une macro qui doit rajouter une nouvelle ligne à la fin du tableau avec toutes les formules et mise en page.

La ligne se rajoute mais en haut et sans rien.

Voici ma macro de base:

Sub RAJOUTDOSSIER() 'Rajouter un Dossier

Application.ScreenUpdating = False

If MsgBox("Etes-vous certain de vouloir enregistrer et rajouter une ligne ?", vbYesNo, "Demande de confirmation") = vbYes Then

ActiveWorkbook.Save

On Error Resume Next

ActiveSheet.ShowAllData

Application.EnableEvents = False

Range("A" & Range("A65536").End(xlUp).Row).Select

Selection.EntireRow.Insert

Application.EnableEvents = True

Range("A1:AG1").Select

Selection.Copy

Range("A" & Range("A65536").End(xlUp).Row - 1).Select

Application.EnableEvents = False ' => désactive les événements

ActiveSheet.Paste

Application.EnableEvents = True ' => réactive les événements

ActiveWorkbook.Save

Application.ScreenUpdating = True

End If

End Sub

Je vous mets le fichier aussi pour que vous voyez l'ensemble.

Par contre si vous trouvez pourquoi ça ne marche pas pourriez vous m'expliquer car je suis une débutante avec les macro et je souhaiterais apprendre.

Merci d'avance

Hello,

Juste pour comprendre sur quelle feuille tu veux ajouter cette macro?

Cordialement

Bonjour,

Si tu peux noter dans ta mémoire d'utiliser la balise Code pour mettre du code dans un post, ce serait bien !

Tu fournis un code qui à la fois, est mauvais (mais ce n'est pas là le problème essentiel) et soulève quelques interrogations qu'il convient d'élucider. Or tu nous mets à l'appui un fichier xlsx !!

Je dirai qu'il y a "tromperie sur la marchandise" !!!

Si tu veux bien mettre le vrai fichier xlsm, et avec la totalité de ton code, s'il te plait, on pourra alors effectivement analyser le problème.

Cordialement.

Désolée, ce n'est pas de la tromperie promis juste que j'ai mal enregistré le fichier

J'ai prévenu je suis débutante !!!!!

Donc normalement celui ci devrais aller.

Pas de soucis la prochaine fois je soignerais la présentation de mon post, c'est la premier fois que je vais sur un forum avec des lignes de code donc merci de me l'avoir dit je savais pas.

Tu recherches la dernière ligne utilisée en colonne A, qui ne contient pas de données ! Tu aurais pu voir immédiatement que la ligne trouvée serait la ligne d'en-tête ! Il faut donc utiliser une autre colonne ou s'assurer que la colonne est servie...

Par ailleurs, avec la méthode tu insères une ligne avant ta dernière ligne utilisée ! Logiquement c'est à la ligne en-dessous qu'il faudrait faire l'insertion.

Une ligne insérée prend automatiquement par défaut le format de la ligne qui précède. La gymnastique de copie qui suit est donc totalement gratuite et sans justification !!!

Il serait judicieux d'autre part d'éliminer tous les Select et Selection... Toutes les lignes comportant EnableEvents sont à supprimer, d'une absurdité totale, d'autant plus que tu n'as aucune évènementielle qui pourrait être impactée !

Si le On Error Resume Next est légitime avant ShowAllData qui risque de déclencher une erreur s'il n'y a pas de filtrage actif, il convient de rétablir la situation juste après avec On Error GoTo 0, ce qui n'est pas fait.

Bref ! Je trouve donc que la macro serait à réécrire, mais dans le contexte, je ne vois pas à quoi elle sert. Elle insère une ligne vide qu'elle ne remplit pas et entend lui donner un format qui est déjà le sien et celui de toutes les lignes qui l'entoure. Dans ces conditions on dispose de suffisamment de lignes utilisables sans avoir à insérer... !

Donc : supprimer cette macro (mais noter les problèmes multiples qu'elle posait pour éviter de les reproduire ailleurs !)

Cordialement.

Merci Mferrand

Je vais réécrire la macro en écoutant ton conseil est noté les problèmes.

Cordialement

Rechercher des sujets similaires à "probleme copie ligne"