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 :

effacer une date et rajouter des lignes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Par défaut effacer une date et rajouter des lignes
    bonjour,

    je souhaiterais un aide pour une VBA, voila :
    Dans une colonne j'indique une date de formation valide pour 5 ans (date de formation à la date du jour), j'ai une MFC qui change la couleur de la date (orange aprés 5 ans et 1 mois et rouge aprés 5 ans et 6 mois).
    mes demandes sont les suivantes:
    Effacé la date aprés 6 ans et la remplacer par 1

    si je rajoute des lignes , est-ce que la macro fonctionne ou je doit faire un tableau à l'infini?

    merci de votre aide.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Voici un code qui parcours les lignes et modifie la colonne A si la date contenue est < date actuelle - 6 ans:

    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
    Sub NettoieDates()
    Dim sh As Worksheet 'Feuille à traiter
    Dim i As Integer
    Dim iDerLg As Integer 'Derniére ligne
    Dim dMoins6 As Date 'DAte actuelle - 6 ans
    Set sh = ThisWorkbook.Sheets("Feuil3") '<<<<<<<< Ligne à modifier pour définir la feuille à traire >>>>>
     
    iDerLg = sh.Range("A1").CurrentRegion.Rows.Count
    dMoins6 = DateSerial(Year(Now) - 6, Month(Now), Day(Now))
    For i = 2 To iDerLg '<<<<<<<<< Saut de la ligne 1 réservé pour entête de colonne>>>>>>>>>
      If sh.Cells(i, 1) < dMoins6 Then
       sh.Cells(i, 1) = 1
      End If
    Next
    End Sub
    reste à voir l'événement pour lancer ce code (ouverture du classeur.., activation de la feuille...?)

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 141
    Par défaut
    Bonjour samourai59193,

    Citation Envoyé par samourai59193 Voir le message
    Dans une colonne j'indique une date de formation
    Quelle colonne ? Ce n'est pas tant la valeur qui importe mais comment vous allez la nommer colDate = ... ? Qui dit colonne dit à la quelle rangée rowDateFirst commence-t-elle ? S'il n'y a pas de rangée de fin de date, précisez en commentaire jusqu'à la prochaine rangée vide, etc.

    Donnez entre les balises [code] et [/code] le début de votre module commençant par Option Explicit ainsi que la définition des constantes en rangée et colonne en vous aidant du modèle de ma réponse pour cavrom chapitre 4.

    Citation Envoyé par samourai59193 Voir le message
    valide pour 5 ans (date de formation à la date du jour)
    Indiquez dans l'exemple de code VBA fourni la procédure ou l'extrait de code qui valide la date.

    Citation Envoyé par samourai59193 Voir le message
    j'ai une MFC qui change la couleur de la date (orange après 5 ans et 1 mois et rouge après 5 ans et 6 mois).
    Définir les abréviations. MFC peut signifier Microsoft Foundation Class pour du code en C++, le lien avec Excel n'étant pas immédiat sans autre précision. Comment est appelée votre MFC ? Donnez entre les balises [code] et [/code] un exemple de MFC.

    Citation Envoyé par samourai59193 Voir le message
    Effacer la date après 6 ans et la remplacer par 1
    Indiquez quand et comment vous voulez lancer le traitement d'effacement des dates obsolètes autrement dit quel est le nom de la maquette de la macro à exécuter ?

    Citation Envoyé par samourai59193 Voir le message
    si je rajoute des lignes, est-ce que la macro fonctionne ou je doit faire un tableau à l'infini?
    Faire un tableau à l'infini risque d'être long surtout vers la fin...

    Indiquez en terme de rangée où les nouvelles lignes seront ajoutées ? En fin ? Insérées à partir de la rangée rowDateFirst à définir dans les constantes ?

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour MattChess,

    MFC est utilisé, dans Excel, pour Mise en Forme Conditionnelle.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/09/2008, 12h11
  2. Effacer une date automatiquement
    Par damene dans le forum Débuter
    Réponses: 10
    Dernier message: 05/04/2008, 10h09
  3. Réponses: 4
    Dernier message: 21/03/2008, 17h40
  4. rajouter des lignes dans la combobox
    Par levac dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/05/2007, 09h38
  5. [DOM] Rajouter des ligne a un tableau sous IE
    Par ldcarpathes dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 14/08/2006, 16h55

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