Bonjour à tous,
Généralement, je trouve toujours des petits bouts de code sur le forum qui répondent à mes questions. Mais aujourd'hui, je n'arrive pas à mes fins...
J'ai un onglet sur Excel qui est ma base de données. Dans cette base de données, j'intégré mes articles en colonne A et renseigne différentes informations dans mon tableau comme la date de conformité de mon article, le code de la nomenclature associée etc...
Nous avons un outil de BI (COGNOS) qui me permets aujourd'hui de faire une extraction avec le code article, la date de conformité et la nomenclature associée.
Mon but est de comparer la base de données et l'extraction effectuée.
Si dans mon extraction COGNOS l'article, la date de conformité et la nomenclature associée est identique a une des lignes de ma base de données, ne pas importer la ligne. Par contre, si un des champs n'est pas identique, alors recopier le code article, la date conformité et le code nomenclature dans la base de données dans les colonnes dédiées.
Ce que je n'arrive pas à faire, c'est une boucle qui comparerait les lignes de l'extraction COGNOS avec celles de la BDD et que dès qu'il y en a une qui est différente, je la colle à la fin de mon tableau BDD. Puis, que ma macro reprenne à la ligne suivante de l'extraction COGNOS.
Suite à mes recherches, il faudrait que je fasse une déclaration de variables pour faire une boucle sur mes lignes de tableau en indiquant la règle à suivre. (3 champs identiques)
Si la règle est vraie, passer à la ligne suivante, si elle est fausse, copier les valeurs adéquats dans les colonnes correspondantes dans la BDD.
Cependant, je ne sais pas par quel bout commencer?
J'ose vous soumettre un début de code qui me permet de faire une boucle sur une colonne :
Pourriez vous m'aider à la compléter s'il vous plait ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub MAJ () Dim Wb As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set Wb = Worksheets("COGNOS") NoCol = 1 'lecture de la colonne 1 For NoLig = 1 To Split(Wb.UsedRange.Address, "$")(4) Var = Wb.Cells(NoLig, NoCol) Next Set Wb = NoThing End sub
Merci par avance pour votre aide,
Excellente soirée à vous!
Partager