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

Associer Bouton Alerte A Des Donnees

  • Initiateur de la discussion Initiateur de la discussion nostress38
  • 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 !

N

nostress38

Guest
Bonjour le forum
J'ai besoin de vous pour un probléme , sur mon fichier j'aimerais que dés qu'une date dans la colonne "livraison atelier " s'affiche, un message d'alerte m'indiquant la feuille soit envoyé soit sur un mail soit dés que j'ouvre mon fichier.
Comment faire ?
passer par un bouton d'alerte ?
Associer un mail à cette colonne?
merci pour votre aide.
 

Pièces jointes

  • fs.zip
    fs.zip
    22.3 KB · Affichages: 45
Re : Associer Bouton Alerte A Des Donnees

Bonjour,

1 ) utiliser un événement ou autre ....
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
dans le code de la feuille
target récupère la valeur de la date colonne "livraison atelier"
renvoyer sur une macro 2 )

2 ) macro qui évalue la date (date atteinte ou pas, critères ?) et renvoyer sur une macro 3 )

3 ) -> message alerte ou expédition d'un mail

il y a surement des milliers d'autres possibilités ....
 
Re : Associer Bouton Alerte A Des Donnees

Bonjour, je suis un peu perdu...... cela ne fait il pas beaucoup 3 macros ?
etant novice y a t'il un moyen plus simple?
merci
 
Re : Associer Bouton Alerte A Des Donnees

Bonjour,

L'état n'a pas encore installé une redevance sur les macros ;-)
mais çà ne devrait pas tarder, une bonne idée ne se perd jamais !

1 ) la première macro est liée à la manière dont il faut récupérer la date
-> une valeur change -> la macro réagit
-> plusieurs valeurs à changer et on appuie sur un bouton pour lancer ...

2 ) la date est évaluée
en séparant avec une autre macro, en tâches simples, c'est plus facile à dépanner ... quelque fois, c'est aussi plus simple de tout mettre dans une macro .. çà dépend de la complexité ...

3 ) suivant le résultat du test date on déclenche un mail ou on affiche une info ...

donc pour commencer à t'aider, il faut répondre au point 1 )
on change la valeur d'une case de la feuille, n'importe laquelle (date texte etc ..) ... et çà se lance ...

on modifie la feuille et on choisit d'appuyer sur un bouton pour lancer la suite ..
 
Re : Associer Bouton Alerte A Des Donnees

merci
je vais essayé ce week car il s'annonce pluvieux, je te tiendrais au courant de mes avancées car je ne suis qu'un débutant....🙂
 
Re : Associer Bouton Alerte A Des Donnees

apres moultes essais sans résultat, creer une nouvelle feuille dans mon fichier avec à l'interieur les dates "livraison atelier " egale ou superieur a aujourdh'ui me semblerait plus simples, qu'en pensez-vous ?
pouvez vous m'aider dans cette voie ?
Merci
mon fichier joint se trouve en debut de discussion
 
Re : Associer Bouton Alerte A Des Donnees

re bj,

à ce moment là, utiliser le filtre automatique
option "personnalisé" et prendre la date supérieure à aujourd'hui ....
sur ligne 5 feuille 1
 
Re : Associer Bouton Alerte A Des Donnees

merci jcgl
par contre j'aimerai mettre toutes les dates superieur à aujourd'hui dans une feuille à part car mon fichier comporte enormement de feuilles (environ 30) et chaque feuille comporte plusieurs dossiers.
Cette feuille à part montrerai toutes les dates superieures à aujourd'hui et les feuilles qui y sont rattachées.
Merci encore pour votre aide
 
Re : Associer Bouton Alerte A Des Donnees

Hello
Je me suis peut etre mal exprimé, pour simplifier la tache : d'ouvrir chaque feuille pour regarder la date des "besoins ateliers" je desire creer une feuille à part recuperant toutes les dates superieures à aujourd'hui
merci si quelqu'un peut m'aider
 
Re : Associer Bouton Alerte A Des Donnees

re bj,

code à insérer dans un module

fermer excel / ouvrir excel / macro securité sur moyen /

le menu pour lancer est au clic droit de la souris ...

il reste les finitions de la feuille de récap, mais on va déjà voir si c'est bon ;-)

Code:
'http://www.excel-downloads.com/forum/93237-associer-bouton-alerte-des-donnees.html

Dim nomFeuilleRecapP As String

Sub InitialisationDesMenusSouris(Optional bidon As String)
      MenuCell "Debut", "RECAP DES DATES > AUJOURDHUI"
End Sub

Sub auto_open(Optional bidon As String)
 InitialisationDesMenusSouris
End Sub

Function MenuCell(stCde As String, stMess As String)
' Rajout d'une entrée dans menu contextuel souris droit
Dim barreDeControle As CommandBarControls

Dim barreBouton As CommandBarButton
    
Set barreDeControle = CommandBars("Cell").Controls
    
Set barreBouton = barreDeControle.Add(msoControlButton, Temporary:=True)
    
    barreBouton.Caption = stMess
    
    barreBouton.OnAction = stCde

End Function

Sub Debut()
 AjouteUneFeuille ("RECAP")
  BoucleDesFeuilles
   Sheets(nomFeuilleRecapP).Select
    Range("a1").Select
End Sub

Sub BoucleDesFeuilles()
nbFeuilles = Sheets.Count
 For feuille = 1 To nbFeuilles
  If Left(Sheets(feuille).Name, 5) = "RECAP" Then GoTo sautFeuilleRecap
    RechercheDesColonnesLivraisonAtelier feuille
