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

Résolu/Fermé
Polie - Modifié par Polie le 1/06/2016 à 00:00
 Polie - 7 juin 2016 à 20:05
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

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
1 juin 2016 à 09:30
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
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
Je serais preneuse pour une macro ce serait même plus simple pour moi à intégrer dans mon fichier.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
Modifié par gbinforme le 1/06/2016 à 23:14
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
Merci pour ton retour.

J'essaye d'adapter ça demain !
0
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 juin 2016 à 08:15
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
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 juin 2016 à 21:22
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