Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion de saisie dans un tableau Excel

1 réponse
Avatar
Alain
Bonjour,

Il s'agit d'un problème de gestion de saisie de données (résultats d'un
tournoi de Bridge) dans un tableau Excel de dimension : 15 lignes par 2 à 6
colonnes dont toutes les lignes ne sont pas toujours remplies (ceci dépend du
nombres d'équipes jouant chacun des tours).

Dans le cas représenté ci-dessous, les donnes 1 à 3 sont jouées 9 fois et
les donnes 4 à 6 sont jouées 8 fois, les donnes 7 à 9 sont jouées 5 fois.
Le nombre de tours peut aller jusqu'à 14 ou 15.
Les saisies se font donne par donne donc verticalement dans l'ordre Do 1 à
Do 3 (ou Do n) puis Do 4 à Do 6 (ou Do n), etc... ; on peut aller selon le
type de rencontre jusqu'à Do 33 par exemple.

Les problèmes que je souhaite résoudre sont les suivants :

1.- Quand on arrive en fin de saisie pour une donne (Do 1 NS3=8), amener
automatiquement la sélection en début de colonne suivante (Do 2 NS1=9) ;

2.- Quand on a fini la saisie des résultats d'un tour (Do 3 NS3=3), amener
automatiquement la sélection en début du tableau suivant (Do 4 NS2=12).

La feuille de calcul concernée comporte déjà la routine suivante qui permet
de transformer automatiquement une valeur positive saisie en valeur négative
en fonction du paramètre "sss" qui peut prendre la valeur "+1" ou "-1" fixée
par ailleurs dans le cours du reste de l'application :
----------------------------------------------
Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
Application.EnableEvents = False
If Target.Column > 2 And Target.Column < 8 And Target.Row >= 4 _
Then Target = Target * sss
Application.EnableEvents = True

End Sub
----------------------------------------------
J'ai essayé d'introduire ce qui me paraissait utile dans la routine
ci-dessus pour
renvoyer la sélection là où je veux mais, apparemment, ça interfère avec
cette routine telle qu'elle est et, du coup, elle bloque et n'est plus active
!!!

Merci d'avance à tous ceux (ou toutes celles) qui se pencheront sur ce
problème ; je peux, si jugé utile, fournir par mail une copie de la partie
concernée de mon application (ajlataille@tele2.fr).

Alain

----------------------------------------------
EXEMPLE
1er tour
!NS ! Do 1 ! Do 2 ! Do 3
!1 ! 5 ! 9 ! 10
!8 ! 6 ! 5 ! 5
!6 ! 5 ! 5 ! 5
!4 ! 5 ! 5 ! 5
!2 ! 5 ! 5 ! 5
!9 ! 5 ! 5 ! 5
!7 ! 5 ! 5 ! 5
!5 ! 5 ! 5 ! 5
!3 ! 8 ! 7 ! 3
! ! ! !
! ! ! !
etc...

2ème tour
!NS ! Do 4 ! Do 5 ! Do 6
!2 ! 12 ! 3 ! 11
!9 ! 5 ! 5 ! 5
!7 ! 5 ! 5 ! 5
!5 ! 5 ! 5 ! 5
!3 ! 5 ! 5 ! 5
!1 ! 5 ! 5 ! 5
!8 ! 5 ! 5 ! 5
!6 ! 4 ! 1 ! 2
! ! ! !
! ! ! !
! ! ! !
etc...

3ème tour
!NS ! Do 7 ! Do 8 ! Do 9
!8 ! 5 ! 5 ! 5
!6 ! 4 ! 1 ! 2
!5 ! 5 ! 5 ! 5
!3 ! 5 ! 5 ! 5
!1 ! 5 ! 5 ! 5
! ! ! !
! ! ! !
! ! ! !
etc...

1 réponse

Avatar
Youky
Bonsoir,
Utilisez de préférence une autre solution que l'action Worksheet_Change
Pour trouver la derniere ligne vide sans savoir la colonne la + grande
MsgBox = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
et pour la colonne
MsgBox = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Je suis peut être à coté de la plaque.
Si ceci peut aider ..........
j'ai pas pigé les Do qlq soit les chiffres
Youky


"Alain" a écrit dans le message de news:

Bonjour,

Il s'agit d'un problème de gestion de saisie de données (résultats d'un
tournoi de Bridge) dans un tableau Excel de dimension : 15 lignes par 2 à
6
colonnes dont toutes les lignes ne sont pas toujours remplies (ceci dépend
du
nombres d'équipes jouant chacun des tours).

Dans le cas représenté ci-dessous, les donnes 1 à 3 sont jouées 9 fois et
les donnes 4 à 6 sont jouées 8 fois, les donnes 7 à 9 sont jouées 5 fois.
Le nombre de tours peut aller jusqu'à 14 ou 15.
Les saisies se font donne par donne donc verticalement dans l'ordre Do 1 à
Do 3 (ou Do n) puis Do 4 à Do 6 (ou Do n), etc... ; on peut aller selon le
type de rencontre jusqu'à Do 33 par exemple.

Les problèmes que je souhaite résoudre sont les suivants :

1.- Quand on arrive en fin de saisie pour une donne (Do 1 NS3=8), amener
automatiquement la sélection en début de colonne suivante (Do 2 NS1=9) ;

2.- Quand on a fini la saisie des résultats d'un tour (Do 3 NS3=3), amener
automatiquement la sélection en début du tableau suivant (Do 4 NS2).

La feuille de calcul concernée comporte déjà la routine suivante qui
permet
de transformer automatiquement une valeur positive saisie en valeur
négative
en fonction du paramètre "sss" qui peut prendre la valeur "+1" ou "-1"
fixée
par ailleurs dans le cours du reste de l'application :
----------------------------------------------
Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
Application.EnableEvents = False
If Target.Column > 2 And Target.Column < 8 And Target.Row >= 4 _
Then Target = Target * sss
Application.EnableEvents = True

End Sub
----------------------------------------------
J'ai essayé d'introduire ce qui me paraissait utile dans la routine
ci-dessus pour
renvoyer la sélection là où je veux mais, apparemment, ça interfère avec
cette routine telle qu'elle est et, du coup, elle bloque et n'est plus
active
!!!

Merci d'avance à tous ceux (ou toutes celles) qui se pencheront sur ce
problème ; je peux, si jugé utile, fournir par mail une copie de la partie
concernée de mon application ().

Alain

----------------------------------------------
EXEMPLE
1er tour
!NS ! Do 1 ! Do 2 ! Do 3
!1 ! 5 ! 9 ! 10
!8 ! 6 ! 5 ! 5
!6 ! 5 ! 5 ! 5
!4 ! 5 ! 5 ! 5
!2 ! 5 ! 5 ! 5
!9 ! 5 ! 5 ! 5
!7 ! 5 ! 5 ! 5
!5 ! 5 ! 5 ! 5
!3 ! 8 ! 7 ! 3
! ! ! !
! ! ! !
etc...

2ème tour
!NS ! Do 4 ! Do 5 ! Do 6
!2 ! 12 ! 3 ! 11
!9 ! 5 ! 5 ! 5
!7 ! 5 ! 5 ! 5
!5 ! 5 ! 5 ! 5
!3 ! 5 ! 5 ! 5
!1 ! 5 ! 5 ! 5
!8 ! 5 ! 5 ! 5
!6 ! 4 ! 1 ! 2
! ! ! !
! ! ! !
! ! ! !
etc...

3ème tour
!NS ! Do 7 ! Do 8 ! Do 9
!8 ! 5 ! 5 ! 5
!6 ! 4 ! 1 ! 2
!5 ! 5 ! 5 ! 5
!3 ! 5 ! 5 ! 5
!1 ! 5 ! 5 ! 5
! ! ! !
! ! ! !
! ! ! !
etc...