sautFeuilleRecap:
 Next feuille

End Sub

Sub RechercheDesColonnesLivraisonAtelier(feuille)
 Sheets(feuille).Activate
  Range("a1").Select

With ActiveSheet.UsedRange
 Set c = .Find("LIVRAISON", LookIn:=xlValues)
    If Not c Is Nothing Then
      firstAddress = c.Address
       ligne = c.Row
        colonne = c.Column
       RecupereLesInfosColonne ligne, colonne
       
       Do
         Set c = .FindNext(c)
         adresseSuivante = c.Address
          ligne = c.Row
            colonne = c.Column
          RecupereLesInfosColonne ligne, colonne
       Loop While Not c Is Nothing And adresseSuivante <> firstAddress
    End If
End With

Set c = Nothing

End Sub

Sub RecupereLesInfosColonne(ligne, colonne)
 DerniereLigneDeLaFeuille colonne, derniereLigneUtilisee
  RechercheDesDatesSuperieuresAaujourdhui ligne, colonne, derniereLigneUtilisee
End Sub

Sub RechercheDesDatesSuperieuresAaujourdhui(ligne, colonne, derniereLigneUtilisee)
  Set plg = Range(Cells(ligne + 1, colonne), Cells(derniereLigneUtilisee, colonne))
 nomFeuille = ActiveSheet.Name
  texteAafficher = "CLIQUER ICI POUR RETROUVER CETTE DATE"
   infoBulle = "CLIQUER ICI POUR RETROUVER CETTE DATE"

For Each dateAtelier In plg
  
  Select Case dateAtelier
   Case Is >= Date
    Sheets(nomFeuille).Select
     Range(dateAtelier.Offset(0, -3), dateAtelier.Offset(0, 1)).Select
      'Stop
      adresse = dateAtelier.Address
       'ligneDate = dateAtelier.Row
        RecupDeLaligneTrouvee ligne
       colonne = 6
        'Stop
        LienHypertexte ligne, colonne, nomFeuille, adresse, texteAafficher, infoBulle
      MiseEnformeDeLaLigne ligne, colonne, nomFeuille, adresse
    Sheets(nomFeuille).Select
   
   Case Else
 
 End Select
Next

End Sub

Sub LienHypertexte(ligne, colonne, nomFeuille, adresse, texteAafficher, infoBulle)
        sousAdresse = "'" + nomFeuille + "'!" + adresse
 With ActiveSheet
   .Hyperlinks.Add Anchor:=ActiveSheet.Cells(ligne, colonne), Address:="", _
    SubAddress:=sousAdresse, ScreenTip:=infoBulle, TextToDisplay:= _
     texteAafficher
 End With

End Sub

Sub MiseEnformeDeLaLigne(ligne, colonne, nomFeuille, adresse)
   Cells(ligne, 1).Select
    'Selection.NumberFormat = "m/d/yyyy"
    Selection.NumberFormat = "[$-40C]dd-mmm-yy;@"
    With Selection.Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 5
    End With
      
   Cells(ligne, 2).Select
    With Selection.Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 7
    End With
    
    Cells(ligne, 3).Select
    'Selection.NumberFormat = "m/d/yyyy"
    Selection.NumberFormat = "[$-40C]dd-mmm-yy;@"
    With Selection.Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 50
    End With
    
    Cells(ligne, 4).Select
    'Selection.NumberFormat = "m/d/yyyy"
    Selection.NumberFormat = "[$-40C]dd-mmm-yy;@"
    With Selection.Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 3
    End With
    
End Sub

Sub RecupDeLaligneTrouvee(ligne)
 'Stop
 Selection.Copy
 
  Sheets(nomFeuilleRecapP).Select
   DerniereLigneDeLaFeuille 1, derniereLigneUtilisee
     Cells(derniereLigneUtilisee + 1, 1).Select
  
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

ligne = derniereLigneUtilisee + 1
End Sub

Sub DerniereLigneDeLaFeuille(colonne, derniereLigneUtilisee)
nbLignes = ActiveSheet.Rows.Count
    Select Case TypeName(colonne)
      Case "String" 'une lettre A65536
        derniereLigneUtilisee = Range(colonne & LTrim(Str(nbLignes))).End(xlUp).Row
      Case Else 'un chiffre
        derniereLigneUtilisee = Cells(nbLignes, colonne).End(xlUp).Row
    End Select
End Sub

Sub AjouteUneFeuille(nomDeLaFeuille)
Application.ScreenUpdating = False
 Application.DisplayAlerts = False
 
 TueSiFeuilleExiste nomDeLaFeuille
 
 Set feuilleAjoutee = Sheets.Add(before:=Sheets(1))

 ConvertiLaDate laDate
 
 feuilleAjoutee.Name = nomDeLaFeuille + " " + laDate
  nomFeuilleRecapP = feuilleAjoutee.Name
  
  Application.ScreenUpdating = True
   Application.DisplayAlerts = True
End Sub

Sub TueSiFeuilleExiste(nomDeLaFeuille)
   For i = 1 To Sheets.Count
      If Left(Sheets(i).Name, 5) = nomDeLaFeuille Then Sheets(i).Delete: Exit For
   Next i
End Sub

Sub ConvertiLaDate(laDate)
tableau = Split(Date, "/")
 For i = UBound(tableau) To 0 Step -1
  Select Case i
   Case Is = UBound(tableau)
      laDate = tableau(i)
   Case Else
     laDate = tableau(i) + "-" + laDate
  End Select
 Next i
End Sub
 
- 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

Réponses
8
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…