Copier mes commentaires feuille2 si n°cde correspond à feuille 1

Résolu
Polie -  
 Polie -
Bonjour,

J'ai besoin d'aide !

Tous les jours je dois extraire un fichier de notre logiciel pour avoir l'état des commandes (feuille D54). Je me créé alors une colonne "commentaires" que je remplie (sur feuille D54A)
Ce que je souhaite faire c'est copier mes commentaires (colonne I) si n° de commande identique (colonne k) de la feuille D54 à feuille D54A.

En gros à chaque fois que je télécharge ma nouvelle feuille D54 j'aimerais que mes commentaires de mon ancienne feuille soit repris en fonction du n° de commande qui est unique.

Pouvez-vous m'aider ?

Je me doute qu'il doit y avoir une fonction Si et une rechercheV mais je n'arrive pas à l'écrire correctement semble t il ...

Merci à celui qui me consacrera quelques minutes :)

2 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, ce serait plus facile de t'aider.
    Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
    0
    1. Polie
       
      J'ai simplifié mon exemple.

      http://www.cjoint.com/c/FFbtmS74F7P

      Je souhaite que mon onglet "extraction" reprenne les commentaires de mon onglet "analyse" en fonction du numéro concatener issue du numero de commande et de sa ligne

      le nombre de lignes est variable car des commandes sont ajoutées tous les jours
      0
    2. Polie
       
      Je serais preneuse pour une macro ce serait même plus simple pour moi à intégrer dans mon fichier.
      0
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Voilà ton classeur avec 2 formules car je n'avais pas vu ton dernier message.

    https://www.cjoint.com/c/FFbuPoBD31l

    Je regardes ta macro et te propose celle_ci :
    Public Sub Reprise_com()
    Dim lig As Long, idx As Long, tba
    tba = Sheets("Analyse").UsedRange.Cells.Value
    With Sheets("extraction")
        For lig = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            For idx = 2 To UBound(tba)
                If .Cells(lig, "E").Value = tba(idx, 5) _
                    And .Cells(lig, "F").Value = tba(idx, 6) Then
                        .Cells(lig, "D").Value = tba(idx, 4): Exit For
                End If
            Next idx
        Next lig
    End With
    End Sub
    

     Toujours zen
    La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer.  Antoine de Saint-Exupéry
    0
    1. Polie
       
      Merci pour ton retour.

      J'essaye d'adapter ça demain !
      0
    2. Polie
       
      Gbinforme,

      Merci pour ton aide ta macro fonctionne tres bien mais il va falloir que je travaille sur la taille de mon extraction car quand je lance la macro, excel plante car mon fichier est vraiment volumineux.

      Je vais voir pour filtrer et copier seulement mes lignes pour réduire l'étendue des données (5000 lignes !).
      0
    3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      il va falloir que je travaille sur la taille de mon extraction car quand je lance la macro, excel plante
      Je ne pense pas que ce soit la taille qui soit la cause car ce n'est que le temps qui augmente avec la taille et comme la macro fonctionne en table mémoire elle est rapide normalement et 5000 lignes sont tout à fait acceptables.
      Tu devrais t'orienter ailleurs pour la cause et je peux essayer de t'aider si tu le souhaites.
      0
    4. Polie
       
      Je pense que la cause vient de mon assemblage de macro "artisanales" chopées sur internet :)

      J'essaye de faire quelque chose de plus propre mais j'ai seulement eu 1,5 jours de formation sur les macro niveau novice :) donc je tâtonne et je vois ce qui marche et voulant faire un truc assez complet pour vraiment simplifié la gestion de mon poste je défait et refait.

      En attendant pourrais tu m'aider sur ce point ?

      Je cherche à faire un filtre en "enlevant" plusieurs critères. Avec autofilter j'avais réussi mais cela n'allait pas au delà de 2 critères. Après j'ai voulu essayer ça (macro ci dessous) mais ça ne m'enlève que le dernier critère ... AAAH.

      J'ai réussi à trier en "gardant" plusieurs critères mais je n'en veux pas car les critères qui restent sont amenées à être modifiés sans que je le sache alors que je sais par contre ce que je veux "masquer" ou même supprimer si possible. (je sais pas si je suis bien claire ...) je souhaite "différent de" pas = à

      Sub macroplan()

      Dim Criteres As Variant
      'Les critères de recherche
      Criteres = Array("<>DPP054", "<>DPP052", "<>DPP057")

      Range("A1:CE" & Range("A" & Rows.Count).End(xlUp).Row).AutoFilter Field:=40, Criteria1:=Criteres, Operator:=xlAnd


      End Sub

      Si tu peux me donner un petit coup de pouce je cale sur ce point :)
      0
    5. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonsoir,

      Je suis pas sûr de comprendre mais tu ne peux pas utiliser :
      "<>DPP054" et "<>DPP052" et "<>DPP057"
      car toutes tes lignes sont nécessairement différentes ?
      0