Retour du curseur dans une zone précise

Bonjour le forum,

Existe-t-il une commande vba qui place le curseur en colonne A de la ligne où une mise à jour est effectuée ?

Instructions sur le fichier en PJ.

Faire Fiche-Client + Nouveau client >> remplir le formulaire et "Enregistrer" , le curseur se met toujours en bas du tableau avec la ligne entière de sélectionné.

Ca peux etre utile si le tableau fait plus de 100 lignes.

Merci pour votre aide.

Gladius

22brouillon.xlsm (84.50 Ko)

Bonjour,

Peut-être ..?

    Cells(ActiveCell.row,1).Select 

A+

Bonjour et merci pour ta réponse.

Malheureusement ça ne change rien.

Cells(ActiveCell.Row & NumL, 1).Select
ActiveCell.Row = .Cells(NumL, 1)

J'ai tenté de tourner la fonction ActiveCell.Row de plusieurs façons sans succès sans savoir pourquoi.

Si tu as une idée je suis preneur.

++

Bonjour

Cells(NumL, 1).Select

Amicalement

Nad

Tu a une variable qui est initialisée avec le N° de ligne ? si oui

    Cells(NumL,1).Select

devrait fonctionner

Sinon poste le code de ta procédure.

EDIT :

Salut NAD.

Ouups, désolé, croisement de poste

Re salut,

Je viens de tester, ca résoud le probleme de la sélection entière de la ligne mais ca choisi toujours la dernière ligne et pas la ligne qui s'enregistre sur le tableau.

NumL représente effectivement la dernière ligne du tableau mais on dirait qu'il ne tient pas en compte le classement alphabétique de ma fonction "Custsort"

Public Sub CustSort(ByVal DataName As Range, Data As Range, Crit_Cel As String, Order As Byte)
    Data.Sort key1:=Columns(DataName.Find(Crit_Cel).Column), order1:=Order
End Sub
Private Sub Save_Click()
  Dim Ind As Integer
  Dim j As Integer
  Dim NumL As Long      ' Détection dernière ligne du tableau + 1 avec la fonction OFFSET(Ligne, Colonne)

    ' Avec la feuille Info_Clients
    With Sheets("Info_Clients")
        ' Prochaine ligne vide
        NumL = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
            ' Références de la fonction Copyformat (copie Ligne3, sur la ligne NumL)
            CopyFormat .Rows("3"), .Rows(NumL)
            ' Pour les textbox n°1 à 14
            For Ind = 1 To 14
            ' Inscrire les valeurs
            .Cells(NumL, Ind).Value = Me("Textbox" & Ind).Value
            Next Ind
            ' Modèle / Immat
            For Ind = 15 To 16
            .Cells(NumL, 2 + Ind).Value = Me("Textbox" & Ind).Value
            Next Ind
            ' ETC ...

            ' Références de la fonction CustSort
            '(Ligne de ttes les entêtes, BDDonnées, Entete ou faut appl. le tri, ordre 1 = ascendant)
            .Select
            CustSort .Rows("2"), .Rows("4:" & NumL), .Range("a2"), 1
            Cells(NumL, 1).Select

    End With
    Sheets("Info_Clients").Select

    MsgBox "Update completed" & Chr(10), vbInformation
    Unload Me

End Sub

Beh évidemment que nça va pas, tu fait un tri sur les données, de ce fait la ligne que tu vient d'ajouter se trouve n'importe où.

une solution serait qu'après le tris faier une rechercheV sur la colonne principale mais la encore ce serait pas évident.

Faudrait plutôt faire une boucle sur cette colonne principale (le nom par exemple) et stopper quand trouver. Comme ça tu retrouve la ligne de la nouvelle donnée.

A+

Rechercher des sujets similaires à "retour curseur zone precise"