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

1 réponse

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. 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
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    3. 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