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 :

supprimer taches expirées [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut supprimer taches expirées
    bonjour les amis
    mon code s'exécute si je fais directement mais pas via un bouton de commande
    mon code consiste à parcourir une liste des taches, afficher un message et supprimer les anciens taches
    j'ai passé par "vrai" si la tache est expirée et "non" le contraire
    chui débutant j'ai pas pu passé directement par la comparaison des date par rapport a la date d'aujourd'hui
    directement sur VBA
    voila mon code
    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
    21
    22
    Sub A_FAIROS()
     
    Dim w1 As Worksheet
    Dim I As Long
    Dim Z As Long
    Dim D As Date
    Set w1 = Sheets("ALERTE") 'Feuille qui contient les alertes
    D = Date
     
    For I = 2 To w1.Range("A5000").End(xlUp).Row ' faire toute la colonne A
    p = D - w1.Range("A" & I)
        If p > -7 And p <= 0 Then
        MsgBox w1.Range("A" & I) & ":" & " " & w1.Range("B" & I)
        End If
    Next
     
    Application.ScreenUpdating = False
    For Z = w1.[C5000].End(xlUp).Row To 1 Step -1
     
          If Left(Cells(Z, 3), 5) = "VRAI" Then Rows(Z).Delete
       Next Z
    End Sub
    Classeur2.xlsm

  2. #2
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 904
    Par défaut
    Et la question c'est quoi ?

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    si j'exécute directement le code ça fonctionne parfaitement , me donne les taches prochaines et supprime les taches expirées (ligne qui contiennent "VRAI" ) mais si j'exécute le code depuis une bouton de commande il exécute 50% de la code (me donne les taches prochaines sans effacer les lignes qui contiennent "vrai"
    sachant que pour obtenir vrai ou faux je passe par une formule de base (si la date de la tache est non vide (si la date de la tache < date AUJOURDHUI() ; "VRAI";"FAUX)"")

    ma fiche jointe illustre l'exemple
    merci à vous tous

  4. #4
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 904
    Par défaut
    J'ai pas regardé ton fichier mais de ce que tu racontes l'erreur vient de ta condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Left(Cells(Z, 3), 5) = "VRAI"
    à transformer en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ucase(Left(Cells(Z, 3), 5)) = "VRAI"

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    merci pour votre réponse mais ça change rien
    toujours le code n'arrive pas a supprimer les lignes contenant "VRAI"
    ce qui est bizarre c'est si j'exécute le code directement de la page VBA ça fonctionne parfaitement !!!

    AU SECOURS LES AMIS SVPPPPPPPPPPPPPPP
    les taches sont dans la feuil2 nommée "ALERTE"
    mon bouton de commande se trouve dans la feuil1
    si depuis VBA j'exécute la commande ça me donne les taches prochaines (<7jours) et supprime les ligne contenant "VRAI"
    si j'exécute depuis le bouton de commande figurant ds la feuil 1 ca me donne les taches prochaines (<7jours) mais ne SUPPRIME PAS LES LIGNES CONTENANT VRAI
    merci d'avance et désolé d'insister à ce point

  6. #6
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour

    Ceci ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Left(Cells(Z, 3), 5) = "VRAI" Then
    Mais ceci fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Left(w1.Cells(Z, 3), 5) = "VRAI" Then

  7. #7
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    chui débutant j'ai pas pu passé directement par la comparaison des date par rapport a la date d'aujourd'hui
    directement sur VBA
    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
    21
    22
    23
    24
    25
    26
    27
    28
    Sub A_FAIROS()
     
    Dim w1 As Worksheet
    Dim I As Long
    Dim Z As Long
    Dim D As Date
    Set w1 = Sheets("ALERTE") 'Feuille qui contient les alertes
    D = Date
     
    For I = 2 To w1.Range("A" & Rows.Count).End(xlUp).Row ' faire toute la colonne A
    p = D - w1.Range("A" & I)
        If p > -7 And p <= 0 Then
        w1.Range("A" & I).Select
     
        MsgBox w1.Range("A" & I) & ":" & " " & w1.Range("B" & I)
        End If
    Next
     
    Application.ScreenUpdating = False
    For Z = w1.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
     
          If IsDate(w1.Cells(Z, 1)) Then
           If CDate(w1.Cells(Z, 1)) < D Then
            w1.Cells(Z, 1).EntireRow.Delete
           End If
          End If
       Next Z
    End Sub

  8. #8
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour les super !!
    ericdu06 ta solution est intélligente mais malheureusement fonctionne que si je l'exécute depuis la fenêtre VBA
    Docmarti ta solution fonctionne parfaitement...vraiment merci pour vous..
    BONNE JOURNEE

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/04/2015, 12h53
  2. Réponses: 0
    Dernier message: 16/05/2011, 16h23
  3. supprimer une tache de sauvegarde automatique
    Par med_med dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 28/09/2010, 19h59
  4. supprimer les alertes de taches
    Par merlin73 dans le forum SharePoint
    Réponses: 1
    Dernier message: 24/10/2008, 11h00
  5. [SQL Server 2005] Supprimer les jeux de sauvegarde expirés
    Par lapanne dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/09/2007, 16h16

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