Déplacement curseur

Bonsoir à tous,

Je joints un fichier sur lequel dans une feuille il y a un code qui permet de décaler les cellules une fois la saisie effectuée A vers B puis C puis va à la ligne suivante.

Je souhaiterais toujours aller à la ligne suivante seulement si (pour la ligne 9 par exemple) deux cases (peu importe lesquelles) sur l'ensemble E9 : T9 ont été remplies par une étoile chacune.

Dans ce cas je vais à la ligne et ainsi de suite...

Je reste à votre disposition

remerciements

mibri

31essai1.xls (17.50 Ko)

Bonjour,

J'ai fais une erreur d'interprétation lorsque je dis

"sur l'ensemble E9 : T9 ont été remplies par une étoile chacune."

il faut lire

"sur l'ensemble E9 : T9 ont été remplies par le chiffre 1 chacune."

Je suis désolé pour cette erreur

cordialement

mibri

Bonjour

Est ce que quelqu'un peut me répondre.......par avance merci

cordialement

mibri

Bonjour

Remplaces ta macro par celle-ci

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("E9:T14"), Target) Is Nothing And Target.Count = 1 Then
    If Target = "" Then Exit Sub
    If Target.Column <> 20 Then
      Target.Offset(0, 1).Select
    Else
      If Application.CountIf(Range("E" & Target.Row & ":T" & Target.Row), 1) > 1 Then
        Range("E" & Target.Row + 1).Select
      Else
        MsgBox "Au moins 2 ""1"" dans cette ligne"
        Target.Select
      End If
    End If
  End If
End Sub

Bonjour Banzai64

Le code que tu m'as transmis après avoir remplacé le mien ne fonctionne pas .

Lorsque je saisi sur A9 le curseur doit se positionner sur B9 et après avoir saisi sur B9 il se positionne sur C9. Ce n'est qu’après la cellule C9 que le curseur doit aller à la ligne à la condition que deux cellules entre E9 et T9 soient remplies chacune par "1" peu importe lesquelles

Alors que ton code après avoir saisi A9 puis entré le curseur se positionne à la ligne suivante, idem sur B9 et C9

merci

mibri

Bonjour

Lu en travers

Essayes

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("A9:C14"), Target) Is Nothing And Target.Count = 1 Then
    If Target = "" Then Exit Sub
    If Target.Column <> 3 Then
      Target.Offset(0, 1).Select
    Else
      If Application.CountIf(Range("E" & Target.Row & ":T" & Target.Row), 1) > 1 Then
        Range("A" & Target.Row + 1).Select
      Else
        Target.Select
        MsgBox "Au moins 2 ""1"" dans cette ligne"
      End If
    End If
  End If
End Sub

Mais après le message on pourra changer de cellule

bonjour,

Si tu peux supprimer le message, je préfère car j'ai déjà une formule de contrôle. J'ai voulu utiliser E9:T9 et vérifier qu'il y ait bien deux fois "1" comme "support seulement" pour aller à la ligne

Par contre après la saisie du deuxième "1", est ce que je peux aller à la ligne sur A10

est ce que j'ai été clair....

merci

cordialement

Bonjour

mibri a écrit :

Si tu peux supprimer le message

Il suffit de supprimer cette ligne

MsgBox "Au moins 2 ""1"" dans cette ligne"

Mais comme je l'ai marqué

Banzai64 a écrit :

Mais après le message on pourra changer de cellule

Cette macro signale juste un manque, mais n'empêchera pas de changer de ligne

Donc même si tu n'as pas mis les 2 "1", à la validation de la cellule colonne C , le curseur ne bougera pas, mais tu pourras quand même changer de ligne (Entrée une 2ème fois ou déplacement curseur ou avec la souris)

J'ai supprimé le message regarde le fichier joint lorsque j'ai saisi le deuxième "1" le curseur ne se positionne pas à la ligne suivante

mibri

20essai2.xls (20.00 Ko)

Bonjour

Tu demandes un mouvement qui n'était pas prévu

Normalement on changeait de ligne si l'on validait une donnée en colonne C et qu'il y avait 2 "1" sur la même ligne

Il n'a jamais été question de changer de ligne si on places 2 "1" dans une ligne sans la validation de la donnée en colonne C

Tout ce que tu peux faire de plus, c'est de ne pas accepter la donnée en colonne C si pas 2 "1" dans la ligne

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("A9:C14"), Target) Is Nothing And Target.Count = 1 Then
    If Target = "" Then Exit Sub
    If Target.Column <> 3 Then
      Target.Offset(0, 1).Select
    Else
      If Application.CountIf(Range("E" & Target.Row & ":T" & Target.Row), 1) > 1 Then
        Range("A" & Target.Row + 1).Select
      Else
        Target = ""
        Target.Select
      End If
    End If
  End If
End Sub

Bonjour,

Banzai64 je me suis peut être mal fait comprendre...j'ai indiqué dans mon 1er message

" il y a un code qui permet de décaler les cellules une fois la saisie effectuée A vers B puis C puis va à la ligne suivante.

Je souhaiterais toujours aller à la ligne suivante seulement si (pour la ligne 9 par exemple) deux cases (peu importe lesquelles) sur l'ensemble E9 : T9 ont été remplies par une étoile chacune. Là il y a erreur ce n'est pas une étoile mais le chiffre "1".

Je souhaite que ce soit la saisi du dernier chiffre "1" dans la plage E9:T9 qui déclenche la mise à la ligne suivante.

Le décalage de A vers B et B vers C me convient très bien.

Peut être je demande quelques chose qui n'est pas faisable ????

merci

mibri

Bonjour

Bon on recommence

A--> B

B--> C

C--> ?????????

2ème "1" sur une ligne entre E et T ---> A de la ligne suivante

On va y arriver (juste que je remette mes (2) neurones dans l'ordre

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Or Target.Cells(1, 1) = "" Then Exit Sub
  If Not Intersect(Range("A9:C14"), Target) Is Nothing Then
    Target.Offset(0, 1).Select
  ElseIf Not Intersect(Range("E7:T14"), Target) Is Nothing Then
      If Application.CountIf(Range("E" & Target.Row & ":T" & Target.Row), 1) > 1 Then
        Range("A" & Target.Row + 1).Select
      End If
  End If
End Sub

Banzai64, Bravo, c'est parfait...et je te souhaite de passer d'agréables fêtes de fin d'année, maintenant qu'on a passé l'heure de la fin du Monde !!!

merci

cordialement

mibri

bonsoir

Je me rend compte que l'encoche "resolu" en ce qui concerne la résolution de mon projet, ne fonctionne pas ...????

merci

mibri

Rechercher des sujets similaires à "deplacement curseur"