Suppression lignes avant envoi email

bonjour le forum

bonjour et bonne année à tous,

je sollicite votre aide pour modifier le code vba du fichier joint :

avant envoi = que la feuille active du classeur principal ne soit pas touché, qu'il s'en fasse une copie, que les lignes 1 et 2 soient supprimées dans la copie puis que ce soit cette copie qui soit envoyée ?

une fois la copie envoyée pas besoin de la conserver.

merci d'avance.

Moutchec.

5classeur2.xlsm (25.95 Ko)

Bonsoir moutchec, le forum,

Pour l'envoi de mail, je ne sais pas faire.

Sinon, pour le reste: (on crée une copie de la feuille active en dernier, on la renomme "copie", on supprime les 2 premières lignes et on supprime l'onglet).

Private Sub CommandButton1_Click()

  'Dim Destinataire As String
     ' Destinataire = "moutchec@gmail.com"

    ActiveSheet.Copy After:=Sheets(Sheets.Count)   'fait une copie en dernier
     With ActiveSheet
      .Name = "copie"                              'renomme la feuille --> copie
      .Rows("1:2").Delete Shift:=xlUp              'efface les 2 premières lignes
     ' code macro pour envoie par mail
     End With

     Application.DisplayAlerts = False            'évite le message:Les feuilles sélectionnées peuvent contenir des données...cliquer sur supprimer
      Sheets("copie").Delete                      'supprime la feuille "copie"
     Application.DisplayAlerts = True

End Sub

Reste à intercaler le code pour envoyer par mail....

Cordialement,

bonsoir et merci pour votre intervention.

il y a un bug sur . name="copie"

Re,

Merci pour ton retour,

il y a un bug sur . name="copie"

Bizarre, ça fonctionne chez moi...(attention, il ne doit pas y avoir d'autre onglet nommé copie sinon, ça plante)

Teste le fichier ci-joint.

  • Copie onglet : crée une copie de l'onglet actif en dernier, renomme celui-ci copie et supprime 2 premières lignes.
  • CommandButton1 fait la même chose mais supprime l'onglet copie en plus (supprime l'onglet copie manuellement avant de lancer la macro).

Cordialement,

ça marche avec ce code

Private Sub CommandButton2_Click()

ActiveSheet.Copy After:=Sheets(Sheets.Count)

With ActiveSheet

.Name = "copie"

.Rows("1:2").Delete Shift:=xlUp

End With

Destinataire = "m@gmail.com"

ActiveSheet.Copy

With ActiveWorkbook

.SendMail Recipients:=Destinataire

Application.DisplayAlerts = False

.Close

Sheets("copie").Delete

Application.DisplayAlerts = True

End With

End Sub

bonjour @xorsankukai ,

bonjour le forum,

j'ai encore besoin d'une petite astuce pour envoyer d'autres feuilles sans ajouter un code pour chaque feuille ou devoir modifier le code existant. j'aimerais faire référence dans le code au contenu d'une cellule dans laquelle je saisirais le nom de la feuille à envoyer par mail.

je rame dessus depuis hier soir, merci d'avance pour votre aide.

cordialement.

Moutchec.

Rechercher des sujets similaires à "suppression lignes envoi email"