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 comparaison de feuilles et import.


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Déssinateur réseaux
    Inscrit en
    Mars 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Déssinateur réseaux

    Informations forums :
    Inscription : Mars 2015
    Messages : 8
    Par défaut Macro comparaison de feuilles et import.
    Bonjour,

    Je me permet de poster une demande d'aide étant un novice en matière de macro et VBA.

    Mon problème est le suivant, j'ai un classeur Excel dans lequel j'ai trois feuilles:
    - 1ére feuille nommé "En cours" -> feuille qui doit être comparé avec la 2éme feuille et dans laquelle les lignes doivent être importé.
    - 2éme feuille nommé "Export" -> feuille dans laquelle j'importerai régulièrement de nouvelles lignes et qui devront être comparé avec les lignes de la 1ére feuille.
    - 3éme feuille nommée "Traité" -> feuille dans laquelle les lignes comportant l'annotation "Traité" de la feuille "En cours" seront exporté.

    Dans un premier temps j'aimerai que les lignes de la feuille "En cours" soit comparé avec la feuille "Export", et que les lignes qui ne sont pas des doublons soit importé automatiquement dans la feuille "En cours".
    Pour info la comparaison des lignes peut se faire que sur la première colonne, les cellules de la première colonne comportent un numéro unique qui je pense facilite la comparaison des lignes.

    Dans un deuxième temps j'aimerai que les lignes de la feuille "En cours" qui comportent l'annotation "Traité" (colonne M) soient exporté automatiquement dans la feuille "Traité"


    Je peux également joindre le classeur sur lequel je travail si nécessaire.
    J'espère être claire dans mes explications, et reste a votre disposition pour de plus ample information.
    Merci d'avance pour l'attention apporté à mon problème.

    Bonne journée.

  2. #2
    Membre expérimenté
    Avatar de MolikDLuffy
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2017
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 158
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Pour ma part, j'aimerais bien avoir le fichier afin que je puisse regarder directement sur le fichier

  3. #3
    Membre expérimenté
    Avatar de MolikDLuffy
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2017
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 158
    Billets dans le blog
    1
    Par défaut
    Pour le moment, je vais vous dire ce que je pense.

    Pour votre première partie, il est inutile de rechercher les doublons entre la première et la deuxième feuille. Je conseille de tout copier de la feuille 1 à la feuille 2 et de supprimer les doublons via un code VBA. C'est facile car vous avez intégré un code unique pour chaque ligne.

    Pour votre deuxième partie rien de compliquer, on doit juste établir une formule conditionnelle et un copier-coller.

    J'attends donc votre fichier afin d'exploiter ces chemins là.

  4. #4
    Membre du Club
    Homme Profil pro
    Déssinateur réseaux
    Inscrit en
    Mars 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Déssinateur réseaux

    Informations forums :
    Inscription : Mars 2015
    Messages : 8
    Par défaut
    Merci de porté de l'attention a mon problème.
    Je vous joint le fichier en question. Concernant le traitement des doublons je vais être amené a importé toute les semaines une nouvelles liste, j'aimerai m'éviter trop de manipulation.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre expérimenté
    Avatar de MolikDLuffy
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2017
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 158
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    Pour le moment j'ai résolu le problème des lignes traitées à copier dans la feuille Traité

    Voici la 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
    Sub test()
    Application.ScreenUpdating = False
     
     
    For I = Sheets("En cours").Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
    If Sheets("En cours").Cells(I, 12) = "Traité" Then
    Sheets("En cours").Cells(I, 1).EntireRow.Copy
    Sheets("Traité").Select
    Range("A" & Rows.Count).Select
    ActiveCell.End(xlUp).Offset(1, 0).Select
    ActiveSheet.Paste
    End If
    Next I
     
    Application.ScreenUpdating = True
     
    End Sub

    Par contre, il n'y a pas le même nombre de colonne donc la copie se fait mal. Pour chaque feuille, il devrait avoir le même nombre de colonne ainsi que le même nom pour chaque colonne.

    Pour la première partie, en regardant le fichier, je me suis aperçu que c'était plus compliqué que ça... Par contre comment obtenez-vous les données de la feuille "Export"? Si vous obtenez ça, via une requête, au lieu d'avoir des doublons mieux vaut faire une extraction en prenant compte la date de création.

    Exemple : extraction n°1 : date de création entre 01/01/2017 au 07/01/2017
    extraction n°2 : date de création entre 08/01/2017 au 14/01/2017
    extraction n° 3 ............................

    Ainsi cela permettra d'enlever la partie des doublons puisque logiquement dans votre règle de gestion , il y a un numéro de réparation qui est rattaché à une seule date de création.

  6. #6
    Membre du Club
    Homme Profil pro
    Déssinateur réseaux
    Inscrit en
    Mars 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Déssinateur réseaux

    Informations forums :
    Inscription : Mars 2015
    Messages : 8
    Par défaut
    Merci beaucoup, concernant les doublons je vais regarder Lundi car c'est une requête que je fais a mon boulot.

    Je voulais savoir si plutôt que d’exporter les lignes lorsque la mention "Traité" figure dans une colonne, il est possible d'exporter une ligne quand je rentrerai une date dans une colonne vide ?
    J'ai oublié de préciser que j'aimerai que la ligne exporter soit supprimé de la feuille "En cours".
    Concernant le nombre de colonne je vais régler le problème et faire l'essai avec le code.

  7. #7
    Membre expérimenté
    Avatar de MolikDLuffy
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2017
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 158
    Billets dans le blog
    1
    Par défaut
    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
    Sub test()
    Application.ScreenUpdating = False
     
     
    For I = Sheets("En cours").Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
    If Sheets("En cours").Cells(I, 12) = "Traité" Then
    Sheets("En cours").Cells(I, 1).EntireRow.Copy
    Sheets("Traité").Select
    Range("A" & Rows.Count).Select
    ActiveCell.End(xlUp).Offset(1, 0).Select
    ActiveSheet.Paste
    End If
    Next I
     
    For I = Sheets("En cours").Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
    If Sheets("En cours").Cells(I, 12) = "Traité" Then
    Sheets("En cours").Cells(I, 1).EntireRow.Delete
    End If
    Next I
     
    Application.ScreenUpdating = True
     
    End Sub

    A propos de ton idée suivant :
    Je voulais savoir si plutôt que d’exporter les lignes lorsque la mention "Traité" figure dans une colonne, il est possible d'exporter une ligne quand je rentrerai une date dans une colonne vide ?
    Ca peut marcher mais pas avec la date, plutôt avec le numéro de réparation.

    De plus, si tu vas dans ce sens là, tu n'auras plus besoin du code VBA, des formules recherchev suffiront.

    Pour ma part, le code vba est pas mal donc c'est bien.

    Si tu fais l'extraction, je pense que tu pourras choisir ta tranche de date

  8. #8
    Membre du Club
    Homme Profil pro
    Déssinateur réseaux
    Inscrit en
    Mars 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Déssinateur réseaux

    Informations forums :
    Inscription : Mars 2015
    Messages : 8
    Par défaut
    Merci bien, je vais faire des essais Lundi et vous retiens au courant !

Discussions similaires

  1. Rapidité Macro lié à la feuille active
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/08/2006, 17h40
  2. [VBA Excel] macro création de feuille
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/06/2006, 11h13
  3. macro sur plusieurs feuilles
    Par lolo_bob2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2006, 16h51
  4. ma feuille javascript importée ne fonctionne pas
    Par psychoBob dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 08/06/2006, 09h07
  5. [VBA-E] Lier une macro a une feuille excel
    Par Ol.Geez dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/06/2006, 10h53

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