Etendre
Bonjour,
Je viens de confectionner une macro :
Sub Rempli_n°besoin()
'
' Rempli_n°besoin Macro
' Remplace les # des n° de besoin à partir de la "table" colonnes B & C
'
' Détermine le nombre de ligne du tableau
Range("A4").Select
Range(Selection, Selection.End(xlDown)).Select
nomblignes = Selection.Rows.Count + 3
' Détermine le numéro de besoin
If Range("N5") = "Consommations sur Stocks" Then
Range("T5").Value = "STOCKS"
ElseIf Range("N5").Value = "Achats remboursés sur payes (Ex.HRG1)" Then
Range("T5") = "HRG"
Else
Range("T5:T" & nomblignes).FormulaR1C1 = "=VLOOKUP(RC[-14],BDD!C[-18]:C[-17],2,FALSE)"
End If
Celle-ci fonctionne mais jai un soucis dans la partie qui est en gras. En effet, je souhaite que ma condition "SI" s'applique à toute les cellules de la colonne N et à toutes celles de la colonne T. J'ai (presque) tout essayé mais pas moyen d'étendre ma sélection.
Pouvez vous m'aider ?
Merci d'avance !
Bonjour et bienvenu,
Tiens-nous à la disposition le fichier qui va avec pour le test.
Bonjour,
Une procédure à tester et à adapter.
Un fichier serait le bienvenu.
Cdlt.
Option Explicit
Public Sub DEMO()
Dim ws As Worksheet, wsData As Worksheet
Dim lastRow As Long
Dim rngData As Range
Dim I As Long
Set ws = ActiveSheet
Set wsData = Worksheets("BDD")
Set rngData = wsData.Columns("B:C")
With ws
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
For I = 5 To lastRow
Select Case .Cells(I, "N")
Case Is = "Consommations sur Stocks"
.Cells(I, "T").Value = "STOCKS"
Case Is = "Achats remboursés sur payes (Ex.HRG1)"
.Cells(I, "T").Value = "HRG"
Case Else
.Cells(I, "T") = "#N/A"
On Error Resume Next
.Cells(I, "T").Value = Application.WorksheetFunction.VLookup(.Cells(I, "F").Value, rngData, 2, False)
On Error GoTo 0
End Select
Next I
End With
Set rngData = Nothing
Set wsData = Nothing: Set ws = Nothing
End SubMerci Jean-Eric, la macro fonctionne. Je ne peux pas vous envoyer le fichier qui est confidentiel.
J'ai une dernière demande.. Je souhaiterais que cette partie de macro :
' Détermine le numéro de besoin
Dim Ws As Worksheet, wsData As Worksheet
Dim LastRow As Long
Dim rngData As Range
Dim i As Long
Set Ws = ActiveSheet
Set wsData = Worksheets("BDD")
Set rngData = wsData.Columns("B:C")
With Ws
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 5 To LastRow
Select Case Cells(i, "N")
Case Is = "Consommations sur Stocks"
Cells(i, "T").Value = "STOCKS"
Case Is = "Achats remboursés sur payes (Ex.HRG1)"
Cells(i, "T").Value = "HRG"
Case Else
Cells(i, "T") = "#N/A"
On Error Resume Next
Cells(i, "T").Value = Application.WorksheetFunction.VLookup(Cells(i, "F").Value, rngData, 2, False)
On Error GoTo 0
End Select
Next i
End With
Set rngData = Nothing
Set wsData = Nothing: Set Ws = Nothing
Ne fonctionne que si les cellules de ma colonne T ressortent en "#". J'ai tenté de faire un "If" mais sans succès..
Bonjour,
Je n'avais pas vu ton message.
Je ne comprends pas ce que tu écris. peux-tu reformuler ta question?
Cdlt.