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 des cellules sous conditions + remonter des données


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Effacer des cellules sous conditions + remonter des données
    Bonjour,

    Je suis novice en la matière c'est donc pour cela que je passe par ce forum car j'ai besoin d'aide.

    Je réalise actuellement un fichier assez complexe pour calculer des indicateurs Sécurité Santé Environnement et j'aurais besoin pour un tableau spécifique de réaliser les actions suivantes quand on appui sur un bouton :
    (Voir fichier joint, ce fichier est un exemple)
    Test indicateurs.xlsx

    1- Effacer les celulles des colonnes Nom, Date de début et Date de fin (la colonne soit est une formule, donc pas besoin de l'effacer) si l'année de la date de fin est égale à l'année en cours sélectionnée -2 (donc ici si on choisit l'année en cours 2014 on doit effacer les cellules pour année date de fin = 2012.

    2- Une fois les cellules effacées, les autres données non effacées doivent être remontées afin qu'il n'y ait pas de cellules vides dans le tableau.

    J'espère avoir été clair

    Merci d'avance pour votre aide.

    Bonne journée

  2. #2
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Peux tu poster une image de ta feuille plutôt ? Je ne suis pas chez moi, et je n'ouvre pas les classeurs en PJ.

    Sinon quelques bouts de codes qui peuvent peut être t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Format(Now(), "yyyy")     'Donne la date en année
    Worksheet("LaFeuille").Row(5).Delete Shift:=xlUp     'Supprime la ligne 5 et remonte toutes les autres lignes
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Points : 335
    Points
    335
    Par défaut
    Bonjour,

    Essais ça:


    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
     Sub delete()
    Application.DisplayAlerts = False
     
    Dim i As Integer
     
    Sheets("Feuil1").Select
     
     
    With ThisWorkbook.Sheets("Feuil1")
    'Précisez le nom de votre feuille
                For i = .Range("C" & .Rows.count).End(xlUp).Row To 2 Step -1
     
    'Rows.count permet de retourner le nombre de ligne de la plage range
                            If Year(Range("C" & i)) = Year(Date)-2 Then
    'Je suppose que la date de fin est dans la colonne c
          .Rows(i).delete
     
                            End If
                Next i
    End With
     
     
     
     
    End Sub

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Voici l'image du fichier :
    Nom : Test.jpg
Affichages : 1796
Taille : 90,0 Ko

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Points : 335
    Points
    335
    Par défaut
    C'est exactement ce que fait mon code.

    Tu dois juste remplacer feuille 1 par le nom de ta feuille.

    Après tu crées ton bouton et tu lui attribues la macro

    A plus

  6. #6
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Je pense que le code de had4789 devrait marcher.

    Sinon voici encore quelques exemple de code pouvant t'aiguiller:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Format(Now(), "yyyy")                                                                         'Donne la date du jour en année
    Year(DateFin)                                                                                 'Donne l'année correspondant à la DateFin
    LastLine = Worksheets("UneFeuille").Columns(1).Find("*", , , , xlByRows, xlPrevious).Row      'Donne la dernière ligne utilisée
    For I = LastLine to 0 step -1                                                                 'Permet de boucler "à l'envers", c'est à dire en partant du bas vers le haut (Ce qui est mieux quand on supprime des lignes)
    If Year(DateFin) >= Format(Now(), "yyyy") then                                                'Si l'année de DateFin est inférieur ou égale a l'année actuelle, alors ...
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour les réponses.
    Je testerai dès que possible.
    Je vous tiendrais au courant.
    Merci encore

Discussions similaires

  1. [XL-2010] Concaténer des cellules sous condition
    Par alexisgaudet dans le forum Excel
    Réponses: 10
    Dernier message: 17/09/2014, 10h07
  2. Clignotement des cellules sous condition dates
    Par ksai001 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/06/2011, 11h58
  3. [Toutes versions] Transposer des cellules sous condition
    Par PPN83 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/09/2010, 17h57
  4. [XL-2000] Saisie dans des cellules sous conditions
    Par cedana dans le forum Excel
    Réponses: 3
    Dernier message: 14/01/2010, 14h00
  5. colorer des cellules sous conditions
    Par coenonympha dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/07/2008, 13h54

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