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 Sub

Merci 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.

Rechercher des sujets similaires à "etendre"