Code VB pour revenir sur une feuille
Joss062
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
Maurice -
Maurice -
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
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
A voir également:
- Code VB pour revenir sur une feuille
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment imprimer en a5 sur une feuille a4 - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
3 réponses
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
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
Bonjour,
Si la colonne A contient une donnée dans la dernière ligne renseignée :
A+
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+
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.
A+
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+
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
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
sinon j'ai un débogage...
Merci à toi
Joss