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 :

macro vba pour comparer des fichiers et supprimer des lignes


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3
    Points : 4
    Points
    4
    Par défaut macro vba pour comparer des fichiers et supprimer des lignes
    Bonjour, débutante dans la programmation sous VBA je cherche à créer une macro permettant de comparer 3 fichier ( fiche de base de donnée, mouvement2015 et mouvement 2016) et celui ci consiste à vérifier si les mots clé situé dans la colonne auxiliaire (de la base de donnés) se retrouvent dans les feuilles (mouvement 2016 ou mouvement2016) sinon de supprimer toute la ligne.
    je me retrouve bloqué car un message d'erreur s'affiche à partir de for each


    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
    29
    30
    31
    32
    33
    Sub mouvement2015()
    Dim sheetmouvementannée1 As String, sheetmouvementannée2 As String, sheetbasededonné As String, sheetDestination As String
    sheetmouvementannée1 = InputBox("Entrez le nom de la feuille des mouvements de l'année N")
    sheetmouvementannée2 = InputBox("Entrez le nom de la feuille des mouvements de l'année N+1")
    sheetbasededonné = InputBox("Entrez le nom de la feuille de base de donnée")
    sheetDestination = InputBox("Entrez le nom de la feuille de destination des résultats")
     
    Dim basededonné As Worksheet, Destination As Worksheet, mouvementannée1 As Worksheet, mouvementannée2 As Worksheet
     
    Set basededonné = Worksheets(sheetbasededonné)
    Set Destination = Worksheets(sheetDestination)
    Set mouvementannée1 = Worksheets(sheetmouvementannée1)
    Set mouvementannée2 = Worksheets(sheetmouvementannée2)
     
    basededonné.Select
     
    Dim plage As Range
    Dim auxiliaire2015 As Range, auxiliaire2016 As Range
    'Dim auxiliaire As Range
    Dim cellule As Range
    Dim DERLIGNE As Integer, i As Integer
     
    DERLIGNE = Range("A1048576").End(xlUp).Row
    Set plage = Range(" C2:A" & DERLIGNE)
    Set auxiliaire2015 = mouvementannée1.Range("A1")
    set auxiliaire2016 = mouvementannée2.Range("A1")
     
        For Each cellule In plage
            For i = 1 To 10
            If cellule.Value <> auxiliaire2015.Offset(i).Value And auxiliaire <> auxiliaire2016.Offset(i).Value Then cellule.EntireRow.Delete
            Next i   
        Next
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Quel est le message d'erreur ?
    Ce message arrive sur la ligne For Each Cellule In Plage ?
    Est-ce normal ta plage Set plage = Range(" C2:A" & DERLIGNE) De C2 à Ax ?
    MPi²

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 771
    Points : 28 631
    Points
    28 631
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En complément de la réponse de Parmi.
    Il est important pour éviter les problèmes de préciser la filiation complète des objets (Classeur.Feuille.Cellule)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [Batch] Supprimer des fichiers situés dans des sous dossiers et dossiers
    Par chuspyto dans le forum Scripts/Batch
    Réponses: 17
    Dernier message: 20/11/2019, 19h31
  2. Réponses: 1
    Dernier message: 10/12/2014, 15h30
  3. Réponses: 2
    Dernier message: 05/03/2014, 20h24
  4. Réponses: 1
    Dernier message: 28/06/2012, 16h04
  5. [XL-2010] Macro VBA pour supprimer des caractère situés après une valeur
    Par Guillaume_PMO dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/03/2011, 17h06

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