Code VB pour revenir sur une feuille

Bonjour,

Voilà, j'ai créer un tableau pour le suivi d'appels téléphonique (feuille qui porte le nom du mois en cours)
Je récapitule (à l'aide de la fonction "recherche") le contenu de chaque ligne dans une fiche message sur une autre feuille (que je nomme "fiche message")

A l'aide d'un petit code VB que j'ai trouvé, j'envoi ma fiche message par mail à la personne concernée par le message téléphonique sur un simple Clic qui se présente comme ceci :

[ Private Sub CommandButton1_Click()
ActiveSheet.Range("A1:M40").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
.Item.To = Range("a42") 'récupère l'adresse mail du destinataire
.Item.Subject = "Objet de mon message"
.Item.Send
End With
Range("A1").Select
End Sub ]

Je voudrait rajouter dans ce petit code une ligne ou deux qui me permettent de revenir automatiquement sur la première feuille (feuille qui porte le nom du mois en cours) et qui ramène automatiquement mon curseur sur la dernière ligne saisie dans le tableau.

Merci à la personne qui pourra m'aider
Joss062

3 réponses

  1. Bonjour

    J'aime aussi comme ca

    Sub Test1()
    Worksheets(MonthName(Month(Date))).Select
    Application.Goto Range("A" & Rows.Count).End(xlUp), True
    End Sub

    A+
    Maurice
    0
    1. Bonjour,

      Si la colonne A contient une donnée dans la dernière ligne renseignée :

          With Worksheets(MonthName(Month(Date)))
      .Activate
      .Range("A" & Rows.Count).End(xlUp).Select
      End With


      A+
      1
      1. Gyrus,
        ça n'a pas de conséquence... je reviens automatiquement sur la dernière cellule sélectionné... et non en colonne "A"
        Comment ça se fait ?
        Merci a toi
        0
      2. As-tu effectué une copie strictement identique de la procédure ?
        La feuille correspondant au mois en cours est-elle activée par cette procédure ?
        Si oui, quelle est la cellule sélectionnée en fin de procédure ?

        Quelques explications pour te permettre d'y voir plus clair :

        Explication sur l'instruction "Worksheets(MonthName(Month(Date)))"
        Date => 8/11/2014
        Month(Date)=> 11
        MonthName(Month(Date)=> novembre
        Worksheets(MonthName(Month(Date) )) correspond donc à la feuille qui porte le nom du mois en cours.

        L'instruction With permet d'appliquer une série d'instructions à la feuille indiquée, sans qualifier à chaque fois le nom de la feuille.

        .Activate permet donc d'activer la feuille "novembre". Cette méthode revient à cliquer sur l'onglet de la feuille.

        Ensuite, une explication sur l'instruction ".Range("A" & Rows.Count).End(xlUp).Select"
        Rows.Count correspond au nombre de lignes de la feuille (Exemple : 1048576 avec Excel 2007).
        .Range("A" & Rows.Count) correspond à la dernière cellule de la colonne A (soit A1048576 avec Excel 2007).
        .Range("A" & Rows.Count).End(xlUp) correspond à la première cellule renseignée lorsqu'on remonte la colonne A. C'est donc la dernière cellule renseignée de cette colonne.

        Tu peux placer la procédure dans un module standard et la tester directement pour vérifier le fonctionnement.
        Sub Test()
        With Worksheets(MonthName(Month(Date)))
        .Activate
        .Range("A" & Rows.Count).End(xlUp).Select
        End With
        End Sub


        A+
        0
      3. Merci pour cette petite explication, effectivement, expliqué comme ça, on y voit beaucoup plus clair (merci pour la patience). Dsl, je suis novice en la matière...
        Je test ça et te tiens au courant.
        Tant que j'y suis, pourrais tu me dire ce que je dois rajouter dans ma procédure précédente (concernant l'envoi du mail) pour pouvoir mettre un destinataire en copie (cc)
        J'ai rajouté : .Item.To = Range("référence de la cellule avec l'adresse mail") mail ça marche pas...
        Merci à toi
        0
    2. Modérateur
      Bonjour,

      Avant Range("A1").Select, tu mets :
      Sheets(1).Activate

      ça active la première feuille. Pour aller sur une feuille avec un nom particulier, tu remplaces 1 par le nom de la feuille entre guillemets.

      m@rina

      1
      1. Merci morina, ca marche si je supprime le Range("A1").Select
        sinon j'ai un débogage...
        Merci à toi
        Joss
        0