Macro VBA

Bonjour.

J'ai fait une macro (cf fichier joint) qui me permet de remplir automatiquement l'onglet "OSW tracking" à partir d'un tableau présent dans l'onglet "KPI OSW".

Après avoir ajouté une colonne "DT" dans l'onglet "OSW tracking", la macro remplit celle-ci en allant chercher l'équivalent du N° figurant en colonne A, dans la tableau "I3:O35" de l'onglet "KPI OSW", une sorte d'index equiv quoi.

Mon pb est que cette macro remplit bien le tableau de l'onglet "OSW tracking", mais que jusqu'à la ligne 252 (alors que je lui demande de remplir jusqu'à la ligne 257) et je n'arrive vraiment pas à comprendre pourquoi.

Pouvez-vous m'aider svp?

Merci.

Nota: je débute en programmation VBA donc surement que ma méthode ou logique de programmation peut paraitre bizarre.

12test.xlsm (201.86 Ko)

bonjour, a tester

9test-9.xlsm (198.10 Ko)

Bonsoir,

tu as une erreur dans ta formule index

je pense que tu voulais écrire ceci

Sub osw_tracking()
'
' osw_tracking Macro
    Dim Cl%
    Cl = Cells(5, 256).End(xlToLeft).Column
    Cells(5, Cl + 1).Select
    Selection.EntireColumn.Insert
    Cells(3, Cl + 1).Value = Cells(3, Cl)
    Cells(5, Cl + 1).Value = Cells(5, Cl).Value + 7
    Cells(4, Cl).Select
    Selection.AutoFill Destination:=Range(Cells(4, Cl), Cells(4, Cl + 1)), Type:=xlFillDefault
    '
    '
    '
    Dim p As Range
    Dim dates As Range
    Dim g As Range
    'Set p = Worksheets("KPI OSW").Range("I3:O35")
    'Set dates = Worksheets("KPI OSW").Range("I3:I35")
    For i = 208 To 257
        Set g = Worksheets("OSW tracking").Cells(i, 1)
        Worksheets("OSW tracking").Cells(i, Cl + 1).Formula = "=INDEX('KPI OSW'!I3:O35,match('kpi OSW'!A" & i & ",'kpi osw'!I3:I35,0),7)"
        If IsError(Cells(i, Cl + 1).Value) Then
            If Cells(i, Cl + 1).Value = CVErr(2042) Then
                Cells(i, Cl + 1).Select
                ActiveCell.ClearContents
            Else
            End If
        End If
        '
    Next i
End Sub

Super, merci bcp

Rechercher des sujets similaires à "macro vba"