Code importation
Bonjour à tous,
Je viens vers vous car je suis bloquée depuis hier, j'essaie mais en vain alors j'aurai besoin de conseils, d'aides...
Je vous joint un extrait de mon fichier (normalement il y a 140000 lignes et 100 colonnes)
Donc j'ai une feuille Requête et une feuille base.
J'aimerais que lorsque une référence en colonne B de ma feuille requête est trouvée en colonne A de ma feuille Base, que mes valeurs différentes de 0 se mettent en colonne M (en face de mes références) et que les intitulés (lorsque les cellules sont différentes de 0 et non vides) se mettent en colonne L
les colonnes M et L sont nommées "tableau"
Alors j'ai fait ce bout de code mais je sais qu'avec mes deux "With" c'est n'importe quoi mais je n'y arrive pas.
Sub importation()
Dim x As Variant
Dim y As Variant
Dim z As Variant
Dim i As Variant
Dim WB As Worksheet
Dim WR As Worksheet
Dim Réf As Variant
Set WB = ThisWorkbook.Worksheets("Base")
Set WR = ThisWorkbook.Worksheets("Requete Nomenclatures CLEM")
With WR
For z = 2 To Range("B" & Rows.Count).End(xlUp).Row = Réf
Next
End With
With WB
For x = 5 To Range("A" & Rows.Count).End(xlUp).Row
If .Cells(x, 1).Value = Réf Then
For y = 2 To 7
If WB.Cells(x, y) <> 0 Then
For i = Range("tableau").Row To Range("tableau").Row + 119
If WR.Cells(i, 12) = "" Then
WR.Cells(i, 12) = WB.Cells(4, y)
WR.Cells(i, 13) = WB.Cells(x, y)
Exit For
End If
Next
End If
Next
End If
Next
End With
End SubEt le problème aussi, c'est que par exemple ma référence peut être citée 15 fois à la suite mais je veux juste que mon code prenne en compte la toute première référence.
Si on prend l'exemple de mon fichier, je veux juste la B1 après je m'en fous puis la B34 ainsi de suite.
Je ne sais pas si tout ça est très clair, c'est pour ça que je vous joint un extrait du fichier.
Merci !
Cleiiim
Re,
J'ai légèrement avancé dans mon code (fichier joint)
Sub importation()
Dim x As Variant
Dim y As Variant
Dim z As Variant
Dim i As Variant
Dim WB As Worksheet
Dim WR As Worksheet
Dim Réf As Variant
Set WB = ThisWorkbook.Worksheets("Base")
Set WR = ThisWorkbook.Worksheets("Requete Nomenclatures CLEM")
With WB
For x = 5 To .Range("A" & .Rows.Count).End(xlUp).Row
If .Cells(x, 1).Value = WR.Cells(2, 2).Value Then
For y = 2 To 7
If WB.Cells(x, y) <> 0 Then
For i = Range("tableau").Row To Range("tableau").Row + 119
If WR.Cells(i, 12) = "" Then
WR.Cells(i, 12) = WB.Cells(4, y)
WR.Cells(i, 13) = WB.Cells(x, y)
Exit For
End If
Next
End If
Next
End If
Next
End With
End SubJ'ai les infos qui s'incrémentent bien dans ma feuille requête
Mais j'ai exécuté ce code en faisant la recherche qu'avec la cellule B2 de ma feuille Requête.
Le truc c'est que j'aimerais continuer la même recherche avec la cellule suivant si le contenu est différent de la précédente.
Mais je n'arrive pas à faire une boucle dans une boucle...