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 :

Calcul de date [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 40
    Par défaut Calcul de date
    Bonjour tout le monde, je travaille actuellement sur une base de données clients et j'aimerai, pour être conforme au RGPD, supprimer les clients qui sont dans le fichier depuis plus de 2 ans.

    J'ai donc fait un code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 2 To derniereLigne2
        If Feuil1.Cells(3, 22) - Feuil1.Cells(i, 2) > 730 Then
            Sheets("Clients").Range("A" & i, "Q" & i).Delete shift:=xlUp
        End If
    Next
    La cellule(3,22) correspond à la cellule où j'ai mis une fonction AUJOURD'HUI pour avoir la date à l'instant t. Ma colonne 2 regroupant la date d'incorporation des clients est au format date.
    Malgré ça, quand je le lance, j'ai un message d'erreur m'indiquant une incompatibilité de type (sur la ligne du IF).

    Avez-vous une solution à mon problème ?
    Merci d'avance.

    Cordialement, Bemirdor.

  2. #2
    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
    le principe de suppression est de la dernière ligne vers la première ligne STEP -1
    Tu teste sur feuil1 et tu supprime onglet client !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Feuil1.Cells(3, 22) - Feuil1.Cells(i, 2) > 730 Then
            Sheets("Clients").Range("A" & i, "Q" & i).Delete shift:=xlUp
        End If
    à tester (nb dans ce code la date d'aujourd'hui se trouve en A1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    derniereLigne2 = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
    For I = derniereLigne2 To 2 Step -1
        If Sheets("Feuil1").Cells(1, 1) - Sheets("Feuil1").Cells(I, 2) > 730 Then
            Sheets("Feuil1").Rows(I).Delete
        End If
    Next I
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 40
    Par défaut
    Merci de cette réponse rapide. J'ai repris donc ton code en l'adaptant à mon classeur, mais le problème d'incompatibilité de type persiste...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = derniereLigne2 To 2 Step -1
        If Sheets("Clients").Cells(3, 22) - Sheets("Clients").Cells(i, 2) > 730 Then
            Sheets("Clients").Rows(i).Delete
        End If
    Next i
    Le problème vient encore de la ligne avec le IF.

  4. #4
    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
    un fichier exemple avec 10 lignes de données fictives et sans macro svp

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 40
    Par défaut
    Pas de problème.
    Fichiers attachés Fichiers attachés

  6. #6
    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
    fais attention au nom des onglets , le code fonctionne
    Fichiers attachés Fichiers attachés

  7. #7
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Bemirdor Voir le message
    Merci de cette réponse rapide. J'ai repris donc ton code en l'adaptant à mon classeur, mais le problème d'incompatibilité de type persiste...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = derniereLigne2 To 2 Step -1
        If Sheets("Clients").Cells(3, 22) - Sheets("Clients").Cells(i, 2) > 730 Then
            Sheets("Clients").Rows(i).Delete
        End If
    Next i
    Le problème vient encore de la ligne avec le IF.

    Peut-être avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Sheets("Clients").Cells(3, 22).Value - Sheets("Clients").Cells(i, 2).Value > 730 Then
    de plus c'est la colonne 23 où tu as ta date


    et dans VBA "=AUJOUDHUI()" ==> c'est la instruction : Date

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

Discussions similaires

  1. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13
  2. COUNT + Calcul de DATE
    Par cassi2 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/10/2004, 16h35
  3. Resutlat de calcul sur date formaté
    Par neness dans le forum SQL
    Réponses: 6
    Dernier message: 16/06/2004, 15h34
  4. SCRIPT CALCULANT LA DATE
    Par Redouane dans le forum ASP
    Réponses: 3
    Dernier message: 17/03/2004, 09h10
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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