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).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 ().
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" <Alain@discussions.microsoft.com> a écrit dans le message de news:
86D999CF-8DF8-494E-8298-A7F9D3092D8B@microsoft.com...
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 (ajlataille@tele2.fr).
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 ().