1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Sub test_export()
Dim rng_fin As Range
Dim rng_strt As Range
Dim i, j, k As Integer
'On set "rng_fin" sur la dernière celulle non vide de la colonne 1 de la feuille "SYNTH"
Set rng_fin = Worksheets("SYNTH").Columns(1).Find("*", , , , , xlPrevious)
'Avec la feuille "TCD"
With Worksheets("TCD")
'On set "rng_strt" sur la celulle "Magasin" de la colonne 1
Set rng_strt = .Columns(1).Find("Magasin", LookIn:=xlValues, LookAt:=xlWhole)
'On défini k comme étant le nombre de colonne entre "Magasin" et "(vide)"
k = .Rows(rng_strt.Row).Find("(vide)", LookIn:=xlValues, LookAt:=xlWhole).Column - 2
'On boucle de i = 1 à i = "(vide)" de la colonne 1
For i = 1 To (.Columns(1).Find("(vide)", , , , , xlPrevious).Offset(-1, 0).Row - rng_strt.Row)
'On place en rng_fin + i ligne la date du jour
rng_fin.Offset(i, 0) = Date 'Date du jour
'A toi de voir pour cette colonne
'rng_fin.Offset(i, 1) = 'numéro de commande
'On place en rng_fin + i ligne + 3 colonnes (= colonne D) le nom du magasin
rng_fin.Offset(i, 3) = rng_strt.Offset(i, 0)
'On boucle de j = 1 à k
For j = 1 To k
'Si rng_strt + i lignes + j colonnes est différent de rien...
If rng_strt.Offset(i, j) <> "" Then
'... alors on cherche dans le tableau SYNTH le même nom que l'entête du TCD et on place la valeur à la bonne case.
rng_fin.Offset(i, Worksheets("SYNTH").Rows(1).Find(rng_strt.Offset(0, j), LookIn:=xlValues, LookAt:=xlWhole).Column - 1) = rng_strt.Offset(i, j)
End If
Next j
Next i
End With
End Sub |
Partager