XL 2010 [RESOLU par Lone-Wolf]remettre curseur en dernière ligne+1 pas au-delà

  • Initiateur de la discussion Initiateur de la discussion cathodique
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cathodique

XLDnaute Barbatruc
Bonjour🙂,

Je pense que tout est dit dans le titre.

Je dois remplir une fiche qui commence en C4 jusqu'à F4.
Je voudrais empêcher la saisie si la cellule sélectionnée est différente de la dernière ligne+1.
exemple: dernière cellule non vide C15 ---> remettre curseur en C16 si ligne> à 16 sélectionnée.

ps: pas très copain avec 'Target'. Si vous voyez ce que je veux dire?!!!

En vous remerciant.
 
Bonjour cath 🙂

Et avec : ActiveWindow.ScrollRow = derlig + 1

Pour : dernière cellule non vide C15 ---> remettre curseur en C16 si ligne> à 16 sélectionnée.
J'ai du mal à saisir. Si la ligne 16 est sélectionnée, pourquoi mettre le curseur en C16 vu que le curseur il est déjà dessus?? 🙄 . Ce n'est pas plutôt si c15 <> "" mettre le curseur en c16?

EDIT: bonjour Bertrand 🙂

Tu dit ne pas être copain avec target, mais pourtant

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("d2:d10000")) Is Nothing And Target.Count = 1 Then
        If Target.Offset(0, -1) <> "" Then Target.Offset(1, -1).Activate
    End If

    If Not Intersect(Target, Range("c2:c10000")) Is Nothing And Target.Count = 1 Then
        If ActiveCell <> "" Then ActiveCell.Offset(1, 0).Activate
    End If
End Sub
 
Dernière édition:
bonjour,

avec 1145 messages et pas de fichier joint
sinon, on (je) ne laisse jamais mes utilisateurs accéder à ma base
je fais une feuille de saisie + un bouton ajouter
dans la feuille base, je reprends les infos de la feuille 'Saisie'
et le bouton 'ajouter' lance une macro qui prends ces infos et un copier coller valeurs en dessous de la dernière ligne occupée

et le tour est joué
 
Rebonjour dans la joie et la bonne humeur😀

@Lone-wolf: suppose que j'ai effectué une saisie en C15 (ici dernière ligne non vide est 15)
la saisie suivante doit se faire en C16 mais suppose que je mette en C17 ou C18 ou .....Etc
la saisie ne doit être autorisée, d'où je voudrais remettre le curseur en C16 (soit dernière ligne+1)

@mutzik:😳 je me demande si ça nécessite un fichier. le voici.
 

Pièces jointes

Re

Non pas du tout. C'est à force de répétition. J'ai édité mon dernier message, regarde 😉

Suite du précédent message

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("d2:d10000")) Is Nothing And Target.Count = 1 Then
        If Target.Offset(0, -1) <> "" Then Target.Offset(1, -1).Activate
    End If

    If Not Intersect(Target, Range("c2:c10000")) Is Nothing And Target.Count = 1 Then
        If ActiveCell <> "" Then ActiveCell.Offset(1, 0).Activate
            derlig = Range("c" & Rows.Count).End(xlUp).Row
        If ActiveCell = "" Then Application.Goto Cells(derlig + 1, 3)
    End If
End Sub
 
Dernière édition:
Re Lone,
VB:
If Not Intersect(Target, Range("c2:c10000")) Is Nothing And Target.Count = 1 Then
Pour tu rajoutes 'Target.count=1', car j'ai essayé sans cette condition et il semble que ça fonctionne.

Qu'apporte cette condition supplémentaire?

Encore merci.
 
Merci c'est compris. une seule cellule à la fois. Mais dans ce cas, si on veut par exemple insérer une même données dans plusieurs cellules. c-à-d sélectionner plusieurs cellules, écrire et valider avec ctrl+entrée, ça bug?
C'est le cas quelle serait la solution?
Pour mon cas ça ne pose pas de problème, car en colonne C il y a une validation.

Merci beaucoup.

Bonne journée et bon week-end.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour