Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème VBA extraction

  • Initiateur de la discussion Initiateur de la discussion bastien1000
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

bastien1000

Guest
Bonjour,

J'ai un problème avec visual basic dans excel.

Je vous explique mon problème, j'ai une date de certification d'une personne arrivant à 6 mois de la péremption et je veux etre prévenu.j'ai donc mis un envoi automatique d'email vers lotus notes. Et le problème et que lorsque j'ouvre le fichier j'ai créer un msgbox avec " La certification de MR ... arrive a terme", et donc je n'arrive pas à extraire le nom de la personne qui est sur la meme ligne que la date qui arrive a terme pour avoir le nom qui s'affiche sur mon msgbox.Je pense qu'il suffit de créer une vrariable pour cela mais je ne sais pas faire pour que une fois la cellule avec la date (colonne E)dépasser à etait detecté qu'il extrait le nom dans la colonne A puis m'affiche un message comme j'ai montré précedemment.

Merci de votre aide, si je suis pas trop clair merci de me le précise et j'essayerai de l'être plus.

Merci d'avance au personne s'interessant a mon sujet car c'est important.

Bonne journée🙂
 
Re : Problème VBA extraction

Bonjour Bastien1000 et bienvenue sur le forum 😉

Merci de votre aide, si je suis pas trop clair merci de me le précise et j'essayerai de l'être plus.
Ben voilà tout est résumé 😀

Pourrais tu nous joindre un bout de ton fichier (sans données conf.) pour que ce soit plus simple à comprendre

A+
 
Re : Problème VBA extraction

Code:
Private Sub Workbook_Open()
For Each E In Range("E2:E200")
If Not E = ("") Then
If E - 60 <= (Date) Then
Dim sup As String
Dim Fichier_Aide As String
Fichier_Aide = "d:\aide.txt"
If E - 60 <= (Date) Then
Columns("A").Select
valeurA = ""
sup = MsgBox("La certification de Mr" & valeurA & "arrive à terme", vbMsgBoxHelpButton + 256 + vbExclamation, "Rappel", Fichier_Aide, 1)
If sup = vbOK Then
MsgBox "Veuillez prévenir le responsable"
' Ajouter la référence Lotus Domino Objects (domobj.tlb)
    Dim EMailPJ As String
    Dim email(1) As String
    'Chemin = ActiveWorkbook.path & "\Report SAV Batch"
    ' Responsables
    email(1) = "bastien.decourt@transport.alstom.com"
    ' Boucle pour envoyer les mails
    For Z = 1 To 1 '
        EnvoiRef = prvSendNotesMail("Demande de certification", "", email(Z), SaveIt:=True)
    Next Z
End If
End If
End If
End If

    Next E
End Sub

Voici le programme ( le début ), Donc une fois que j'ai détecté la date qui arrive dans une période de 60 jours par rapport à la date du jour un email est envoyé au responsable.
Mais c'est donc la suite qui me pose problème :

If E - 60 <= (Date) Then
Columns("A").Select
valeurA = ""
sup = MsgBox("La certification de Mr" & valeurA & "arrive à terme", vbMsgBoxHelpButton + 256 + vbExclamation, "Rappel", Fichier_Aide, 1)

Je dis ici que si la date est dans la zone de détection je veux extraire le nom dans la colonne A mais dans la meme ligne car sur la ligne j'ai ( NOM ( Colonne A ),TYPE DE CONTROLE,DATE DE VALIDATION,DUREE DE VALIDITEE,DATE DE RENOUVELLEMENT (Colonne E))

Donc il faudrai que quand ma date est dans la zone je puisse avoir le nom de la personne dans mon msgbox( la date est le nome son sur la même ligne mais pas la meme colonne)

Est ce que cela est plus clair ?

Je te remerci de ta rapidité ceci est important pour moi.
 
Dernière modification par un modérateur:
Re : Problème VBA extraction

Re,

Quand tu mets du code merci de bien vouloir le mettre entre les tags "["code"]" et "["/code"]"

Pour régler ton soucis,
Code:
...
If E - 60 <= (Date) Then
valeurA = Range("A" & E.Row)
...
Ca devrait fonctionner 😉

Petit conseil si ça ne te dérange pas 🙂

Nomme correctement tes variables avec des noms explicites

Exemple : E est la variable contenant la cellule en cours
Donc nomme la plutôt : "Cel" ce sera plus clair par la suite

De plus pense à déclarer tes variables en début de procédure,
Code:
Dim Cel as Range
le code s'exécutera plus rapidement 😉

A+
 
Dernière modification par un modérateur:
Re : Problème VBA extraction

WAHOU!!

Merci c'est super,juste pour cela je galéré.

Pendant que j'y suis commen inseré le nom dans mon email qui s'envoi automatiquement ? Car si je mets le nom de la variable dans le texte prédéfini cela ne marche pas ?

Code:
 With objNotesField
        .AppendText "Bonjour,"
        .AddNewLine 2
        .AppendText "La certification de Mr .. n'est plus valide dans ..."
        .AddNewLine 2
        .AppendText "Merci de prévoir une recertification avant la date de fin"
        .AddNewLine 2
        .AppendText ""
        .AddNewLine 2
        .AppendText """"
        .AddNewLine 2
        .AppendText """"
        .AddNewLine 2
        .AppendText """"
        .AddNewLine 2
        .AppendText "Cet e-mail a été généré par un processus automatique."
        '.APPENDTEXT """
        .AddNewLine 2
        .AppendText "Cordialement"
        .AddNewLine 1
        .AppendText "Bastien DECOURT"
        .AddNewLine 1
        .AddNewLine 1
    End With

Aurais tu une idée ?
 
Dernière modification par un modérateur:
Re : Problème VBA extraction

Re,

Désolé pour les tags "Code" mais je me suis mal exprimé.
Merci de ré-éditer tes précédents messages,
Tu te mets en mode "Avancé"
Tu sélectionnes tout ton code
et tu cliques sur le bouton #
Cela te met des tags comme indiqué précédemment mais sans les guillemets 🙂

Pour intégrer le nom, il suffit de faire
Code:
.AppendText "La certification de Mr " & ValeurA & " n'est plus valide dans ..."

Voili, voilà 😀
 
Re : Problème VBA extraction

D'accord je vais le faire,

Par contre comme c'est dans le meme thisworkbook mais c'est pas dans la meme fonction,et donc il ne me trouve pas la variable il me mets rien dans l'email.

Comment faire ?
 
Re : Problème VBA extraction

Re,

Il faut créer une variable public dans l'entête du module principal
Cette variable sera utilisable dans n'importe qu'elle procédure ensuite.

Code:
Public ValeurA as String

Et surtout supprimer toutes les autres déclarations de cette variable

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…