IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Aide pour réaliser alarme de control [XL-97]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Par défaut Aide pour réaliser alarme de control
    Bonsoir tout le monde,

    je viens vers vous car je rencontre un petit problème dans la réalisation d'un projet pour mon travaille, pour résumer j'aimerais un bouton qui trie une date dans un tableau et qui me renvoie des infos dans un autre tableau.

    Pour que cela soit plus claire et plus précis je vous joint mon travaille.

    Merci d'avance a tous et bonne soirée.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu peux essayer cette première petite proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub CommandButton1_Click()
    Dim plage As Range, c As Range
    Dim dteEtal As Date
    Dim i As Integer
    Dim flag As Boolean
     
    Set plage = Sheets("BASE_DONNEE").Range("I8:I26")
    dteEtal = CDate(Sheets("SCRIPT").Range("K12").Value)
    i = 12: flag = False
    For Each c In plage
        If DateDiff("d", dteEtal, CDate(c.Value)) >= 0 And DateDiff("d", dteEtal, CDate(c.Value)) <= 7 Then
            Sheets("SCRIPT").Range("M" & i).Value = c.Offset(0, -2).Value
            i = i + 2
            flag = True
        End If
    Next c
    If Not flag Then Sheets("SCRIPT").Range("M" & i).Value = "AUCUN ETALONAGE PREVU"
    End Sub

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Par défaut
    Salut mercatog,

    Déjà merci pour t'avoir donner de la peine pour moi, mais pour le script cela et un bon début mais si je prend la date d' d'aujourd'hui et que je clic dessus il me marque aucun étalonage hors il y en a deux de prevu pour le 10/10/09 et le 07/10/2009 hors lui il me dit qu'il y en à pas a faire, cela te dérange de jeter ton œil avertie dessus? pour moi c'est vraiment trop hors de porter!

    Ok j'avais pas vu un truc regarde j'ai remis une feuille et tu va comprendre de suite ceux que j'attends!!!
    Mais en faite tu a vu il marche bien par contre si il y a moyen de modifier dans ton code pour que j'ai pas a garder cette nouvelle feuille. aussi il faut que dans la case "Date prochain étalonnage " cela indique quand même la date prévu des lignes a faire et que dans la case "REFERENCE" cela indique ça référence.

    En tout cas encore merci pour ton travaille, vais peu être avoir mon augmentation grâce a toi .

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ok, je vois ce que tu veux faire;
    d'abord, évite les cellules fusionnées, c'est inutile et c'est un casse tête en vba!
    dans ta feuille SCRIPT, K11: Date prochain étalonnage, L11: N° LIGNE et M11: REFERENCE
    Le code modifié donne ceci (pas besoin de ta feuille Feuil1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub CommandButton1_Click()
    Dim plage As Range, c As Range
    Dim i As Integer
    Dim flag As Boolean
     
    Sheets("SCRIPT").Range("K12:M" & Sheets("SCRIPT").Range("K65536").End(xlUp).Row).ClearContents
    Set plage = Sheets("BASE_DONNEE").Range("I8:I26")
     
    i = 12: flag = False
    For Each c In plage
        If DateDiff("d", Date, CDate(c.Value)) >= 0 And DateDiff("d", Date, CDate(c.Value)) <= 7 Then
            Sheets("SCRIPT").Range("K" & i).Value = c.Value
            Sheets("SCRIPT").Range("L" & i).Value = c.Offset(0, -2).Value
            Sheets("SCRIPT").Range("M" & i).Value = c.Offset(0, -4).Value
            i = i + 1
            flag = True
        End If
    Next c
    If Not flag Then Sheets("SCRIPT").Range("M" & i).Value = "AUCUN ETALONAGE PREVU"
    End Sub
    Pour l'éventuelle augmentation, c'est une autre affaire

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 9
    Par défaut
    Re salut désoler mais jetait au travaille!

    J'ai refait comme tu me la dit mais je rencontre a nouveau un ti probleme !

    regarde quand je clic sur le bouton toute ma mise en forme s'efface ! peu tu me dire pourquoi??? et peu tu me dire aussi comment je fait si jamais je veux rajouter une info dans le tableau regarde je les nommé comme exemple "info future"

    Encore merci pour ton aide et a bientôt

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Au lieu de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("SCRIPT").Range("K12:M" & Sheets("SCRIPT").Range("K65536").End(xlUp).Row).ClearContents
    mets ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("SCRIPT").Range("K12:O" & Sheets("SCRIPT").Range("K65536").End(xlUp).Row + 1).ClearContents
    Désolé, j'avais sommeil apparemment

    Pour ta question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Sheets("SCRIPT").Range("L" & i).Value = c.Offset(0, -2).Value
    dans la variable c c'est la cellule de la date trouvée dans la feuille BASE_DONNEE
    le c.offset(0,y) permet de récupérer l'information contenue dans la cellule X de la feuille BASE_DONNEE qui se trouve sur la même ligne que c déplacée de y colonnes (y peut être positif ou négatif).
    j'espère être clair

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DW MX2004] Aide pour réaliser la page traitement_commande.php
    Par hoangeric dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 29/06/2007, 23h22
  2. demande aide pour réaliser mcd merise
    Par hugue dans le forum Schéma
    Réponses: 1
    Dernier message: 30/04/2007, 17h39
  3. Réponses: 5
    Dernier message: 22/02/2007, 12h09
  4. Réponses: 8
    Dernier message: 03/11/2005, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo