Ajout condition VBA (copier si différent)

Bonjour à tous !!!

Je suis actuellement bloqué quant à la réalisation d'une tache sous VBA qui n'est pas tant complexe que ça mais dont je n'ai pas la solution...

Le fichier actuel calcule le nombre de reports en fonction de date (colonne taskw1, 2,...) extraite à l'aide d'une recherchev dans les onglet taskw (1, 2, ...)

Mon problème est qu'extraire chaque date à chaque semaine pendant 3 ans, ca fait beaucoup de colonne.. et que c'est surtout très peu pertinent d'avoir toutes les extractions. Il faudrait donc recenser juste les dates qui diffèrent.

Le code ci dessous insère une colonne avant TOPRO et établi la recherchev en prenant le dernier onglet taskw

Sub test()
    Dim cell As Range
    Dim rng As Range
    Dim nom As String
    Dim derligne
    With Application
        .ScreenUpdating = False
        .Calculation = xlManual
    End With
    derligne = Sheets("REF").Cells(Rows.Count, 10).End(xlUp).Row
    For Each cell In Range("A1:AK1")
        On Error Resume Next
        If Left(cell.Value, 5) = "taskw" And cell.Offset(0, 1).Value = "TOP RO" And cell.Value <> Sheets(Sheets.Count).Name Then
            Debug.Print cell.Value
            Columns(cell.Offset(0, 1).Column).EntireColumn.Insert
            Sheets("REF").Range(cell.Offset(0, 1).Address).Value = Sheets(Sheets.Count).Name
            Range(cell.Offset(1, 1).Address).Formula = _
            "=IF(VLOOKUP(RC7," & Sheets(Sheets.Count).Name & "!R2C1:R51C8,8,0)=RC[-1],"""",IFERROR(VLOOKUP(RC7," & Sheets(Sheets.Count).Name & "!R2C1:R51C8,8,FALSE),""Non existant""))"
            Range(cell.Offset(1, 1).Address).AutoFill Destination:=Range(Cells(2, cell.Offset(0, 1).Column), Cells(derligne, cell.Offset(0, 1).Column))
        End If
    Next cell
    With Application
        .ScreenUpdating = True
        .Calculation = xlAutomatic
    End With
End Sub

1- Il faudrait que la rechechev qui est actuellement en vigueur fasse la recherche, une fois la date trouvé (ou non), qu'elle la compare avec le dernier changement qu'il y a eu.

2- Si la valeur est identique, rien a faire. Si la valeur diffère alors il faudrait la recenser dans une colonne Changement 1, ou Changement 2 ect..

3- Si la recherchev trouve "non existant" alors recenser la valeur comme un changement.

PS: Dans le code précedemment donné, j'ai voulu rajouté un sierreur englobant toute la formule car elle ne le fait pas.

Ex: SIERREUR(Formule;"Non existant") mais je n'ai pas réussi.

J'espère avoir été clair et vous remercie par avance de votre aide.

Alexandre

Bonjour,

Avant que tu ne plonges dans des complications supplémentaires ... deux suggestions ...

1. As-tu la main sur le programme d'extractions et de download des tasks ...???

Car manifestement, tu essaies de corriger avec ton fichier Excel ... des requêtes Mainframe pas très bien ficelées ...

2. As-tu la certitude que ton "raisonnement-en-colonnes" ne va pas être perturbé par tes "produits-en-lignes" ...???

Car je suppose que chaque ligne est un item indépendant ... donc à changement de date autonome ...

Me trompe-je ...???

Bonjour James007,

Content de te retrouver une nouvelle fois !

1- Les tasks sont extraites d'une base de données aidant des responsables au developpement de produit. Mais ce support informatique ne permets pas de réaliser des analyses ou aider le pilotage des tasks mais aide au niveau macro (par projet).

Je n'ai malheureuseùent pas la main sur le programme d'extraction, ces extractions brutes sont automatiques chaque semaine.

2- Tu as raison, chaque ligne est une action, plusieurs actions peuvent appartenir au même projet mais elles sont bien indépendantes les unes des autres.

Honnetement, je ne suis pas sur à 100% de ce que je fais mais je pense que c'est réalisable..!

Bonjour James007,

Serais-tu indisponible ??

Je comprends si tu n'as pas envie de te lancer dans ce problème

Pourrai-tu m'aider par ailleurs m'aider pour cette formule =IF(VLOOKUP(RC7," & Sheets(Sheets.Count).Name & "!R2C1:R51C8,8,0)=RC[-1],"""",IFERROR(VLOOKUP(RC7," & Sheets(Sheets.Count).Name & "!R2C1:R51C8,8,FALSE),""Non existant""))"

Quand je rajoute IFERROR, celà ne fonctionne pas !

Cordialament,

Alexandre

Bonjour,

Par rapport à mes remarques précédentes ... je me demande si je n'ai pas été assez précis ...

Compte tenu du point 2 ... il faut que tu dessines la structure complète de ton futur onglet récapitulatif ... surtout avec toutes les entêtes et la séquence dans laquelle elles doivent apparaitre ...

Bonjour,

Au sujet de ta formule ... je ne sais pas s'il s'agit de celle des tasks ou de TOP RO ...

Mais, si cela concerne les tasks, dans ta nouvelle feuille, elle disparaitra totalement ...puisque remplacée par la macro ... non ...???

Rechercher des sujets similaires à "ajout condition vba copier different"