De A7 au point suivant

Résolu
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   -  
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je voudrais faire une macro je pense que on peut pas faire autrement que
quand je clique sur A7 je me déplace vers la première cellule en ligne 7 qui soit pleine et ainsi de suite A8,A9 etc.
merci de votre aide
a bientôt
A voir également:

1 réponse

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonsoir,

Tu ne pourras plus écrire dans A7:Axxx.
J'ai donc ajouté un case à cocher sur la feuille pour activer/désactiver le traitement. Sa cellule liée est A2.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If [A2] = False Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Target.Column > 1 Or Target.Row < 7 Then Exit Sub
    If Application.CountA(Rows(Target.Row)) - Application.CountA(Cells(Target.Row, 1)) = 0 Then Exit Sub
    Application.EnableEvents = False
    If Target.Offset(, 1) = "" Then
        Target.End(xlToRight).Select
    Else
        Target.Offset(, 1).Select
    End If
    Application.EnableEvents = True
End Sub 

https://www.cjoint.com/?DCbxNDS71gK

eric
0
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
 
merci
ca marche bien
mais peut on inclure les suivantes c a dire si je ré clique ça me renvoi à la case suivante pleine ?
merci
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Tu ne pouvais pas le demander tout de suite ? Ca oblige à reprendre toute la logique.
Au 430ème post tu devrais savoir rédiger une demande complète et claire...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static savRange As Range
    If [A2] = False Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Target.Column > 1 Or Target.Row < 7 Then Exit Sub
    If savRange Is Nothing Then Set savRange = Target
    If Target.Row <> savRange.Row Then Set savRange = Target
    Application.EnableEvents = False
    If Application.CountA(savRange.Offset(, 1).Resize(, Columns.Count - savRange.Column)) = 0 Then
        savRange.Select
        Application.EnableEvents = True
        Exit Sub
    End If
    If savRange.Offset(, 1) = "" Then
        savRange.End(xlToRight).Select
    Else
        savRange.Offset(, 1).Select
    End If
    Set savRange = ActiveCell
    Application.EnableEvents = True
End Sub

eric
0
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
 
bonjour
excuse moi tu as complétement raison mais l'idée m 'est venue en l'essayant en fait
merci de ton aide précieuse bonne journée
a bientôt
0