Se positionner sur une cellule en particulier (sous condition)

virginie00035

XLDnaute Nouveau
Bonjour,
Je suis nouvellement inscrite... et pas très chevronnée.
Bref...
Je dépouille une enquête. Mon fichier comprend 200 colonnes (une colonne par questionnaire) qui s'étalent sur 200 lignes.
La saisie (verticale) est parfois fastidieuse et j'aimerais pouvoir la faciliter.
Ex (j'en ai plusieurs comme ça) : en cellule B76 j'ai le choix entre deux réponses 1 ou 2. Si c'est 2, je continue ma saisie en B77, mais si c'est 1, je voudrais qu'à ma validation, je puisse atterrir directement sur la cellule B85.
Evidemment, je voudrais que cette bidouille puisse se répercuter sur l'ensemble de mes colonnes (de la colonne B à la colonne GT).
Quelqu'un peut-il m'aider ?
Avec tous mes remerciements,
Virginie
 

GIBI

XLDnaute Impliqué
Re : Se positionner sur une cellule en particulier (sous condition)

Bonjour,

recopiez cette macro dans votre feuille excel :

1. positionner vous sur l'onglet de la feuille (sur le nom)
2. appuyer sur le bouton droit
3. choisir "visualiser le code" ==> une fenêtre microsoft visual basic s'ouvre
4. copier /coller la macro ci-dessous
5. fermer la fenêtre visual basic

et voila

'****************** la macro
Private Sub Worksheet_Change(ByVal CelluleEnCours As Range)

If CelluleEnCours.Row <> 76 Then Exit Sub '***** sortir si ligne # 76
Application.EnableEvents = False '**** bloquer les événements le temps du traitemen

If CelluleEnCours.Value = 1 Then
CelluleEnCours.Offset(9, 0).Select ' selection de la cellule 9 lignes plus loin
End If

Application.EnableEvents = True ' réactiver les événements

End Sub


GIBI
 
Dernière édition:

virginie00035

XLDnaute Nouveau
Re : Se positionner sur une cellule en particulier (sous condition)

Ca marche ! C'est génial et très gentil. J'imagine que pour mettre en place cette manip sur d'autres items, il me suffit de recopier la procédure et de modifier le code, c'est ça ?
 

GIBI

XLDnaute Impliqué
Re : Se positionner sur une cellule en particulier (sous condition)

Ca marche ! C'est génial et très gentil. J'imagine que pour mettre en place cette manip sur d'autres items, il me suffit de recopier la procédure et de modifier le code, c'est ça ?


Non ce n'est pas si simple, mais aujourd'hui c'est Noël donc cadeau


Il faut remplacer la macro précédente par celle-ci et dupliquer les deux lignes (Case nn et Nlig=)

Private Sub Worksheet_Change(ByVal CelluleEnCours As Range)

Application.EnableEvents = False '**** bloquer les événements le temps du traitemen

lig = CelluleEnCours.Row
col = CelluleEnCours.Column

Select Case CelluleEnCours.Row
Case 76 ' numero ligne a tester
Nlig = 85 ' numéro ligne d'arrivée
Case 85 ' numero ligne a tester
Nlig = 94 ' numéro ligne d'arrivée
' =======> dupliquer les lignes Case nn et NLig =
Case Else
Exit Sub

End Select

If CelluleEnCours.Value = 1 Then
Cells(Nlig, col).Select ' selection de la cellule
' Range(Cells(lig + 1, col), Cells(Nlig - 1 + 8, col)).ClearContents ' pour effacer les ligne entre les deux
End If

Application.EnableEvents = True ' réactiver les événements

End Sub

Normalemnt cela doit fonctionner

GIBI

PS

en enlevant l'apostrope devant la ligne' Range(Cells(lig + 1, col), Cells(Nlig - 1 + 8, col)).ClearContents on peut effacer les lignes

Curieux mais vos cases à cocher tapent dans la colonne à coté si c'est le cas il ne faut remettre à zéro la colonne d'à côté soitRange(Cells(lig + 1, col+1), Cells(Nlig - 1 + 8, col+1)).ClearContents
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 861
Membres
103 979
dernier inscrit
imed