Sélection dernière ligne

Bonjour,

J'ai modifié un code à ma sauce et je n'arrive pas à le faire marcher
Sur la page "data" j'actualise des données et j'aimerais que lorsque qu'il y a une nouvelle entrée.
Sur la page "historic" sur la dernière ligne + 1 du "data" en question se mette le chiffre 125.
Désolé de mon explication avec le document ça sera plus simple à visualiser ^^"

4bloop.xlsm (18.38 Ko)
Private Sub Worksheet_Change(ByVal Target As Range)
'
If InStr(Target.Offset(0, -1), "Data") = 1 Then

    With Worksheets("Historic")
        On Error Resume Next

        Set rCel = .Cells.Find(what:=Target.Offset(0, -1), lookat:=xlWhole, LookIn:=xlValues)

          iCol = rCel.Column

          Dim Ligne As Long

          Ligne = iCol.End(xlDown).Row

          Range(Ligne, iCol + 1) = "125"

        '
        On Error GoTo 0
    End With
End If
'
End Sub

Bonjour,

Voici un essai, à améliorer probablement :

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rCel as range
Dim iCol as long, Nvl As Long

If Target.Offset(0, -1) like "Data*" Then
    With Worksheets("Historic")
        Set rCel = .Cells.Find(what:=Target.Offset(0, -1).value, LookIn:=xlValues, lookat:=xlWhole)
        if not rCel is nothing then 'si correspondance
            'OPTION 1
            iCol = rCel.Column 'colonne cellule corresp.
            Nvl = .cells(.rows.count, iCol).End(xlup).Row + 1 'nvlle ligne : derniere ligne + 1 dans cette colonne
            .cells(Nvl, iCol) = 125 'prend valeur 125
            'OPTION 2 (à condition d'être sûr du xldown)
            'rCel.end(xldown).offset(1,0) = 125 'descend vers le bas, décale d'une ligne : cellule renvoyée vaut 125
        else 'optionnel
            msgbox "Pas de correspondance" 'optionnel : message confirmation si pas trouvé
        end if
    End With
End If

End Sub

Le premier souci se situait sur l'affectation de Ligne : la méthode .end s'applique sur un objet range et non sur un nombre.

Le second résidait dans la syntaxe de range : Range("B1") = cells(1,2). Il y avait une petite confusion.

Sinon, il faut s'assurer, surtout dans ce cas où le code est exécuté depuis Data, de bien cibler la feuille Historic et donc de bien y rattacher tous ses enfants (les range en l'occurrence) en pointant : .cells, .range... Sinon, VBA comprend que ce sont des objets de la feuille active.

Cdlt,

Merci pour ces explications détaillé je vais essayer de mieux comprendre tout sa .

Je te remercie

Rechercher des sujets similaires à "selection derniere ligne"